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.

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

The last 2 features will work only if the Redcore Linux is running in binary or hybrid mode. As soon as Redcore Linux is converted into full blown Gentoo Linux or is running in source mode, Sisyphus will refuse to work, although this limitation can be lifted or worked around by the user.

Note : for more information about Redcore Linux system modes, please read Vasile article!

Sisyphus CLI

Sisyphus CLI is the command line interface frontend. It exposes functions wrapped by libsisyphus in a apt-get/yum-alike fashion.

As of this writing, version 1.1801-r4 it exposes the following commands :

  • install - Install new packages
  • uninstall - Uninstall packages *safely* (INFO : If reverse deps are found, package(s) will NOT be uninstalled)
  • force-uninstall - Uninstall packages *unsafely* (WARNING : This option will ignore reverse deps, which may break your system)
  • remove-orphans - Uninstall packages that are no longer needed
  • update - Update the Portage tree, Overlay(s), Portage config files && Sisyphus database remote_packages table
  • upgrade - Upgrade the system
  • search - Search for packages
  • spmsync - Sync Sisyphus database with Portage database (if you install something with Portage, not Sisyphus)
  • rescue - Rescue Sisyphus database if lost or corrupted
  • sysinfo - Display information about installed core packages and portage configuration

Install a package:

  sisyphus install package(s)

Portage command (wrapped):

  emerge --sync 
  emerge -a package(s)

Uninstall a package safely (calculate reverse deps):

  sisyphus uninstall package(s)

Portage command (wrapped):

  emerge --sync
  emerge --depclean -a package(s)

Uninstall a package unsafely (ignore reverse deps):

  sisyphus force-uninstall package(s)

Portage command (wrapped):

  emerge --sync
  emerge --unmerge -a package(s)

Remove no longer needed packages (installed as deps for another package):

  sisyphus remove-orphans

Portage command (wrapped):

  emerge --sync
  emerge --depclean -a

Upgrade the system:

  sisyphus upgrade

Portage command (wrapped):

 emerge --sync
 emerge -uDaN --with-bdeps=y @world

Search for package(s):

  sisyphus search package(s)

Portage command (wrapped):

  emerge --search package(s)

Update the Portage tree, Overlay(s), Portage config files && Sisyphus database remote_packages table:

  sisyphus update

Portage command(s) (wrapped):

  emerge --sync

Sync Portage database to Sisyphus database:

  sisyphus spmsync

Portage command(s) (wrapped):

  none

Recover lost or corrupted Sisyphus database:

  sisyphus rescue

Portage command(s) (wrapped):

  none

Display information about installed core packages and portage configuration:

  sisyphus sysinfo

Portage command (wrapped):

  emerge --info

Sisyphus will behave just like portage (it is a wrapper around it after all), meaning will execute requested operations right away. However, as you can see, it will allways sync the system before doing so.

Development

  • wrap gentoolkit (equery files, equery belongs, equery depends)
  • wrap portage-utils (qcheck, qfile, qsize, qdepends, qlist etc.)

Sisyphus GUI

Under heavy development, not yet ready!!!

Slight old (3 months) demo, code improved a lot since then:
https://www.youtube.com/watch?v=cwiFKhLhPr8&t=95s

sisyphus.txt · Last modified: 2018/02/04 16:24 by v3n3rix