One package manager to rule them all
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib Create codestyle.md Jan 15, 2019
docs Update build-macos.md Feb 3, 2019
src Change file_exists parameter Jan 10, 2019
.gitignore Update .gitignore Dec 30, 2018
.travis.yml Update .travis.yml Dec 7, 2018
CONTRIBUTING.md Remove unnecessary new lines Dec 31, 2018
LICENSE.txt Initial commit Oct 5, 2018
README.md Update README.md Jan 15, 2019
makefile Update makefile Jan 3, 2019

README.md

sysget

Build Status

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-get so it should be easy to use.

Supported package managers:

  • apt-get
  • xbps
  • dnf
  • yum
  • zypper
  • eopkg
  • pacman
  • emerge
  • pkg
  • chromebrew
  • homebrew
  • nix
  • snap
  • npm
  • flatpak (See notice)
  • slapt-get
  • pip3
  • GNU guix
  • Ruby gems
  • 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 <search query>

To install a package

sysget install <package name>

To remove a package

sysget remove <package name>

To update the database

sysget update

To upgrade the system

sysget upgrade

To upgrade a specific package

sysget upgrade <package name>

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
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 paackage 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

Flatpak notice

Flatpak works different than other package managers.
If you want to install a package you need to provide the remote name or the URL of a .flatpakref
For Example:

sysget install flathub org.gimp.GIMP

or

sysget install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

to install GIMP

Credits

TermGet