Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cvengler/sysget

One package manager to rule them all
https://github.com/cvengler/sysget

Last synced: about 16 hours ago
JSON representation

One package manager to rule them all

Awesome Lists containing this project

README

        

# sysget

[![Build Status](https://travis-ci.org/emilengler/sysget.svg?branch=master)](https://travis-ci.org/emilengler/sysget)
### A front-end for every package manager

sysget is a bridge that lets you use one syntax to every package manager on every unix-based operating system.

You probably all know the problem when you are on a new distro and don't know anything about the package manager. With sysget you just need to remember one syntax for every package manager.

The syntax is mostly same with apt so it should be easy to use.

### Supported package managers:
* apt
* xbps
* dnf
* yum
* zypper
* eopkg
* pacman
* emerge
* pkg
* pkg_mgr
* chromebrew
* homebrew
* nix
* snap
* npm
* flatpak
* slapt-get
* pip3
* GNU guix
* Ruby gems
* MacPorts
* Your own package manager (See Add your own package manager)

### Features
* search for packages
* install packages
* remove packages
* remove orphans
* clear package manager cache
* update database
* upgrade system
* upgrade single package

### How to install
Please take a look at the docs/ folder.

In a nutshell:

```make && sudo make install```

No dependencies needed

### Example
To search for a package
```
sysget search
```
To install a package
```
sysget install
```
To remove a package
```
sysget remove
```
To update the database
```
sysget update
```
To upgrade the system
```
sysget upgrade
```
To upgrade a specific package
```
sysget upgrade
```
To remove orphans
```
sysget autoremove
```
To clean the cache of the package manager
```
sysget clean
```
### Environment Variables
| Environment Variable | Function |
|----------------------|---------------------------------------------------------------------|
| SYSGET_CONFIG_PATH | Ability to change the path of the sysget config file |
| SYSGET_CUSTOM_PATH | Ability to change the path of the file for a custom package manager |
| SYSGET_ARGS_PATH | Ability to change the path of the for custom arguments |
### Configuration files
The file where the package manager is stored is located at `/etc/sysget/sysget`

The *optional* file where a custom package manager is stored at `/etc/sysget/custom`

### Add your own package manager
sysget also has the ability that you can add your own package manager.

Simply create the file /etc/sysget_custom and then write **8** lines into it.

One line for one command.

The order is: search, install, remove, autoremove, update, upgrade, upgrade_pkg, clean
### Change the sysget syntax
Similar to adding your own package manager you can also modify the syntax of sysget. For example you can give sysget the pacman syntax

Simply create the file `/etc/sysget/args` and add 10 lines to it.
The order is: search, install, remove, autoremove, update, upgrade, clean, set, help, about

However there are some rules:

* The file needs to have 10 lines
* The same item twice is forbidden
### Languages
We support the following languages:
* English
* German
* Romanian
The data is get using $LANG, english is the fallback option
###### Credits
[TermGet](https://github.com/termget/termget)
[JSON](https://github.com/nlohmann/json)