wiki/structured/cli.pacman.org
Gabriel Arazas 3e5d089707 Add notes on various programs and Udacity program
Mainly on the SUSE cloud native fundamentals scholarship program from
Udacity along with various CLI programs I learnt to use over the days
trying to complete it piecewise...

Offhand comment, it is pretty nice so far.
2021-06-13 12:20:18 +08:00

80 lines
1.9 KiB
Org Mode

#+title: Pacman
#+date: "2021-06-08 15:00:04 +08:00"
#+date_modified: "2021-06-08 17:27:45 +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