User Tools

Site Tools


sisyphus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sisyphus [2018/02/04 16:24]
v3n3rix [Sisyphus CLI]
sisyphus [2019/06/22 21:46] (current)
v3n3rix
Line 9: Line 9:
   * sisyphus-gui - the graphical user interface frontend, a simple PyQt5 frontend to 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.+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 ====
  
 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 : 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 [[https://​wiki.gentoo.org/​wiki/​Binary_package_guide|Gentoo binary package guide]]. ​+  * 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 [[https://​wiki.gentoo.org/​wiki/​Binary_package_guide|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 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   * 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|Vasile]] article!** 
  
 ==== Sisyphus CLI ==== ==== Sisyphus CLI ====
Line 26: Line 23:
 Sisyphus CLI is the command line interface frontend. It exposes functions wrapped by libsisyphus in a apt-get/​yum-alike fashion. 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 :+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 new packages +--install 
-  * uninstall ​Uninstall packages *safely* (INFO : If reverse deps are found, package(s) will NOT be uninstalled) +    Install binary ​packages
-  * 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+
  
 +--hybrid-install
 +    * Install binary and/or ebuild (source) packages
  
-Install a package: ​ +--uninstall 
-    ​sisyphus install ​package(s) +    ​* Uninstall packages *SAFELY* by checking for reverse dependencies 
-Portage command (wrapped): +    * If reverse dependencies exist, the package(s) ​will NOT be uninstalled to prevent the possible breakage of the system 
-    ​emerge --sync ​ +    ​* If you really want to uninstall the package, make sure you uninstall all reverse dependencies as well 
-    ​emerge -a package(s)+    ​* This will not allways be possible, as the reverse dependency chain may be way to long and require you to uninstall critical system packages
  
-Uninstall ​a package ​**safely** (calculate ​reverse ​deps): ​ +--force-uninstall 
-    ​sisyphus ​uninstall ​package(s) +    * Uninstall ​packages ​*UNSAFELYby ignoring ​reverse ​dependencies 
-Portage command (wrapped): +    ​* This may break your system if you uninstall ​critical system packages 
-    ​emerge --sync +    ​* It will try the best it can to preserve the libraries required by other packages to prevent such a breakage 
-    ​emerge --depclean -a package(s)+    ​* Upgrading the system may pull the packages back in, to fix the reverse dependency chain
  
-Uninstall ​a package **unsafely** (ignore reverse deps): ​ +--remove-orphans 
-    ​sisyphus force-uninstall package(s+    * Uninstall ​packages that are no longer needed 
-Portage command (wrapped): +    ​* When you uninstall ​package ​without it'reverse dependencies,​ those dependencies will become orphans if nothing else requires them 
-    ​emerge --sync +    ​* In addition, a package may no longer depend on another one, so that other package becomes orphan as well if nothing else requires it 
-    ​emerge --unmerge -a package(s)+    ​* Use this option to check the whole dependency chain for such packages, and uninstall them
  
-Remove no longer needed packages (installed as deps for another package): +--update 
-    ​sisyphus remove-orphans +    ​* Update the Portage ​tree, Overlay(s), Portage config files && Sisyphus'​s package database
-Portage ​command ​(wrapped)+
-    emerge --sync +
-    emerge --depclean -a+
  
-Upgrade the system+--upgrade 
-    sisyphus upgrade +    * Upgrade the system ​using binary packages
-Portage command (wrapped):​ +
-   ​emerge --sync +
-   ​emerge -uDaN --with-bdeps=y @world+
  
-Search for package(s): +--hybrid-upgrade 
-    ​sisyphus search package(s) +    ​* Upgrade the system using binary and/or ebuild ​(sourcepackages
-Portage command (wrapped):​ +
-    emerge --search package(s)+
  
-Update the Portage tree, Overlay(s), Portage config files && Sisyphus database remote_packages table: ​ +--search 
-    ​sisyphus update +    ​* Search for binary packages
-Portage command(s) (wrapped):​ +
-    emerge --sync+
  
-Sync Portage database to Sisyphus database: +--hybrid-search 
-    ​sisyphus spmsync +    ​* Search for binary and/or ebuild ​(sourcepackages
-Portage command(s(wrapped):​ +
-    none+
  
-Recover lost or corrupted ​Sisyphus database: +--spmsync 
-    ​sisyphus rescue +    * Sync Sisyphus's package database with Portage'​s package ​database 
-Portage ​command(s(wrapped): +    ​* 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 
-    ​none+    ​* Use this option to synchronize Sisyphus'​s package database with Portage'​s package database
  
-Display information about installed core packages and portage configuration: +--rescue 
-    ​sisyphus sysinfo +    * Resurrect Sisyphus'​s package database if lost or corrupted 
-Portage command (wrapped):​ +    * If for some reason Sisyphus'​s package database is lost or corrupted, it can be resurrected using Portage'​s package database 
-    emerge ​--info+    * 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
  
-**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 === === Development ===
Line 104: Line 95:
 ==== Sisyphus GUI ==== ==== Sisyphus GUI ====
  
-**Under heavy development,​ not yet ready!!!**+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.
  
-Slight old (3 months) demo, code improved a lot since then:\\ 
-[[https://​www.youtube.com/​watch?​v=cwiFKhLhPr8&​t=95s]] 
  
  
sisyphus.1517757868.txt.gz · Last modified: 2018/02/04 16:24 by v3n3rix