Sisyphus
Sisyphus is one of the package managers available in Redcore Linux, alongside Portage and Flatpak. It is the recommended package manager to use, and it was developed by Redcore Linux developers for Redcore Linux. In it's essence Sisyphus is a simple wrapper around portage which provides an apt-get/yum-alike interface to it, to assist newcomer people transitioning from Debian/Redhat-based systems to Gentoo. The way it works can be best described by https://wiki.gentoo.org/wiki/Binary_package_guide. The Gentoo Linux documentation implemented in Sisyphus's code.
Note: Not every aspect of Portage is wrapped or exposed. Sisyphus is under active development, so things may be added, changed or removed in the future.
Name: The Sisyphus name comes from the Greek mythology. Sisyphus or Sisyphos (/ˈsɪsɪfəs/; Ancient Greek: Σίσυφος Sísyphos) was the founder and king of Ephyra (now known as Corinth). He was punished for cheating death twice by being forced to roll an immense boulder up a hill only for it to roll down every time it neared the top, repeating this action for eternity. Through the classical influence on modern culture, tasks that are both laborious and futile are therefore described as Sisyphean (/sɪsɪˈfiːən/). Given Redcore Linux's rolling release nature, Sisyphus si a fitting name as the program is "punished " to update the system forever, only to find out new updates once its done.
Development
Sisyphus is written in python3 (backend and cli frontend) and PyQt5 (gui frontend) and is divided in 3 parts :
* A backend * A cli client * A gui client
Backend
The backend is fairly simple and is comprised of a collection of python3 function libraries which wrap around parts of Portage and implement Sisyphus specific aspects (branches, database recovery, advanced package search and filtering). To avoid potential breakages it does NOT use Portage API and, in order to stay compatible with Portage, the wrapped parts follow it closely, and use identical methods. Some Portage methods have been replaced over time with Sisyphus specific methods (binary package downloader) while still maintaining compatibility. Am experimental method to install binary packages is under development, but it is currently unfortunately stalled due to lack of time (early tests show a 2000% speed increase, while still maintaining Portage compatibility).
CLI client
- Usage :
root # sisyphus [OPTIONS] COMMAND [ARGS]
- Options :
--install-completion: Install completion for the current shell. --show-completion: Show completion for the current shell, to copy it or customize the installation. --help: Show this message and exit.
- Commands :
autoremove: Uninstall packages that are no longer needed. branch: Pull the selected branch of the Portage tree,... install: Install binary and/or ebuild(source)... mirror: List/Set the active binhost (binary repository) mirror. rescue: Resurrect Sisyphus's package database if lost... search: Search for binary and/or ebuild (source)... spmsync: Sync Sisyphus's package database with... sysinfo: Display information about installed core... uninstall: Uninstall packages *SAFELY* by checking for... update: Update the Portage tree, the Redcore... upgrade: Upgrade the system using binary and/or ebuild...
- Help :
root # sisyphus --help
Uninstall orphan packages
Uninstall packages that are no longer needed. When you uninstall a package, it's 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 command to check the whole dependency chain for such packages, and uninstall them.
Usage
root # sisyphus autoremove [OPTIONS]
Options
--help : Show this message and exit.
Help
root # sisyphus autoremove --help
Examples
root # sisyphus autoremove
Portage equivalent
root # emerge --depclean --verbose --ask
Switch branches
Pull the selected branch of the Portage tree, Redcore overlay and Portage configs. The remote can be selected by using the --remote option.
'BRANCH' can be one of the following : master, next. 'REMOTE' can be one of the following : gitlab, pagure (default is pagure).
Usage
root # sisyphus branch [OPTIONS] [master|next]
Options
-r, --remote [gitlab|pagure] -help: Show this message and exit.
Help
root # sisyphus branch --help
Examples
root # sisyphus branch master --remote=gitlab (pull the branch 'master' from gitlab.com) root # sisyphus branch next --remote=next (pull the branch 'next' from pagure.io)
Binary repository pairing
Once you changed the branch, you must pair it with the correct binhost (binary repository).
Examples
Branch 'master' must be paired with the stable binhost (binary repository) (odd numbers in 'sisyphus mirror list').
root # sisyphus mirror set 1 root # sisyphus mirror set 5
Branch 'next' must be paired with the testing binhost (binary repository) (even numbers in 'sisyphus mirror list').
root # sisyphus mirror set 4 root # sisyphus mirror set 8
Sisyphus will refuse to install any package or upgrade the system if the branch and the binhost are not paired, as various package configuration options may be different between branches. This is to avoid user confusion, potential downgrades or system breakages.
sisyphus install google-chrome fetching updates.. Current branch: 'next' (testing) Current binhost: 'http://mirrors.redcorelinux.org/redcorelinux/packages/' (stable) Invalid branch - binhost pairing; Use 'sisyphus branch --help' for help; Quitting.
Portage equivalent
Portage has branches, but they work in a different way. See https://wiki.gentoo.org/wiki/KEYWORDS for details.
Warning
Portage will bypass the protections in Sisyphus, and offer you a solution. Most of the time this solution will include a recompilation or downgrade of packages which have different configuration options between branches.
Install packages
Install binary and/or ebuild(source) packages. By default, only binary packages will be installed. Use the --ebuild option to install ebuild(source) packages.
Usage
root # sisyphus install [OPTIONS] PACKAGE
Options
-e, --ebuild --help: Show this message and exit
Help
root # sisyphus install --help
Examples
root # sisyphus install pidgin
Will install pidgin binary package (if available); if there is none, but the ebuild(source) package for pidgin is found, it will stop and suggest the --ebuild option.
root # sisyphus install pidgin Source package(s) found in the mix; Use 'sisyphus install pidgin --ebuild'; Quitting.
Hybrid install
The '--ebuild' option can be used to install pretty much anything from the Portage tree, in a similar way to Gentoo Linux. It behaves like Portage '--getbinpkg' option and will preffer to reuse binary packages(if found) to satisfy the dependencies for the source(ebuild) packages, speeding up the installation. The '--ebuild' option can be used all the time, as it will fallback to install binary packages if no compilation is required.
Examples
root # sisyphus install pidgin --ebuild These are the source packages that would be merged, in order: net-libs/gssdp-1.2.3 dev-libs/libgnt-2.14.1 net-libs/libsrtp-2.3.0-r1 media-plugins/gst-plugins-srtp-1.16.3 net-libs/gupnp-1.2.7 net-libs/gupnp-igd-0.2.5-r10 net-libs/libnice-0.1.15 media-plugins/gst-plugins-libnice-0.1.15-r100 net-libs/farstream-0.2.9 net-im/pidgin-2.14.5 Total: 10 source package(s) Would you like to proceed? [y/N]
Will ask Portage to compile and install pidgin and its dependencies from source.
Portage equivalent
root # emerge --getbinpkgonly --verbose --ask pidgin (install pidgin binary package, fail if not found, even if the ebuild(source) package is found) root # emerge --getbinpkg --verbose --ask pidgin (install pidgin binary package if found, compile it from source if not) root # emerge --verbose --ask pidgin (compile pidgin from source, ignoring the binary package)
Sisyphus wraps Portage methods in a slightly different way. It doesn't fail if the binary package is not found, but suggests the '--ebuild' option if the ebuild(source) package is found. If you would rather prefer to use Portage all the time :
root # emerge --sync root # emerge --getbinpkg --verbose --ask --with-bdeps=y --rebuilt-binaries PKGNAME root # sisyphus spmsync
will achieve the same result as if running
root # sisyphus install PKGNAME --ebuild
all the time. Portage --getbinpkg option will preffer to reuse binary packages(if available) to satisfy the dependencies for the ebuild(source) package, speeding up the installation.
Configure package mirrors
List/Set the active binhost (binary repository) mirror.
Usage
root # sisyphus mirror [OPTIONS] COMMAND [ARGS]
Options
--help: Show this message and exit.
Commands
list: List available binary package repository... set: Change the binary package repository to the...
Help
root # sisyphus mirror --help
List mirrors
List available binary package repository mirrors (the active one is marked with *).
Usage
root # sisyphus mirror list [OPTIONS]
Options
--help: Show this message and exit.
Help
root # sisyphus mirror list --help
Examples
root # sisyphus mirror list 1 http://mirrors.redcorelinux.org/redcorelinux/packages/ 2 * http://mirrors.redcorelinux.org/redcorelinux/packages-next/ 3 http://mirror.math.princeton.edu/pub/redcorelinux/packages/ 4 http://mirror.math.princeton.edu/pub/redcorelinux/packages-next/ 5 http://mirror.alpix.eu/redcorelinux/packages/ 6 http://mirror.alpix.eu/redcorelinux/packages-next/ 7 http://mirror.yandex.ru/mirrors/redcorelinux/packages/ 8 http://mirror.yandex.ru/mirrors/redcorelinux/packages-next/
Portage equivalent
root # emerge --info --verbose|grep BINHOST PORTAGE_BINHOST="http://mirrors.redcorelinux.org/redcorelinux/packages-next/"
Note
Support for multiple binary repositories is somewhat incomplete, only one can be activate at a time, and Portage only lists the active one. Read more at https://wiki.gentoo.org/wiki/Binary_package_guide
Switch mirrors
Change the binary package repository to the selected mirror.
Usage
sisyphus mirror set [OPTIONS] INDEX
Options
--help: Show this message and exit.
Help
root # sisyphus mirror set --help
Examples
root # sisyphus mirror set 6 root # sisyphus mirror list 1 http://mirrors.redcorelinux.org/redcorelinux/packages/ 2 http://mirrors.redcorelinux.org/redcorelinux/packages-next/ 3 http://mirror.math.princeton.edu/pub/redcorelinux/packages/ 4 http://mirror.math.princeton.edu/pub/redcorelinux/packages-next/ 5 http://mirror.alpix.eu/redcorelinux/packages/ 6 * http://mirror.alpix.eu/redcorelinux/packages-next/ 7 http://mirror.yandex.ru/mirrors/redcorelinux/packages/ 8 http://mirror.yandex.ru/mirrors/redcorelinux/packages-next/
root # sisyphus mirror set 2 root # sisyphus mirror list 1 http://mirrors.redcorelinux.org/redcorelinux/packages/ 2 * http://mirrors.redcorelinux.org/redcorelinux/packages-next/ 3 http://mirror.math.princeton.edu/pub/redcorelinux/packages/ 4 http://mirror.math.princeton.edu/pub/redcorelinux/packages-next/ 5 http://mirror.alpix.eu/redcorelinux/packages/ 6 http://mirror.alpix.eu/redcorelinux/packages-next/ 7 http://mirror.yandex.ru/mirrors/redcorelinux/packages/ 8 http://mirror.yandex.ru/mirrors/redcorelinux/packages-next/
Portage equivalent
Read https://wiki.gentoo.org/wiki/Binary_package_guide to learn how to set up a binary package repository on Gentoo Linux systems and how to configure your systems to use it.
Recover database
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.
Usage
root # sisyphus rescue [OPTIONS]
Options
--help: Show this message and exit.
Help
root # sisyphus rescue --help
Examples
root # sisyphus rescue
Search packages
Search for binary and/or ebuild (source) packages.
Usage
root # sisyphus search [OPTIONS] PACKAGE
Options
-d, --description TEXT: Match description. -f, --filter [all|alien|installed|available|upgradeable]: [default: all] -q: Short (one line) output. -e, --ebuild: Search in ebuilds (slower). --help: Show this message and exit.
Help
root # sisyphus search --help
By default will search for binary packages, using internal database. The search term can be provided also in the category/name format.
Examples
root # sisyphus search openbox
OR
root # sisyphus search x11-wm/openbox
Wildcards
Using * and ? wildcards is supported. An empty string will match everything (similar to *). To search for all packages belonging to a category, use '*' or leave the name empty.
Examples
root # sisyphus search x11-wm/
OR
root # sisyphus search x11-wm/*
Description search
In addition, search can be performed by package description, using the -d (--description) option.
Examples
root # sisyphus search x11/open -d 'window manager'
(use single or double quotes when the description contains spaces)
Search filtering
Use the -f (--filter) option to select only packages of interest. Possible values:
all (default) - search the entire database alien - search for installed packages but not available (this filter can match packages installed from ebuilds or packages no longer maintained as binaries) installed - search in all installed packages available - search for available packages but not installed upgradeable - search for installed packages where installed version is different from available version
Examples
root # sisyphus search "" -f installed
Since no search term was provided, it will display all installed packages.
root # sisyphus search google-chrome -f all Searching all packages ... * www-client/google-chrome Installed version: None Latest available version: 91.0.4472.114 Description: The web browser from Google Found 1 matching package(s) ...
Search the entire database for Google Chrome and display the results.
root # sisyphus search pidgin -f all Searching all packages ... No package found! Use the '--ebuild' option to search for source packages!
Pidgin was not found in the database, so there is no binary package for it in the repository. However Sisyphus suggests to use the '--ebuild' option.
Hybrid search
To search for all (including source) packages, use the --ebuild option. This is slower since will perform an 'emerge --search'. With this option, more than one package can be provided as search term.'-d', '-f' and '-q' (quiet) options are ignored in this mode.
Examples
root # sisyphus search pidgin --ebuild Local copy of remote index is up-to-date and will be used. [ Results for search key : pidgin ] Searching... * net-im/pidgin Latest version available: 2.14.5 Latest version installed: [ Not Installed ] Size of files: 8,494 KiB Homepage: https://pidgin.im/ Description: GTK Instant Messenger client License: GPL-2 * x11-plugins/pidgin-birthday-reminder Latest version available: 1.7-r1 Latest version installed: [ Not Installed ] Size of files: 460 KiB Homepage: https://launchpad.net/pidgin-birthday-reminder Description: Plugin for Pidgin that reminds you of your buddies birthdays License: GPL-2 * x11-plugins/pidgin-bot-sentry Latest version available: 1.3.0 Latest version installed: [ Not Installed ] Size of files: 275 KiB Homepage: http://pidgin-bs.sourceforge.net/ Description: Bot Sentry is a Pidgin plugin to prevent Instant Message (IM) spam License: GPL-2 * x11-plugins/pidgin-encryption Latest version available: 3.1-r1 Latest version installed: [ Not Installed ] Size of files: 590 KiB Homepage: http://pidgin-encrypt.sourceforge.net/ Description: Pidgin IM Encryption PlugIn License: GPL-2 * x11-plugins/pidgin-extprefs Latest version available: 0.7-r1 Latest version installed: [ Not Installed ] Size of files: 325 KiB Homepage: http://gaim-extprefs.sourceforge.net Description: Extra preferences that are desired but are not worthy for Pidgin License: GPL-2 * x11-plugins/pidgin-funyahoo-plusplus [ Masked ] Latest version available: 9999 Latest version installed: [ Not Installed ] Size of files: 0 KiB Homepage: https://github.com/EionRobb/funyahoo-plusplus Description: Yahoo! (2016) Protocol Plugin for Pidgin License: GPL-3+ * x11-plugins/pidgin-gnome-keyring Latest version available: 2.0-r1 Latest version installed: [ Not Installed ] Size of files: 12 KiB Homepage: https://github.com/aebrahim/pidgin-gnome-keyring Description: Integrates Pidgin (and libpurple) with the system keyring License: GPL-2+ * x11-plugins/pidgin-gpg Latest version available: 0.9.3 Latest version installed: [ Not Installed ] Size of files: 788 KiB Homepage: https://github.com/Draghtnod/Pidgin-GPG Description: Pidgin GPG/OpenPGP (XEP-0027) plugin License: GPL-3 * x11-plugins/pidgin-hotkeys Latest version available: 0.2.4 Latest version installed: [ Not Installed ] Size of files: 334 KiB Homepage: http://pidgin-hotkeys.sourceforge.net/ Description: Pidgin plugin to define global hotkeys for various actions License: GPL-2 * x11-plugins/pidgin-indicator Latest version available: 1.0.1 Latest version installed: [ Not Installed ] Size of files: 304 KiB Homepage: https://github.com/philipl/pidgin-indicator Description: AppIndicator/KStatusNotifierItem plugin for Pidgin License: GPL-2+ * x11-plugins/pidgin-latex Latest version available: 1.5.0 Latest version installed: [ Not Installed ] Size of files: 18 KiB Homepage: https://sourceforge.net/projects/pidgin-latex/ Description: Pidgin plugin that renders latex formulae License: GPL-2 * x11-plugins/pidgin-led-notification Latest version available: 0.1 Latest version installed: [ Not Installed ] Size of files: 9 KiB Homepage: https://sites.google.com/site/simohmattila/led-notification Description: Pidgin plugin to notify by writing user defined strings to (led control) files License: GPL-2 * x11-plugins/pidgin-libnotify Latest version available: 0.14-r1 Latest version installed: [ Not Installed ] Size of files: 314 KiB Homepage: http://gaim-libnotify.sourceforge.net/ Description: pidgin-libnotify provides popups for pidgin via a libnotify interface License: GPL-2 * x11-plugins/pidgin-mbpurple Latest version available: 0.3.0-r2 Latest version installed: [ Not Installed ] Size of files: 82 KiB Homepage: https://code.google.com/p/microblog-purple/ Description: Pidgin plug-in supporting microblog services like Twitter or identi.ca License: GPL-3 * x11-plugins/pidgin-mpris Latest version available: 0.2.6 Latest version installed: [ Not Installed ] Size of files: 207 KiB Homepage: http://m0n5t3r.info/work/pidgin-mpris/ Description: Gets current song from MPRIS-aware media players License: GPL-2 * x11-plugins/pidgin-musictracker Latest version available: 0.4.22 Latest version installed: [ Not Installed ] Size of files: 711 KiB Homepage: https://code.google.com/p/pidgin-musictracker/ Description: A Pidgin now playing plugin to publicise the songs you are listening License: GPL-2 * x11-plugins/pidgin-opensteamworks Latest version available: 1.7 Latest version installed: [ Not Installed ] Size of files: 231 KiB Homepage: https://github.com/eionrobb/pidgin-opensteamworks Description: Steam protocol plugin for pidgin License: GPL-3 * x11-plugins/pidgin-otr Latest version available: 4.0.2 Latest version installed: [ Not Installed ] Size of files: 504 KiB Homepage: http://www.cypherpunks.ca/otr/ Description: (OTR) Messaging allows you to have private conversations over instant messaging License: GPL-2 * x11-plugins/pidgin-privacy-please Latest version available: 0.7.1 Latest version installed: [ Not Installed ] Size of files: 339 KiB Homepage: https://code.google.com/p/pidgin-privacy-please/ Description: pidgin plugin to stop spammers from annoying you License: GPL-3 * x11-plugins/pidgin-rhythmbox Latest version available: 2.0 Latest version installed: [ Not Installed ] Size of files: 314 KiB Homepage: http://jon.oberheide.org/pidgin-rhythmbox/ Description: automatically update your pidgin profile with current info from Rhythmbox License: GPL-2 * x11-plugins/pidgin-sipe Latest version available: 1.25.0-r1 Latest version installed: [ Not Installed ] Size of files: 1,363 KiB Homepage: http://sipe.sourceforge.net/ Description: Pidgin Plug-in SIPE (Sip Exchange Protocol) License: GPL-2 * x11-plugins/pidgin-skypeweb Latest version available: 1.7 Latest version installed: [ Not Installed ] Size of files: 291 KiB Homepage: https://github.com/EionRobb/skype4pidgin Description: SkypeWeb Plugin for Pidgin License: GPL-3+ * x11-plugins/pidgin-telegram Latest version available: 1.4.6 Latest version installed: [ Not Installed ] Size of files: 487 KiB Homepage: https://github.com/majn/telegram-purple Description: A libpurple protocol plugin that adds support for the Telegram messenger License: GPL-2+ * x11-plugins/pidgin-window_merge Latest version available: 0.3 Latest version installed: [ Not Installed ] Size of files: 322 KiB Homepage: https://github.com/dm0-/window_merge Description: A Pidgin plugin that merges the Buddy List window with a conversation window License: GPL-3 * x11-plugins/pidgin-xmpp-receipts Latest version available: 0.8 Latest version installed: [ Not Installed ] Size of files: 16 KiB Homepage: https://github.com/noonien-d/pidgin-xmpp-receipts Description: Implementation of xmpp message delivery receipts (XEP-0184) for Pidgin License: GPL-3 * x11-plugins/pidgintex Latest version available: 1.1.2_p20170107 Latest version installed: [ Not Installed ] Size of files: 50 KiB Homepage: https://github.com/Micket/pidgintex Description: Pidgin plugin to render LaTeX expressions in messages License: GPL-3+ * x11-themes/pidgin-penguins-smileys Latest version available: 1.0 Latest version installed: [ Not Installed ] Size of files: 257 KiB Homepage: https://gnome-look.org/content/show.php?content=62566 Description: Penguins pidgin smiley theme License: GPL-1+ [ Applications found : 27 ]
There are many source packages related to pidgin.
More examples
root # sisyphus search google-chrome -q -f all
Search the entire database for for Google Chrome, but display the results in a compacted way, without description
root # sisyphus search "" -q -f available
Since no search term was provided, it will display all the binary packages in the repository, which are NOT installed on the system. The results are displayed in a compacted way, without description.
root # sisyphus search "" -d browser -f all
Search the entire database for packages which have the word "browser" in their description.
Notes
In default search mode, only one search term can be used at a time. If more than one search terms are provided, only the first one will be matched, ignoring the rest.
root # sisyphus search opera chromium -q -f all Searching all packages ... Package Installed Available www-client/opera None 77.0.4054.146 Found 1 matching package(s) ...
In '--ebuild' search mode, more than one search terms can be used, however this mode is slightly slower, and you loose the filtering capabilities from the default search mode.
Bash will expand a single * character as current folder listing. To use filtering you must escape it, or surround it with quotes, or use an empty string.
sisyphus search * -f installed # this is not valid! sisyphus search \* -f alien # OK sisyphus search '*' -f available # OK sisyphus search "" -f upgradeable # OK
Portage equivalent
The '--ebuild' search mode is wrapped form of :
root # emerge --search PACKAGE
Portage can also search descriptions :
root # emerge --searchdesc TEXT
For more information, please read https://wiki.gentoo.org/wiki/Portage
While the '--ebuild' search mode is wrapped from Portage, the default search mode (with the filtering and description search methods) is not. It is a Sisyphus specific implementation to search in its own database.
SPM database sync
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 command to synchronize Sisyphus's package database with Portage's package database.
Usage
root # sisyphus spmsync [OPTIONS]
Options
--help: Show this message and exit.
Help
root # sisyphus spmsync --help
Examples
root # sisyphus smpsync
Portage equivalent
None, not required. Sisyphus creates its database by taking information from Portage's database (for local packages) and Redcore Linux's online servers (for remote packages). Portage is the heart of Redcore Linux, and since the binary packages Sisyphus installs are actually created with Portage on Redcore Linux's servers and installed in the background by Portage itself via wrapped methods, it already knows everything it needs to know.
System information
Display information about installed core packages and portage configuration.
Usage
root # sisyphus sysinfo [OPTIONS]
Options
--help: Show this message and exit.
Help
root # sisyphus sysinfo --help
Examples
root # sisyphus sysinfo
Portage equivalent
root # emerge --info --verbose
Uninstall packages
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.
Usage
root # sisyphus uninstall [OPTIONS] PKGNAME
Options
-f, --force --help: Show this message and exit.
Help
root # sisyphus uninstall --help
Examples
root # sisyphus uninstall firefox
This will succeed, as nothing depends on Firefox.
root # sisyphus uninstall pulseaudio
This will fail, as many packages depend on pulseaudio.
Force uninstall
With '--force' option, packages are uninstalled *UNSAFELY* by ignoring reverse dependencies. This may break your system if you uninstall critical 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.
Examples
root # sisyphus uninstall pulseaudio --force
This will succeed, pulseaudio will be uninstalled, however some of its libraries which other packages link to will be preserved, so the sound *MAY* still work. Read https://wiki.gentoo.org/wiki/Preserve-libs for more details.
Portage equivalent
root # emerge --depclean -va (uninstall packages safely, checking for reverse dependencies) root # emerge --unmerge -va (uninstall packages unsafely, ignoring reverse dependencies)
Update system
Update the Portage tree, the Redcore Overlay(s), Portage configuration files and Sisyphus's package database.
Usage
root # sisyphus update [OPTIONS]
Options
--help: Show this message and exit.
Help
root # sisyphus update --help
Examples
root # sisyphus update
Portage equivalent
root # emerge --sync
Upgrade system
Upgrade the system using binary and/or ebuild (source) packages. By default, only binary packages will be upgraded.
Usage
root # sisyphus upgrade [OPTIONS]
Options
-e, --ebuild --help: Show this message and exit.
Help
root # sisyphus upgrade --help
Examples
root # sisyphus upgrade
Will upgrade the system using binary packages; if any ebuild(source) package upgrade is detected, it will stop and suggest the --ebuild option.
Hybrid upgrade
If you installed any ebuild(source) packages with the '--ebuild' option, it would make sense to upgrade them too. Use the --ebuild option to upgrade **EVERYTHING**, binary and/or ebuild(source) packages. It behaves like Portage '--getbinpkg' option and will preffer to reuse binary packages(if found) to satisfy the dependencies for the source(ebuild) packages, speeding up the upgrade. The '--ebuild' option can be used all the time, as it will fallback to upgrade binary packages if no compilation is required.
Examples
root # sisyphus upgrade --ebuild
Will upgrade everything, binary and/or source packages.
Portage equivalent
root # emerge --newuse --update --deep --ask --verbose --getbinpkgonly --backtrack=100 --with-bdeps=y @world (upgrade the system using binary packages only, fail if not found, even if source packages are available) root # emerge --newuse --update --deep --ask --verbose --getbinpkg --backtrack=100 --with-bdeps=y @world (upgrade the system using binary packages, compile source packages if binary packages are not found) root # emerge --newuse --update --deep --ask --verbose --backtrack=100 --with-bdeps=y @world (upgrade the system compiling everything from source, ignoring binary packages)
Sisyphus wraps Portage methods in a slightly different way. It doesn't fail if the binary package is not found, but suggests the '--ebuild' option if the ebuild(source) package is found. If you would rather prefer to use Portage all the time :
root # emerge --sync root # emerge --newuse --update --deep --ask --verbose --getbinpkg --rebuilt-binaries --backtrack=100 --with-bdeps=y @world root # sisyphus spmsync
will achieve the same result as if running
root # sisyphus upgrade --ebuild
all the time. Portage '--getbinpkg' option will preffer to reuse binary packages(if available) to satisfy the dependencies for the ebuild(source) package, speeding up the upgrade.
GUI Client
Sisyphus GUI is the graphical user interface part. It is very simplistic in design and functionality and it can only perform very basic tasks : search packages by name, category or description, install binary packages, uninstall binary package, 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, hence it is package based not application based, without any bells and whistles (no screenshots, no ratings, no reviews and so on). It does have a settings window where one can switch the current active mirror.
Search packages
Sisyphus GUI is able to search packages by name, category and description and filter the searches in a similar way to the cli counterpart. Unlike its cli counterpart, it does not support ebuild search and the searches are restricted to binary packages only. However searches are realtime, and it will search as you type. This means it can find a result even if you only know part of the package name, category or description.