Arch Linux

网道(WangDoc.com),互联网文档计划

简介 #

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

参考链接 #