Difference between revisions of "Sisyphus"

From Redcore Linux Project Wiki
Jump to navigationJump to search
Line 36: Line 36:
  update: Update the Portage tree, the Redcore...
  update: Update the Portage tree, the Redcore...
  upgrade: Upgrade the system using binary and/or ebuild...
  upgrade: Upgrade the system using binary and/or ebuild...
=====sisyphus autoremove=====
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.
* Portage equivalent :
root # emerge --depclean -va
=====sisyphus branch=====
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.
*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)
* Note :
Once you changed the branch, you must pair it with the correct binhost (binary repository).
Branch 'master' must be paired with the stable binhost (binary repository) (odd numbers in 'sisyphus mirror list').
*Examples :
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').
*Examples :
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 :
none, you must change branches manually
*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.
=====sisyphus install=====
=====sisyphus mirror=====
=====sisyphus rescue=====
=====sisyphus search=====
=====sisyphus spmsync=====
=====sisyphus sysinfo=====
=====sisyphus uninstall=====
=====sisyphus update=====
=====sisyphus upgrade=====

Revision as of 00:45, 4 July 2021

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.

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.

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 :
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...
sisyphus autoremove

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.
  • Portage equivalent :
root # emerge --depclean -va
sisyphus branch

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.
  • 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)
  • Note :

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

Branch 'master' must be paired with the stable binhost (binary repository) (odd numbers in 'sisyphus mirror list').

  • Examples :
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').

  • Examples :
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 :
none, you must change branches manually
  • 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.


sisyphus install
sisyphus mirror
sisyphus rescue
sisyphus search
sisyphus spmsync
sisyphus sysinfo
sisyphus uninstall
sisyphus update
sisyphus upgrade