Pacman入门

时间:2020-03-21 11:43:54  来源:igfitidea点击:

Pacman代表Package Manager,是Arch Linux及其衍生品的默认和简单的库的命令行包管理工具。
它允许我们轻松安装,删除,更新和升级软件包以及所有必需的依赖项。
简而言之,Pacman将通过与远程主服务器同步包来保持ARCH Linux系统。
Pacman通常使用.pkg.tar.xz包格式,它是使用C编程语言编写的。

我们可能知道,与其他Linux发行版不同,Arch Linux没有任何GUI包管理器。
例如,Ubuntu具有称为软件中心的GUI包管理器,可以安装,更新,升级和删除包。
但在Arch Linux中,没有这样的东西。
Pacman是一个命令行包管理器。

在本教程中,让我通过简单的示例,让我在如何使用Pacman来安装,删除,更新和升级Arch Linux中的软件包。

Pacman指挥示例

1.刷新包列表

就像在所有Linux操作系统中一样,在安装任何软件包或者更新系统之前,我们必须更新包列表:

为此,请按照root用户运行以下命令:

# pacman -Syy

示例输出:

:: Synchronizing package databases...
 core 122.6 KiB 69.9K/s 00:02 [########] 100%
 extra 1745.3 KiB 38.5K/s 00:45 [########] 100%
 community 3.4 MiB 243K/s 00:14 [########] 100%
 multilib 162.1 KiB 264K/s 00:01 [########] 100%
 archlinuxfr 11.2 KiB 338K/s 00:00 [########] 100%

2.安装特定包

要安装特定包,例如vlc播放器,我们使用以下命令:

# pacman -S vlc

上面的命令将安装VLC包以及所有必需的依赖项。

同样,我们可以立即安装多个包。

例如,要安装vlc和firefox,我们可以使用以下命令:

# pacman -S vlc firefox

3.下载包

有时,我们可能希望只需下载一个包并将其保存在缓存中而不安装它。
我们可能计划将来使用下载的软件包。

为此,运行:

# pacman -Sw <package-name>

例子:

# pacman -Sw vlc

上面的命令只会下载VLC包,并将其保存在缓存文件夹中。

Pacman存储/var/cache/pacman/pkg /文件夹中的所有下载的软件包。

# ls /var/cache/pacman/pkg/

如果要安装下载的包,请转到缓存文件夹并输入以下命令:

# cd /var/cache/pacman/pkg/
# pacman -U <package-name>

例子:

# pacman -U vlc-2.2.2-3-x86_64.pkg.tar.xz

不要与-u旗帜混淆。
它并不意味着卸载。
我们使用此标志从本地缓存中安装包。

4.安装包组

我们可以安装一个包组。
例如,我们可能希望安装KDE等离子体桌面或者MATE桌面。
为此,刚刚运行:

# pacman -S plasma-desktop
# pacman -S mate

此命令将使用所有必需的依赖项安装MATE或者KDE等离子桌面会话。

5.更新/升级包

要更新单个包,请运行:

# pacman -S <package-name>

例子:

# pacman -S vlc

要更新系统中的所有包,请运行:

# pacman -Syu

上面的命令将升级Arch Linux到下一个可用的最新版本。

6.跳过更新/升级包或者包组

有时,我们可能希望在升级Arch Linux时保留旧版本的特定包。

要跳过更新或者升级包,请使用命令:

# pacman -Syu --ignore=grep

示例输出:

:: Synchronizing package databases...
 core 122.6 KiB 69.5K/s 00:02 [########] 100%
 extra 1745.3 KiB 152K/s 00:12 [########] 100%
 community 3.4 MiB 37.2K/s 01:33 [########] 100%
 multilib 162.1 KiB 107K/s 00:02 [########] 100%
 archlinuxfr is up to date
:: Starting full system upgrade...
warning: grep: ignoring package upgrade (2.23-1 => 2.24-1)
 there is nothing to do

要跳过包组,请运行:

# pacman -Syu --ignoregroup=mate

7.删除软件包

要删除单个或者组包,我们将使用pacman命令的-r参数。

例如,我想删除mate包。

为此,运行:

# pacman -R mate

请注意,上面的命令只将只指定的实际软件包。
依赖项仍将留在硬盘驱动器中。

要删除包含其所有依赖项的包,请运行以下命令:

# pacman -Rs <package-name>

例子:

# pacman -Rs mate

此命令将完全删除Mate包和所有依赖项。

现在,等待。
配置文件怎么样?
Pacman将重要配置文件带有扩展名:.pacsave在删除包。

如果我们不再需要它们并希望释放硬盘,可以使用命令删除该文件:

# pacman -Rns mate

上面的命令将完全删除配对桌面会话以及所有必需的依赖关系和配置文件。

使用上面的命令时要小心。
我们可能会意外删除另一个软件所需的一些重要依赖项。

所以,要删除另一个包所需的包,而无需删除从属包,请使用以下命令:

# pacman -Rdd <package-name>

正如我们所知,删除包后,Arch Linux中仍将存在一些孤立(未使用的)包。
这些孤立包不再需要,所以我们可以摆脱他们释放一些空间。

要检查Arch Linux是否有孤儿包,请运行:

$sudo pacman -Qdt

此命令将显示未使用的包列表。

要删除这些包,请运行:

$sudo pacman -Rns $(pacman -Qdtq)

8.搜索本地数据库的包

它意味着从本地数据库查询单个或者包列表,例如:缓存文件夹。

要搜索特定包,例如vlc,从本地数据库运行:

# pacman -Q vlc

示例输出:

vlc 2.2.2-3

要搜索已安装的包,请使用-s标志。

# pacman -Qs vlc

示例输出:

local/vlc 2.2.2-3
 A multi-platform MPEG, VCD/DVD, and DivX player

要使用详细信息搜索从本地数据库中的程序包,运行:

# pacman -Qi vlc

同样,我们可以使用命令从本地数据库中搜索多个包:

# pacman -Q string1 string2

要查看包的已安装文件的完整列表,请运行:

# pacman -Ql vlc

9.搜索Sync数据库的软件包

要从同步数据库(远程服务器)搜索包,请运行:

# pacman -Ss vlc

示例输出:

extra/phonon-qt4-vlc 0.8.2-4
 Phonon VLC backend for Qt4
extra/phonon-qt5-vlc 0.8.2-4
 Phonon VLC backend for Qt5
extra/vlc 2.2.2-3 [installed]
 A multi-platform MPEG, VCD/DVD, and DivX player
community/npapi-vlc 2.2.2-1
 The modern VLC Mozilla (NPAPI) plugin

要从同步数据库显示给定包的详细信息,请运行:

# pacman -Si vlc

Pacman还使用PACSearch Utility船舶,以彩色突出显示搜索结果,并显示是否安装了包。

Pacsearch命令的典型用法将是:

# pacsearch vlc

示例输出:

extra/phonon-qt4-vlc 0.8.2-4
 Phonon VLC backend for Qt4
extra/phonon-qt5-vlc 0.8.2-4
 Phonon VLC backend for Qt5
extra/vlc 2.2.2-3 [installed]
 A multi-platform MPEG, VCD/DVD, and DivX player
community/npapi-vlc 2.2.2-1
 The modern VLC Mozilla (NPAPI) plugin

在上面的输出中看到,PACSearch Utility显示已安装VLC。

10.列出所有未使用的(孤儿)包

要查看不再需要的所有未使用的软件包,请使用-dt参数,如下所示。

# pacman -Qdt <package-name>

11.检查哪个包正在占用大部分空间

Pacman拥有一个良好的效用,称为"PacPraph",显示了哪些包装在硬盘驱动器中的空间。

首先安装PacGraph实用程序。

# pacman -S pacgraph

然后,运行以下命令以查找哪个包占用更多空间:

# pacgraph -c

示例输出:

Autodetected Arch.
Loading package info
Total size: 1302MB
 407MB vlc
 201MB linux
 130MB gcc
 100MB pacgraph
 29425kB grub
 19300kB make
 15617kB yaourt
 290kB vi
 231kB pciutils
 186kB iputils
 164kB patch
 114kB pkg-config
 76kB logrotate
 55kB pcmciautils
 50kB os-prober
 31744B aurvote
 27648B which
 5120B systemd-sysvcompat

如果你只是想展示最大的软件包,请运行:

# pacgraph -c | head

示例输出:

Autodetected Arch.
Loading package info
Total size: 1302MB
 407MB vlc
 201MB linux
 130MB gcc
 100MB pacgraph
 29425kB grub
 19300kB make
 15617kB yaourt

如上所述,VLC包正在进食更多空间。

像聪明一样,检查哪个包正在划分最低尺寸,运行:

# pacgraph -c | tail

示例输出:

231kB pciutils
 186kB iputils
 164kB patch
 114kB pkg-config
 76kB logrotate
 55kB pcmciautils
 50kB os-prober
 31744B aurvote
 27648B which
 5120B systemd-sysvcompat

这将为我们提供一个包装耗尽更多磁盘空间的想法,以便我们可以卸载它们它们不再需要它们。

12.降级包

这是我们需要注意的重要性。
让我们说要安装新的VLC包版本。
安装新的VLC版本后,我们会注意到应用程序不断冻结或者破坏或者根本不工作。
你会怎么办?
在这种情况下,我们可以轻松将VLC降级为旧且稳定的版本。
如果我们还没有清除缓存文件夹,则才能实现这一点。

基本上,我们在安装期间下载的所有包都将存储在缓存目录中,例如:/var/cache/pacman/pkg /。
如果升级后,如果我们发现包无法正常工作,我们可以轻松降级到其先前的稳定版本。

为此,请使用命令删除新版本:

# pacman -R vlc

然后,转到缓存目录:

# cd /var/cache/pacman/pkg/

现在,使用命令安装旧版本:

# pacman -S vlc-2.2.2-3-x86_64.pkg.tar.xz

同样,我们可以将所有问题的包降级为旧版本。

13.清理包缓存

就像我说的那样,我们在安装期间下载的所有包都将存储在缓存目录中,例如:/var/cache/pacman/pkg /。
如果我们不定期删除它们,它将慢慢进食硬盘空间,迟迟或者以后我们最终可能会获得低磁盘空间。

因此,周期性地删除缓存是好的。
此外,我们必须知道有良好和差坏。

正如我上面提到的那样,我们可以随时将包降低到其旧版本。
如果在升级系统后发现包无法正常工作,我们可以轻松降级到旧版本。

糟糕的一面是磁盘空间。
如果我们具有小尺寸的root分区,如果我们不定期清除缓存文件夹,那么我们将很快肯定会耗尽磁盘空间。
所以,一个好主意从时刻清理缓存。

要清除缓存文件夹,请运行以下命令:

# pacman -Sc

上面的命令将删除所有从缓存文件夹本地安装的包。

要从缓存中完全删除所有包(无论是否安装或者未安装或者未安装):

# pacman -Scc

警告:无法恢复清除缓存。
所以,在清除缓存之前非常小心。