A universal package manager wrapper
- create a universal interface for all package managers
- be barely slower than base package manager
- be modular so that newer package managers can easily be added to the code
- be powerful enough to be given a GUI as a higher layer of abstraction
- At first runtime, figure out what package managers (Apt, Pacman, Flatpak, etc) are installed
- Then write a configuration file that stores what managers are installed
- This then can be redone by doing
package -initto refresh the config file - The config file will then tell what packages manager to run as the default
- Certain comands (i.e.
-flatpak,-aur,-apt,-snap, etc) will bypass the default and execute the associated package manager (flatpak, the AUR, Apt, Snap, etc)
- Have the primary packages managers (Pacman, Portage, Apt, Zypper, etc) be set as the the possible defaults
- Have condition flags that can force Snap or Flatpak (or others) as the default instead (for Ubuntu, Elementary OS, & Fedora)
- Behavior must be consistant (i.e. portage will always be set to ask unless otherwise)
- all warnings from the original package manager should be made obvious to the user (no Steam uninstalling the desktop environment)
- Linus from Linus Tech Tips Linux Challenge
- Part 1 Apt uninstalling the DE
- Apt's warning about system packages gets hidden in verbose language
- Apt uninstalled the Desktop Environment when installing a program which should not be possible
- Part 2 Apt-get-ting in Manjaro
- There are tons of guides on the internet that assumes that the user is using a Debian/Ubuntu based distros, causing confusion
- Part 1 Apt uninstalling the DE
- Smoothing over the fractured nature of Linux
- Creating software that can easily be included in "Just Works" Distros for beginners
- Something that I can use to learn Software Engineering
- Learn how to make a powerful comandline program
- Learn how to make a program execute other programs and execute them with root privileges when given root privileges