Pamac CLI

pamac

#1

On unstable a rebuild of Pamac 6.4 package just arrived.

The family has grown with a cli app

~ >>> pamac
Available actions:
  pamac --version     
  pamac --help,-h      [action]
  pamac checkupdates   [options]
  pamac search         [options] <package(s)>
  pamac info           [options] <package(s)>
  pamac list           [options] <package(s)>
  pamac install        [options] <package(s)>
  pamac build          [options] <package(s)>
  pamac remove         [options] <package(s)>
  pamac update,upgrade [options] <package(s)>
~/ >>> pamac update -h
Upgrade your system

pamac upgrade,update [options]

options:
  -a, --aur                   : also upgrade packages installed from AUR
  --builddir <dir>            : build directory (use with --aur), if no directory is given the one specified in
                                pamac.conf file is used
  --force-refresh             : force the refresh of the databases
  --enable-downgrade          : enable package downgrades
  --ignore [package(s)]       : ignore a package upgrade, multiple packages can be specified by separating them with
                                a comma
  --overwrite <glob>          : overwrite conflicting files, multiple patterns can be specified by separating them
                                with a comma
~/ >>> pamac list -h
List packages, groups, repositories or files

pamac list [options]

options:
  -i, --installed             : list installed packages
  -o, --orphans               : list packages that were installed as dependencies but are no longer required by any
                                installed package
  -m, --foreign               : list packages that were not found in the repositories
  -g, --groups [group(s)]     : list all packages that are members of the given groups, if no group is given list all
                                groups
  -r, --repos [repo(s)]       : list all packages available in the given repos, if no repo is given list all repos
  -f, --files [file(s)]       : list files owned by the given packages

#2

Can be installed via sudo pacman -U https://manjaro.moson.eu/pool/overlay/pamac-6.4.0-4-x86_64.pkg.tar.xz


#3

I’ll admit it, at first glance, I was like: “What’s the point? We already had pacman plus a billion of CLI package managers with AUR support available.”

But I kinda like the more straightforward, intuitive syntax used here. It’s easier to use, understand and learn than the syntax used by pacman in my opinion. I guess it will be especially appreciated by people that are used to apt or dnf in other distros.

Several questions though:

  1. Can it install local packages (i.e. .pkg.tar.xz files that are in your local storage)? If yes, then which command does that? Pacman can install them with pacman -U /path/blabla.pkg.tar.xz.
  2. Are update and upgrade complete synonym in this tool? Does both do the exact same thing?

#4

So we can uninstall pacman now? :thinking:


#5

Nope, the pacman package is still needed as a dependency.


#6

Why removing pacman? It is the main and only officially supported package manager tool in Archlinux and Manjaro world.


#7

I’m not sure how I feel about this. It appears that with these changes, pamac now treats the repos and the AUR as equivalent software sources, and I’m pretty sure that’s a Bad Idea™.


#8
  1. Yes, just use pamac install command with a local or absolute path, or an url :slight_smile:
  2. Yes, update and upgrade are synomym commands. They both refresh the databases and try to upgrade your system.

#9

Not at all, there are 2 different commands:

  • pamac install to install packages from repositories
  • pamac build to build and install packages from AUR

#10

I think this is neat.
Quick observations;
No extra aur information available such as votes or comments etc.
Also AUR packages have no repo branding (repo packages listed as ‘community’ etc - AUR is blank).


#11

Only for the package. pamac is, as far as i remeber, a libalpm frontent just like pacman, so it should not depend on pacman and would act as replacement. In case there is now a cli tool I dont see any reason to keep pacman. Its like having firefox and chrome installed by default. :thinking:


#12

Well, currently, libalpm is provided by the pacman package.
libalpm-pacman
Pamac also needs makepkg to build packages from AUR, which is also provided in pacman package.


#13

Nah - whether or not you end up using or prefering this tool, I still think one of the first rules of Arch base is to keep pacman around.


#14

I talk about software dependencies, not package stuff :sweat_smile:


#15

Well, it depends on how we go with this. By creating packages like makepkg, libalpm and pacman, it would be possible to remove pacman by default. However, let us see how far and how complete we will go with pamac. Most likely it will be like apt and dpkg.


#16

This is pretty neat, I did not know that the development was this far already. I wonder if this also opens up the possibility of qt frontend in the long run… It would be neat if all official editions would use pamac.


#17

Agree.

And the --orphans - if no package is given all orphans removed.

If you removed a meta package then you have a lot of orphans - but that is on purpose.

Pacman is the only tool that does not do removals you did not ask for.

Example:
If you remove a meta package in pamac - all the packages installed by the meta package is removed.

Using pacman -R only removes the meta pkg and not the installed packages.

This should under no circumstance be changed as it will be much more difficult to change parts of a meta pkg.


#18

¿Qué?

There’s an option in Pamac (Preferences) called “Remove unrequired dependencies” which, as far as I know, isn’t enabled by default.


#19

I know. Nevertheless I have seen a couple of users complaining they could not remove the early openbox meta packages without breaking the openbox packages.

They were trying to remove them using pamac-manager and I repeatly encouraged to use pacman -R but some insisted that would not help.

When some finally did - it removed only the meta pkg and did not touch the content.

That leaves a bunch of pkgs as orphans which brings another possible problem with the pamac cli.

Note that if you use pamac remove --orphans with no pkg name - it will remove all orphans!

~ >>> pamac remove -h                                                                                                
Remove packages

pamac remove [options] [package(s),group(s)]

options:
-o, --orphans  : remove dependencies that are not required by other packages, if this option is used without package
                 name remove all orphans

Imagine you just removed an early openbox meta pkg. Eg. the core pkg - which contains around 25 different pkg - the above command would effectively nuke your openbox installation.


#20

Yes, but you always have a clear transaction summary that tell you what will be removed and you have to confirm before committing.
The problem you mention is more relevant that managing an installation with meta-packages than the package manager itself.