Skip to content

Commit 0c5123b

Browse files
committed
docs: add distro/arch
1 parent e8aae06 commit 0c5123b

File tree

2 files changed

+206
-0
lines changed

2 files changed

+206
-0
lines changed

chapters.yml

+2
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@
22
- cron.md: Cron 定时任务
33
- systemd.md: SystemD
44
- xargs.md: xargs 命令
5+
- distro/: 发行版
6+
- distro/arch.md: Arch Linux

docs/distro/arch.md

+204
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
# Arch Linux
2+
3+
## 简介
4+
5+
Arch 是一个滚动更新的发行版,以软件包更新快、数量大而著称。
6+
7+
还有很多发行版是基于 Arch 的,比如 Manjaro、EndeavourOS、Garuda Linux。
8+
9+
## Pacman 包管理器
10+
11+
Pacman 是 Arch 的官方包管理器。
12+
13+
下面的命令更新软件包列表。
14+
15+
```bash
16+
$ sudo pacman -Sy
17+
```
18+
19+
`-Ss`用来搜索软件包。
20+
21+
```bash
22+
$ sudo pacman -Ss vlc
23+
```
24+
25+
`-Si`用来获取软件包的详细信息。
26+
27+
```bash
28+
pacman -Si nginx
29+
```
30+
31+
`-S`用来安装软件包。
32+
33+
```bash
34+
$ sudo pacman -S vlc
35+
```
36+
37+
`-S`也可以用来更新软件包。
38+
39+
`-Syu`更新当前系统的所有软件包。
40+
41+
```bash
42+
$ sudo pacman -Syu
43+
```
44+
45+
`--ignore`指定系统更新时,忽略某个软件包。
46+
47+
```bash
48+
$ sudo pacman -Syu --ignore=vlc
49+
```
50+
51+
`-Sw`用来下载某个软件包,但不安装。
52+
53+
```bash
54+
$ pacman -Sw vlc
55+
```
56+
57+
`-Q`用来查看系统已经安装的所有软件包。
58+
59+
```bash
60+
$ pacman -Q
61+
```
62+
63+
`-Qs`用来搜索某个软件包是否已经安装。
64+
65+
```bash
66+
$ pacman -Qs vlc
67+
```
68+
69+
`-Ql`用来查看某个软件包安装的所有文件。
70+
71+
```bash
72+
$ pacman -Ql vlc
73+
```
74+
75+
`-Qo`用来查看某个可执行文件属于哪个软件包。
76+
77+
```bash
78+
$ pacman -Qo /usr/bin/vlc
79+
```
80+
81+
`-Rs`用来删除指定软件包及其依赖项。
82+
83+
```bash
84+
$ sudo pacman -Rs vlc
85+
```
86+
87+
`-Rns`用来删除软件包和配置文件。
88+
89+
```bash
90+
$ sudo pacman -Rns vlc
91+
```
92+
93+
下面的命令用来删除孤儿软件包。
94+
95+
```bash
96+
$ sudo pacman -Rns $(pacman -Qdtq)
97+
```
98+
99+
`-U`用来安装本地包。Pacman 将所有下载的包存储在目录`/var/cache/pacman/pkg`,下载以后,可以进入这个目录,安装本地包。
100+
101+
```bash
102+
$ cd /var/cache/pacman/pkg/
103+
$ sudo pacman -U vlc-3.0.11-2-x86_64.pkg.tar.zst
104+
```
105+
106+
`-Sc`用来删除目录`/var/cache/pacman/pkg`里面的软件包缓存。
107+
108+
```bash
109+
$ sudo pacman -Sc
110+
```
111+
112+
`-Scc`用来删除缓存目录的所有文件。
113+
114+
```bash
115+
$ sudo pacman -Scc
116+
```
117+
118+
## 选择下载镜像
119+
120+
软件工具 Reflector 可以选择下载速度最快的软件仓库。
121+
122+
它是一个 Python 脚本,会根据下载速度和稳定性,选择对于用户来说最快的下载镜像,然后改写文件`/etc/pacman.d/mirrorlist`
123+
124+
首先,安装这个软件包。
125+
126+
```bash
127+
$ sudo pacman -S reflector rsync
128+
```
129+
130+
然后,备份`/etc/pacman.d/mirrorlist`。不过,这一步不是必需的,因为可以用[在线工具](https://archlinux.org/mirrorlist/)重新创建这个文件。
131+
132+
```bash
133+
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
134+
```
135+
136+
接着,使用 Reflector 找出10个最近同步的下载镜像,按照下载速度排序,并将结果写入`/etc/pacman.d/mirrorlist`
137+
138+
```bash
139+
$ sudo reflector --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
140+
```
141+
142+
上面命令的几个参数含义如下。
143+
144+
- `--latest`:筛选范围为最近同步的 n 个服务器。
145+
- `--sort`:按照 rate(下载速度)对镜像进行排序,其他可能的选项是 age、country、score 和 delay。
146+
- `--save`:将结果保存到指定位置。
147+
148+
如果要从最近10个同步镜像中选择五个最快的镜像,需要用`--fastest`指定所需的服务器数量。
149+
150+
```bash
151+
$ sudo reflector --latest 10 --sort rate --fastest 5 --save /etc/pacman.d/mirrorlist
152+
```
153+
154+
`--list-countries`参数选项可以列出国家地区代码。
155+
156+
```bash
157+
$ reflector --list-countries
158+
```
159+
160+
`--country`参数选项可以筛选仅限于指定国家地区的下载镜像。
161+
162+
```bash
163+
$ sudo reflector --country "US" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
164+
```
165+
166+
上面命令指定下载镜像仅限于美国。
167+
168+
如果下载镜像在多个国家地区,可以用逗号分隔。
169+
170+
```bash
171+
$ sudo reflector --country "US,CA" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
172+
# 或者
173+
$ sudo reflector --country "United States,Canada" --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
174+
```
175+
176+
上面命令将下载镜像限于美国和加拿大。
177+
178+
`--protocol`参数选项可以指定下载协议:https、http、ftp。它也可以用逗号指定多个协议。
179+
180+
```bash
181+
$ sudo reflector --protocol https --latest 10 --sort rate --save /etc/pacman.d/mirrorlist
182+
```
183+
184+
如果需要 Reflector 定期运行,就需要编辑配置文件`/etc/xdg/reflector/reflector.conf`。编辑完成以后,打开 SystemD 定时器。
185+
186+
```bash
187+
$ sudo systemctl enable --now reflector.timer
188+
```
189+
190+
然后,可以检查一下,定时器是否添加成功。
191+
192+
```bash
193+
$ sudo systemctl list-timers
194+
```
195+
196+
另一种方法是将 Reflector 服务在系统启动时打开。
197+
198+
```bash
199+
$ sudo systemctl enable --now reflector.service
200+
```
201+
202+
## 参考链接
203+
204+
- [Finding the Most Up-to-Date and Fastest Arch Linux Mirrors](https://linuxiac.com/how-to-find-fastest-arch-linux-mirror/)

0 commit comments

Comments
 (0)