User Tools

Site Tools


sisyphus

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

  • Install binary packages

–hybrid-install

  • Install binary and/or ebuild (source) packages

–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

  • Update the Portage tree, Overlay(s), Portage config files && Sisyphus's package database

–upgrade

  • Upgrade the system using binary packages

–hybrid-upgrade

  • Upgrade the system using binary and/or ebuild (source) packages

–search

  • Search for binary packages

–hybrid-search

  • Search for binary and/or ebuild (source) packages

–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

  • List available binary package repository mirrors (the active one is marked with *)

–mirror –set INDEX

  • Switch the binary package repository to the selected mirror

–sysinfo

  • Display information about installed core packages and portage configuration

–help

  • Display this help information

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.

sisyphus.txt · Last modified: 2019/06/22 21:46 by v3n3rix