4 ms·
I never liked CLI tools that have a "mode" switch that then overloads command arguments. Pacman is especially confusing since -S actually means the sync mode.
by adestefan 15y ago
I never liked CLI tools that have a "mode" switch that then overloads command arguments.
Pacman is especially confusing since -S actually means the sync mode. Which doesn't really fit with the idea of installing a package. Also, why do you use sync mode to install a package, but have a special remove (-R) mode to remove a package? Shouldn't there be a -I to install?
To take it further, standard use cases for a package manager should be install, upgrade, search and remove with standard arguments -i/--install, -u/--upgrade, -s/--search, -r/--remove.
It seems that most of the package managers get this wrong. For apt-get what's the difference to update, upgrade and dist-upgrade? For yum why is there both an update and an upgrade and why is there a special groupinstall? I know the answer to these questions, but it's confusing until you wrap your head around it.
- chimeracoder 15y ago> Pacman is especially confusing since -S actually means the sync mode. Which doesn't really fit with the idea of installing a package. The idea is that you are synchronizing your copy of the local package (which is currently empty/nonexistant) with the remote copy. It's also the same command you use to update that package. So, pacman -S foo will upgrade foo if it exists locally, and find and install the most recent version of foo if it does not. Once you get used to it, the command-line switches in pacman actually address your second concern (the one with apt/yum). In pacman, everything is built on top of a very simple database model - it just so happens that that simple database model is also powerful enough to serve a range of complex functions.