wiki/structured/cli.pacman.org
Gabriel Arazas ae3656f006 Make the command line notes consistent
Just the title anyways. It makes easier to find aside from the file name
and also makes it clear in case I refer to them from other documents.
2021-06-20 10:22:13 +08:00

80 lines
2.0 KiB
Org Mode

#+title: Command line: Pacman
#+date: "2021-06-08 15:00:04 +08:00"
#+date_modified: "2021-06-19 17:42:03 +08:00"
#+language: en
#+property: header_args :eval no
The built-in package manager of Arch Linux (among others).
This note is based from =pacman v6= and above.
* Subcommands
Interestingly, pacman does not have subcommands with specific options.
Instead, they go with specific flags denoting a subcommand.
Practically, they're just subcommands except appearing as options.
#+begin_src shell
# Rather than 'pacman install podman' or something similar.
pacman -S podman
#+end_src
Here's what you can do with the package manager:
- =-S= are concerned with syncing the local database to the remote databases.
- =-F= are mostly query-related operations with the database.
- =-R= removes installed packages.
You can see more of them in the Operations section of the manual page (i.e., =pacman.1=).
* Examples
Welp, this is what you came for so let's go ahead.
** Quickstart
It's a package manager so it's supposed to do basic package manager stuff.
All of the shown commands are in longform with the shortform just commented for practical purposes.
#+begin_src shell
# Search for a pacakge
# pacman -Ss podman
pacman --sync --search podman
# Install a package
# pacman -S podman
pacman --sync podman
# Uninstall a package
# pacman -Rns podman
pacman --remove --no-save --recursive podman
# Upgrade the system
# pacman -Syu
pacman --sync --refresh --upgrade
#+end_src
** Package search selection
With everybody's favorite fuzzy finder, [[id:4eb1f8b1-bc12-4a6c-8fa4-20e4c3542cf2][fzf]].
#+begin_src bash
pacman --sync --quiet --search pkg | fzf --prompt "Package to install > " | xargs --replace='{}' doas pacman --sync {}
#+end_src
You can also create a search selection with all of the packages with the following one-liner.
#+begin_src bash
pacman -S --list --quiet \
| fzf --multi --prompt "Install package(s) > " \
| xargs doas pacman -S --noconfirm
#+end_src