Sisyphus
Sisyphus is the package manager used in Redcore Linux. In it's essence Sisyphus is a simple wrapper around portage, gentoolkit, and portage-utils that provides an apt-get/yum-alike interface to these commands, to assist newcomer people transitioning from Debian/RedHat-based systems to Gentoo.
Sisyphus is written in python3 and is divided in 3 parts :
libsisyphus - a python library which acts as a backend and wraps portage, gentoolkit and portage-utils functionality
sisyphus-cli - the command line interface frontend, exposes functions wrapped by libsisyphus
sisyphus-gui - the graphical user interface frontend, a simple PyQt5 frontend to libsisyphus
Although basic functionality is in place and working, Sisyphus is under active development, so many things may be added, changed or removed from it. You have been warned!
Libsisyphus
Libsisyphus is a python library which acts as a backend for Sisyphus, and wraps portage, gentoolkit and portage-utils functionality, but is not limited to that :
it will make sure that the portage tree, the redcore overlay && the portage configuration is always synced with the binhost repository following the recomandations of
Gentoo binary package guide.
using an internal sqlite3 database it will keep track of every package installed through sisyphus-cli, sisyphus-gui or even portage itself
using an internal sqlite3 database it will keep track of every package available in the binary repository
Sisyphus CLI
Sisyphus CLI is the command line interface frontend. It exposes functions wrapped by libsisyphus in a apt-get/yum-alike fashion.
Starting with version 2.1812.0 it gained hybrid capabilities ( it can install binary packages, ebuild (source) packages, or a mix of them together in one go) and, as of this writing, version 2.1904.1 it exposes the following commands :
–install
–hybrid-install
–uninstall
Uninstall packages *SAFELY* by checking for reverse dependencies
If reverse dependencies exist, the package(s) will NOT be uninstalled to prevent the possible breakage of the system
If you really want to uninstall the package, make sure you uninstall all reverse dependencies as well
This will not allways be possible, as the reverse dependency chain may be way to long and require you to uninstall critical system packages
–force-uninstall
Uninstall packages *UNSAFELY* by ignoring reverse dependencies
This may break your system if you uninstall critical system packages
It will try the best it can to preserve the libraries required by other packages to prevent such a breakage
Upgrading the system may pull the packages back in, to fix the reverse dependency chain
–remove-orphans
Uninstall packages that are no longer needed
When you uninstall a package without it's reverse dependencies, those dependencies will become orphans if nothing else requires them
In addition, a package may no longer depend on another one, so that other package becomes orphan as well if nothing else requires it
Use this option to check the whole dependency chain for such packages, and uninstall them
–update
–upgrade
–hybrid-upgrade
–search
–hybrid-search
–spmsync
Sync Sisyphus's package database with Portage's package database
When you install something with Portage directly (emerge), Sisyphus is not aware of that package, and it doesn't track it in it's database
Use this option to synchronize Sisyphus's package database with Portage's package database
–rescue
Resurrect Sisyphus's package database if lost or corrupted
If for some reason Sisyphus's package database is lost or corrupted, it can be resurrected using Portage's package database
If Portage's package database is corrupted (in this case you're screwed anyway :D), only a partial resurrection will be possible
If Portage's package database is intact, full resurrection will be possible
–mirror –list
–mirror –set INDEX
–sysinfo
–help
Development
wrap gentoolkit (equery files, equery belongs, equery depends)
wrap portage-utils (qcheck, qfile, qsize, qdepends, qlist etc.)
Sisyphus GUI
Sisyphus GUI is the graphical user interface part. It is very simplistic in design and functionality and it can only perform very basic tasks : install/uninstall package(s), upgrade the system and remove orphan packages. This is of course a design decision, as Sisyphus GUI is meant to work in a manner similar to Synaptic, without any bells and whistles (no screenshots, no ratings, no reviews and so on).
Note: While Sisyphus CLI can manage both binary and source packages, Sisyphus GUI can only manage binary packages.