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