Arch Linux
简介 #
Arch 是一个滚动更新的发行版,以软件包更新快、数量大而著称。
还有很多发行版是基于 Arch 的,比如 Manjaro、EndeavourOS、Garuda Linux。
Pacman 包管理器 #
Pacman 是 Arch 的官方包管理器。
-Sy
更新软件包列表。
$ sudo pacman -Sy
-Syu
更新当前系统的所有软件包。
$ sudo pacman -Syu
-Ss
用来搜索软件包。
$ sudo pacman -Ss vlc
-Si
用来获取软件包的详细信息。
$ pacman -Si nginx
-S
用来安装软件包。
$ sudo pacman -S vlc
-S
可以一次安装多个包。
$ sudo pacman -S pac1 pac2
-S
也可以用来更新软件包。
-Qi
用来查看下载后某个软件包的详细信息。
$ pacman -Qi package
--ignore
指定系统更新时,忽略某个软件包。
$ sudo pacman -Syu --ignore=vlc
-Sw
用来下载某个软件包,但不安装。
$ pacman -Sw vlc
-Q
用来查看系统已经安装的所有软件包。
$ pacman -Q
-Qs
用来搜索某个软件包是否已经安装。
$ pacman -Qs vlc
-Ql
用来查看某个软件包安装的所有文件。
$ pacman -Ql vlc
-Qo
用来查看某个可执行文件属于哪个软件包。
$ pacman -Qo /usr/bin/vlc
-Rs
用来删除指定软件包及其依赖项。
$ sudo pacman -Rs vlc
-Rns
用来删除软件包和配置文件。
$ sudo pacman -Rns vlc
下面的命令用来删除孤儿软件包。
$ sudo pacman -Rns $(pacman -Qdtq)
-U
用来安装本地包。Pacman 将所有下载的包存储在目录/var/cache/pacman/pkg
,下载以后,可以进入这个目录,安装本地包。
$ cd /var/cache/pacman/pkg/
$ sudo pacman -U vlc-3.0.11-2-x86_64.pkg.tar.zst
-Sc
用来删除目录/var/cache/pacman/pkg
里面的软件包缓存。
$ sudo pacman -Sc
-Scc
用来删除缓存目录的所有文件。
$ sudo pacman -Scc
AUR 软件仓库 #
AUR (Arch User Repository)是 Arch 的非官方软件仓库,官方不负责维护,由网友维护。
这时可以安装 yay,帮助管理 AUR 软件包。
$ git clone https://aur.archlinux.org/yay-bin.git
$ cd yay-bin
$ makepkg -si
然后,使用下面的命令,查看是否安装成功。
$ yay --version
-S
用来安装软件包。
$ yay -S packageName
-Sua
用来更新所有已经安装的 AUR 软件包。
$ yay -Sua
-Syu
用来更新系统所有软件包。
$ sudo yay -Syu
-Ss
用来搜索软件包,这会同时包括官方仓库和 AUR。
$ yay -Ss packageName
如果只在 AUR 搜索,-Ss
都不需要。
$ yay packageName
-R
用来删除软件包。
$ yay -R packagename
-Rns
还可以删除依赖项。
-Ps
用来查看系统统计信息。AUR 下载所有软包都保存在目录~/.cache/yay/
。
$ yay -Ps
-Sc
用来清除已经下载的 AUR 文件。
$ yay -Sc
-Scc
用来删除所有不需要的依赖项以及所有缓存的包文件。
$ yay -Scc
选择下载镜像 #
软件工具 Reflector 可以选择下载速度最快的软件仓库。
它是一个 Python 脚本,会根据下载速度和稳定性,选择对于用户来说最快的下载镜像,然后改写文件/etc/pacman.d/mirrorlist
。
首先,安装这个软件包。
$ sudo pacman -S reflector rsync
然后,备份/etc/pacman.d/mirrorlist
。不过,这一步不是必需的,因为可以用在线工具重新创建这个文件。
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
接着,使用 Reflector 找出10个最近同步的下载镜像,按照下载速度排序,并将结果写入/etc/pacman.d/mirrorlist
。
$ sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
上面命令的几个参数含义如下。
--latest
:筛选范围为最近同步的 n 个服务器。--sort
:按照 rate(下载速度)对镜像进行排序,其他可能的选项是 age、country、score 和 delay。--save
:将结果保存到指定位置。
如果要从最近10个同步镜像中选择五个最快的镜像,需要用--fastest
指定所需的服务器数量。
$ sudo reflector --latest 10 --sort rate --fastest 5 --save /etc/pacman.d/mirrorlist
--list-countries
参数选项可以列出国家地区代码。
$ reflector --list-countries
--country
参数选项可以筛选仅限于指定国家地区的下载镜像。
$ sudo reflector --country "US" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
上面命令指定下载镜像仅限于美国。
如果下载镜像在多个国家地区,可以用逗号分隔。
$ sudo reflector --country "US,CA" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
# 或者
$ sudo reflector --country "United States,Canada" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
上面命令将下载镜像限于美国和加拿大。
--protocol
参数选项可以指定下载协议:https、http、ftp。它也可以用逗号指定多个协议。
$ sudo reflector --protocol https --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
如果需要 Reflector 定期运行,就需要编辑配置文件/etc/xdg/reflector/reflector.conf
。编辑完成以后,打开 SystemD 定时器。
$ sudo systemctl enable --now reflector.timer
然后,可以检查一下,定时器是否添加成功。
$ sudo systemctl list-timers
另一种方法是将 Reflector 服务在系统启动时打开。
$ sudo systemctl enable --now reflector.service