开始的
Arch Linux 提供类似于其他现代 Linux 发行版的包管理功能,这是通用包管理操作的指南。
在继续前,请确保您的包数据库是最新的:
1sudo pacman -Sy
搜索
优于简短性而非直观性,Arch Linux中的大多数包管理操作都以以下格式出现:
1pacman -<a-z><a-z>.
例如,寻找 pacman 存储库的正常命令是
1pacman -Ss <package>
与大多数 pacman 命令一样,它并不特别明显. pacman 也配备了 pacsearch 实用程序. 它以类似的方式工作,但与 pacman -Ss 相比,它有一些改进:
- 色彩突出
- 安装包类别 ('本地')
以下是如何列出所有标准包的关键字linux
。
1pacsearch linux
有时会有很多包匹配你的搜索标准,这尤其适用于使用一个AUR助手,如酸奶。常规表达式可以帮助缩小列表,例如,假设你试图找到与背后
工具相关的东西。对ack的常规搜索将不可避免地返回很多结果,比如包装
,黑客
或反弹
。
1pacsearch ack
但是,没有多少单词 ** 开始** 用 ack. 将 ^ 添加到搜索单词中,只会包含以这些字母开始的结果. 这至少适用于 pacsearch、pacman 和酸奶。
1pacsearch ^ack
为了确保正常的表达式按预期运作,请用引文包围它。
1pacsearch 'c\+\+'
如果你想获得与搜索相匹配的安装包列表,请将结果引导到抓住本地
。-A 1
选项告诉grep在每个匹配后包括一行(在这种情况下,包描述)。
1pacsearch linux | grep local -A 1
或者,您可以使用Pacman -Qs,缺点是没有色彩突出。
1pacman -Qs linux
如果你想用 pacman -Ss 进行颜色突出显示,你可以从 /etc/pacman.conf 解读颜色,但它突出不同于 pacsearch,所以你可能想尝试两者,看看你更喜欢哪一个。
1sudo vi /etc/pacman.conf
2
3...
4# Misc options
5#UseSyslog
6Color
7#TotalDownload
8CheckSpace
9#VerbosePkgLists
10...
获取信息
pacman -Qi
1pacman -Qi linux
2
3Name : linux
4Version : 3.8.4-1
5Description : The linux kernel and modules
6Architecture : x86_64
7URL : http://www.kernel.org/
8Licenses : GPL2
9Groups : base
10Provides : kernel26=3.8.4
11Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7
12Optional Deps : crda: to set the correct wireless channels of your country
13Required By : None
14Optional For : None
15Conflicts With : kernel26
16Replaces : kernel26
17Installed Size : 64728.00 KiB
18Packager : Tobias Powalowski <[email protected]>
19Build Date : Wed Mar 20 21:16:17 2013
20Install Date : Fri Mar 29 01:02:14 2013
21Install Reason : Explicitly installed
22Install Script : Yes
23Validated By : Unknown
如果 pacman -Qi 通过没有争议,它会返回系统中的所有包. 您可以搜索此输出获取有关安装的包的专业信息。
例如,如果您想获得每个包和其大小:
1pacman -Qi | grep -e "Name" -e "Installed Size"
2
3Name : a52dec
4Installed Size : 244.00 KiB
5Name : aalib
6Installed Size : 768.00 KiB
7...
虽然 pacman -Qi 提供有关已安装的软件包的信息,但 pacman -Si 会查询数据库的最新信息。
1pacman -Si linux
2
3Repository : core
4Name : linux
5Version : 3.11.6-1
6Description : The Linux kernel and modules
7Architecture : x86_64
8URL : http://www.kernel.org/
9Licenses : GPL2
10Groups : base
11Provides : kernel26=3.11.6
12Depends On : coreutils linux-firmware kmod mkinitcpio>=0.7
13Optional Deps : crda: to set the correct wireless channels of your country
14Conflicts With : kernel26
15Replaces : kernel26
16Download Size : 47855.98 KiB
17Installed Size : 64493.00 KiB
18Packager : Thomas Bächler <thomas@archlinux.org>
19Build Date : Fri 18 Oct 2013 05:25:12 PM EDT
20Validated By : MD5 Sum SHA256 Sum Signature
pacman -Ql
1pacman -Ql vi
2
3vi /usr/
4vi /usr/bin/
5vi /usr/bin/edit
6vi /usr/bin/ex
7vi /usr/bin/vedit
8vi /usr/bin/vi
9...
每个行上的包名称可能会使输出更难在脚本中使用。 pacman -Qlq(即pacman 查询列表,安静
)不会打印包名称。
1pacman -Qlq vi
2
3/usr/
4/usr/bin/
5/usr/bin/edit
6/usr/bin/ex
7/usr/bin/vedit
8/usr/bin/vi
9...
您可以使用 pacman -Qlq
1pacman -Qql pacman | grep bin
2
3/usr/bin/
4/usr/bin/bacman
5/usr/bin/checkupdates
6/usr/bin/cleanupdelta
7/usr/bin/makepkg
8/usr/bin/paccache
9/usr/bin/pacdiff
10/usr/bin/paclist
11/usr/bin/paclog-pkglist
12/usr/bin/pacman
13/usr/bin/pacman-db-upgrade
14/usr/bin/pacman-key
15/usr/bin/pacman-optimize
16/usr/bin/pacscripts
17/usr/bin/pacsearch
18/usr/bin/pacsort
19/usr/bin/pacsysclean
20/usr/bin/pactree
21/usr/bin/pkgdelta
22/usr/bin/rankmirrors
23/usr/bin/repo-add
24/usr/bin/repo-elephant
25/usr/bin/repo-remove
26/usr/bin/testdb
27/usr/bin/testpkg
28/usr/bin/updpkgsums
29/usr/bin/vercmp
储存消费
查看哪个包在您的系统上占用最多空间的最简单的方法是 pacsysclean 与 pacman 搭配。
1pacsysclean
如果你想要一些更复杂的东西,那么 pacgraph 实用程序可以生成 SVG 和 PNG 格式中最大的包的依赖词云。
pacgraph 在社区存储库中找到。
1sudo pacman -S pacgraph
pacgraph -c 将像 pacsysclean 那样输出到控制台。如果有很多包,那么 pacgraph 的输出可能会变得不舒服,因为它是从最大的到最小的,不像 pacsysclean。
1pacgraph -c | head
2
3Autodetected Arch.
4Loading package info
5Total size: 730MB
6114MB linux
7103MB libtool
884MB pacgraph
940MB imagemagick
1025784kB ppl
1122264kB nmap
1217295kB pkgfile
在我测试的Arch Linux dropplet中,此输出之前出现了一些错误,要删除这些错误,您需要从默认C
中纠正本地设置。
1export LANG=en_US.UTF-8
如果您没有与虚拟服务器建立文件共享系统,最简单的方法来访问由 pacgraph 生成的图像是使用 Secure Copy。
1scp <user>@<addr>:<remote_path> <local_path>
** 注意**:虽然 pacgraph 声称在安装 imageagick 和 libpng 后会渲染 PNG 文件,但在本文写作时,它实际上不会生成没有 inkscape 的 PNG,它具有相当少量的依赖性。
下载 / 安装
安装或升级标准包的典型方法是pacman -S。
1sudo pacman -S <package>
包裹通常在其名称中具有类似的图案. 轴承可以用作捷径。
1sudo pacman -S lua-{sec,socket,zlib}
有时你可能只想下载一个包用于存档目的而不安装它。 pacman -Sw将下载一个包到缓存文件夹。
1sudo pacman -Sw <package>
如果下载了软件包,或者你知道 url,你可以直接安装它。
1sudo pacman -U <package_path>
升级
由于 pacman 围绕着与远程存储器同步
一个包的想法, pacman -S 将升级一个包,如果它已经安装了。
Pacman 可以列出已过时的包。
1pacman -Qu
不幸的是,它不会显示存储库中的软件包版本,因此您将无法知道每个软件包的日期是否过时. 如果这对您来说很重要,您可能想查看第三方软件包管理器或编写一个脚本,将从 pacman -Qi 和 pacman -Si 获得的软件包版本联系在一起。
您可以使用正常表达式从 pacman -Qi 或 pacman -Si 获取版本。
1pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'
2
33.8.4-1
然后写一个脚本,显示版本旁边。
1for i in $(pacman -Qqu)
2do
3 printf "$i: "
4 printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
5 echo "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
6done
Pacman 提供了一次升级所有软件包的方法,但不建议,因为 Arch 是一个滚动版本发行版. 如果出现问题,可能需要时间来确定原因。
1sudo pacman -Syu
降级
Arch Linux 並沒有正式維護過的包,相反,你需要依靠你的包內存和地方,如 Arch Rollback Machine。
隐藏
使用 pacman 下载的每个包都存储在 /var/cache/pacman/pkg 中。
1ls /var/cache/pacman/pkg | grep linux
2
3linux-3.11.6-1-x86_64.pkg.tar.xz
4linux-3.9.7-1-x86_64.pkg.tar.xz
5...
如果你想回到你的缓存中的一个包,只需直接安装它。
1pacman -U <path_to_cached_file>
Arch Rollback 机器
The Arch Rollback Machine是官方Arch Linux镜像的瞬间图像的集合,截至此写作,它可以追溯到四个月。ARM目前在HTTP://seblu.net/a/arm](http://seblu.net/a/arm)托管,但这可能会在未来发生变化。
ARM 包可以使用 pacman -U <package_url> 远程安装。
1pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz
浏览 ARM 对于较旧的软件包并不太方便,幸运的是,有几个工具可以使这更容易:
【下载】【下载】【下载】【下载】【下载】【下载】【下载】【下载】【下载】【下载】【下载】
他们在缓存和ARM中寻找较旧的版本,他们的使用是你所期望的。
1downgrade <package>
2downgrader <package>
这两种工具都在AUR中,所以安装它们的最简单的方法将是使用像酸奶这样的助手。
** 注意**: ARM 是一个非官方项目,过去已经关闭,所以如果 ARM 再次出现故障或更改位置,最好避免清除缓存,如果您想滚动自己的 ARM,在 github上似乎有一个 NodeJS 项目。
删除
删除一个包,只要没有任何东西依赖于它。
1sudo pacman -R <package>
删除一个包,只要没有任何东西依赖于它,删除其他任何东西不需要的依赖。
1sudo pacman -Rs <package>
强制删除一个包. 这是你将到达的命令,只需从系统中删除该包,并在重新安装时重新安装是不够的。
1sudo pacman -Rdd <package>
非官方包裹
绝大多数 Arch Linux 包位于 Arch User Repository中,从 AUR 搜索和下载软件包的最佳方法是使用 Help Tool。
已经有一篇关于AUR和酸奶工具的数字海洋文章(https://www.digitalocean.com/community/articles/how-to-use-yaourt-to-easily-download-arch-linux-community-packages)。