mirror of
https://github.com/foo-dogsquared/wiki.git
synced 2025-01-31 10:58:28 +00:00
ae3656f006
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.
80 lines
2.0 KiB
Org Mode
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
|