Difference between revisions of "Sisyphus"

From Redcore Linux Project Wiki
Jump to navigationJump to search
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sisyphus is one of the package managers available in Redcore Linux, alongside [[Portage|Portage]] and [[Flatpak|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.  
Sisyphus is one of the package managers available in Redcore Linux, alongside [[Portage|Portage]] and [[Flatpak|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 https://wiki.gentoo.org/wiki/Binary_package_guide]. The Gentoo Linux documentation implemented in Sisyphus's code.


<strong>Note:</strong> 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.
<strong>Note:</strong> 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.
 
<strong>Name:</strong> The Sisyphus name comes from the [https://en.wikipedia.org/wiki/Greek_mythology 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=
=Development=
Line 61: Line 63:
====Portage equivalent====
====Portage equivalent====
  root # emerge --depclean --verbose --ask
  root # emerge --depclean --verbose --ask
==Clean cache==
Clean the binary package cache and the source tarball cache
====Usage====
root # sisyphus autoclean [OPTIONS]
====Options====
--help : Show this message and exit.
====Help====
root # sisyphus autoclean --help
====Examples====
root # sisyphus autoclean
====Portage equivalent====
root # rm -rf /var/cache/packages/* && rm -rf /var/cache/distfiles/*


==Switch branches==
==Switch branches==
Line 83: Line 104:
  root # sisyphus branch next --remote=next (pull the branch 'next' from pagure.io)
  root # sisyphus branch next --remote=next (pull the branch 'next' from pagure.io)


====Note====
====Binary repository pairing====
Once you changed the branch, you must pair it with the correct binhost (binary repository).  
Once you changed the branch, you must pair it with the correct binhost (binary repository).  


Line 108: Line 129:


====Warning====
====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 with different configuration options between branches.
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 packages==
Line 131: Line 152:
   
   
  Source package(s) found in the mix; Use 'sisyphus install pidgin --ebuild'; Quitting.
  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
  root # sisyphus install pidgin --ebuild
Line 143: Line 170:


Will ask Portage to compile and install pidgin and its dependencies from source.
Will ask Portage to compile and install pidgin and its dependencies from source.
===Note===
The --ebuild option will preffer to reuse binary packages(if available) to satisfy the dependencies for the ebuild(source) package, speeding up the installation.
You can use the --ebuild option all the time even if you don't want to install any ebuild(source) packages; It will fall back to binary packages only (if found).


===Portage equivalent===
===Portage equivalent===
Line 247: Line 270:
  8  http://mirror.yandex.ru/mirrors/redcorelinux/packages-next/
  8  http://mirror.yandex.ru/mirrors/redcorelinux/packages-next/


====Portage====
====Portage equivalent====
Read [https://wiki.gentoo.org/wiki/Binary_package_guide 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.
Read [https://wiki.gentoo.org/wiki/Binary_package_guide 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.


Line 343: Line 366:
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.
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.


====Ebuild search====
====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.
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.


Line 606: Line 629:
  sisyphus search "" -f upgradeable      # OK
  sisyphus search "" -f upgradeable      # OK


===Portage===
===Portage equivalent===
The '--ebuild' search mode is wrapped form of :
The '--ebuild' search mode is wrapped form of :
  root # emerge --search PACKAGE
  root # emerge --search PACKAGE
Line 633: Line 656:
  root # sisyphus smpsync
  root # sisyphus smpsync


===Portage===
===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.
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.


Line 652: Line 675:
  root # sisyphus sysinfo
  root # sisyphus sysinfo


===Portage===
===Portage equivalent===
  root # emerge --info --verbose
  root # emerge --info --verbose


==Uninstall packages==
==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 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 system==
Line 673: Line 727:
  root # sisyphus update
  root # sisyphus update


===Portage===
===Portage equivalent===
  root # emerge --sync
  root # emerge --sync


==Upgrade system==
==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.
[[File:Sisyphus1.png|center]]
==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.
<gallery mode="slideshow" showthumbnails>
Image:Sisyphus2.png
Image:Sisyphus3.png
Image:Sisyphus4.png
Image:Sisyphus5.png
Image:Sisyphus6.png
</gallery>

Latest revision as of 22:50, 12 January 2023

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

Clean cache

Clean the binary package cache and the source tarball cache

Usage

root # sisyphus autoclean [OPTIONS]

Options

--help : Show this message and exit.

Help

root # sisyphus autoclean --help

Examples

root # sisyphus autoclean

Portage equivalent

root # rm -rf /var/cache/packages/* && rm -rf /var/cache/distfiles/*

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.

Sisyphus1.png

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.