Nala – APT 包管理器的功能丰富的命令行前端

易于, 代表 ”一个先进的 包装 ool”,是 Debian、Ubuntu 及其衍生产品(如 Elementary OS、Linux Mint 和 Pop!_OS)的默认命令行包管理器。使用 apt,我们可以在基于 DEB 的环境中搜索、安装、更新、升级和删除包系统。有几个 APT 前端存在。两个流行的 APT 前端是 Aptitude 和 Synaptic。今天,我们将讨论另一个 APT 前端工具,称为 “娜拉”.

内容

  1. 什么是娜拉?
  2. 如何安装娜拉
    1. 使用 PPA 安装 Nala
    2. 使用 Pacstall 安装 Nala
    3. 从二进制文件安装 Nala
  3. Nala 命令用法
    1. 查看 Nala 帮助
    2. 更新存储库
    3. 升级包
    4. 安装包
    5. 列出软件包
    6. 搜索包
    7. 显示包裹详情
    8. 并行下载
    9. 获取最快的镜像
    10. 显示交易记录
    11. 删除包
  4. 结论

什么是娜拉?

Nala 是 APT 包管理器的命令行前端。 娜拉使用 python-apt api 与 APT 交互。

Nala 的主要目标是更好地格式化输出,使用颜色显示在安装、删除和升级过程中包会发生什么。

Nala 的功能与 APT 相同,但 Nala 包含一些附加功能。 Nala 的开发者从 DNF 包管理器中获得灵感,并在 Nala 中实现了它的一些功能。

Nala 将输出格式化为更易于阅读,即 更漂亮的输出. 此外,Nala 隐藏了您将在 APT 输出中看到的不必要的冗余消息。

娜拉支持 历史功能, 就像 Fedora的 dnf history 特征。 使用 Nala 的历史功能,我们可以看到过去的交易并轻松撤消或重做它们。 当出现问题时,您可以轻松撤消先前的事务和/或回滚到先前的工作版本。

Nala 的另一个显着特点是 并行下载. 据我所知,APT 包管理器还没有这个功能。 我们应该依赖第三方工具,比如 “快速” 加快 Ubuntu 中的软件包下载速度。 幸运的是,Nala 默认启用并行下载功能。 因此,使用 Nala 时,包下载过程会更快一些。

Nala 中包含的另一个有用功能是 获取最快的 APT 镜像. 目前,我们可以使用 Synaptic 或一些第三方工具来 选择最好的 APT 镜像 在 Ubuntu 中。 如果您使用 Nala,则无需依赖任何外部工具。 默认情况下,Nala 将帮助您选择最快的镜像并将它们写入文件。

总之,Nala 具有以下开箱即用的独特功能。

  • 漂亮的输出格式,
  • 历史功能,
  • 并行下载,
  • 获取最快的镜像。

Nala 是一个开源程序 Python. 代码在 GitLab 中免费托管。

如何安装娜拉

我们可以从 PPA 安装 Nala,或者使用 Pacstall 或 apt/dpkg 包管理器。

使用 PPA 安装 Nala

Nala 可以从安装 沃利安疤痕仓库 在 Debian、Ubuntu 及其变体中,例如 Linux Mint、Pop!_OS。

要在 Debian、Ubuntu 及其衍生版本中添加 Volian Scar 存储库,请运行以下命令:

$ echo "deb https://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list

添加 GPG 密钥:

$ wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null

更新来源列表:

$ sudo apt update

并使用以下命令在 Ubuntu 22.04 / Debian Sid 和更新版本中安装 Nala:

$ sudo apt install nala

对于 Debian 11 stable、Ubuntu 21.04 及更早的版本,您需要安装 nala-legacy 包裹

$ sudo apt install nala-legacy

小心: 看起来 Nala 被添加到了 Debian [Testing] 仓库和 Debian Sid 的默认仓库。 我没有 Debian Sid,所以我无法确认。

使用 Pacstall 安装 Nala

Nala 开发人员创建了一个 pacscript 帕克斯托尔.

首先,按照上面链接中的说明安装 Pacstall。

完成后,只需运行以下命令即可安装 Nala。

$ pacstall -I nala-deb

从二进制文件安装 Nala

下载娜拉最新 .deb 文件从 发布 页。

并通过本地安装 apt 或者 dpkg.

$ sudo apt install /path/to/nala_version_arch.deb $ sudo apt install -f

或者

$ sudo dpkg -i /path/to/nala_version_arch.deb
$ sudo apt install -f

Nala 命令用法

如前所述,Nala 的用法与 Apt 几乎相同。 Nala 命令与 apt 变体相同,但输出格式不同。

让我们从显示 Nala 帮助手册开始。

查看 Nala 帮助

要显示 nala 命令帮助部分,请使用 -h 或者 --help 标志如下:

$ nala --help

样本输出:

Usage: nala [OPTIONS] COMMAND [ARGS]...    Each command has its own help page.    For Example: `nala history --help`  Options:   --version             Show program's version number and exit.   --license             Reads the GPLv3 which Nala is licensed under.   --install-completion  Install completion for the current shell.   --show-completion     Show completion for the current shell, to copy it or                         customize the installation.   -h, --help            Show this message and exit.  Commands:   autopurge   Autopurge packages that are no longer needed.   autoremove  Autoremove packages that are no longer needed.   clean       Clear out the local archive of downloaded package files.   fetch       Fetch fast mirrors to speed up downloads.   history     Show transaction history.   install     Install packages.   list        List packages based on package names.   purge       Purge packages.   remove      Remove packages.   search      Search package names and descriptions.   show        Show package details.   update      Update package list.   upgrade     Update package list and upgrade the system.

正如您在上面的输出中看到的那样,Nala 具有在基于 Debian 的系统中进行基本包管理操作的所有基本命令。

每个 Nala 子命令都有自己的帮助部分。 例如,查看帮助部分 update 命令,您可以使用以下命令:

$ nala update -h

更新存储库

要使用 Nala 更新软件存储库,请运行:

$ sudo nala update

样本输出:

$ sudo nala update ╭─ Updating Package List ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │No Change: https://in.archive.ubuntu.com/ubuntu jammy InRelease                                                                                  │ │No Change: https://download.docker.com/linux/ubuntu jammy InRelease                                                                             │ │No Change: https://in.archive.ubuntu.com/ubuntu jammy-updates InRelease                                                                          │ │No Change: https://in.archive.ubuntu.com/ubuntu jammy-backports InRelease                                                                        │ │No Change: https://deb.volian.org/volian scar InRelease                                                                                          │ │Updated:   https://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]                                                                  │ │No Change: https://ppa.launchpadcontent.net/flexiondotorg/quickemu/ubuntu jammy InRelease                                                       │ │No Change: https://ppa.launchpadcontent.net/yannick-mauray/quickgui/ubuntu jammy InRelease                                                      │ │Fetched 110 kB in 6s (2555 B/s)                                                                                                                 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 1 packages can be upgraded. Run 'nala list --upgradable' to see them.
Nala 更新命令

现在,运行实际 apt update 命令并比较两个命令的输出:

$ sudo apt update
Nala 更新与 Apt 更新命令

你得到区别了吗? 这 nala update 命令的输出比 apt update 命令的输出。

Nala 显示一个标题来描述给定命令的实际用途。 正如您在上面的输出中一样,Nala 在顶部显示“更新包列表”。 用户将很容易理解知道给定命令将做什么。

另一个小区别是,如果存储库未更改或更新,Nala 会显示“No change”消息。 它还从输出中消除了以下行。

[...] Reading package lists... Done Building dependency tree... Done Reading state information... Done [...]

Apt 将在所有命令中显示这三行。

升级包

要升级您的 Debian 或 Ubuntu 系统,请运行:

$ sudo nala upgrade

样本输出:

╭─ Updating Package List ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │No Change: https://in.archive.ubuntu.com/ubuntu jammy InRelease                                                                                  │ │Updated:   https://download.docker.com/linux/ubuntu jammy InRelease [48.9 kB]                                                                   │ │No Change: https://in.archive.ubuntu.com/ubuntu jammy-updates InRelease                                                                          │ │No Change: https://in.archive.ubuntu.com/ubuntu jammy-backports InRelease                                                                        │ │Updated:   https://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]                                                                  │ │No Change: https://deb.volian.org/volian scar InRelease                                                                                          │ │No Change: https://ppa.launchpadcontent.net/flexiondotorg/quickemu/ubuntu jammy InRelease                                                       │ │No Change: https://ppa.launchpadcontent.net/yannick-mauray/quickgui/ubuntu jammy InRelease                                                      │ │Fetched 159 kB in 0s (0 B/s)                                                                                                                    │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ==================================================================================================================================================  Upgrading                                                                                                                                         ==================================================================================================================================================   Package:                                        Old Version:                    New Version:                                             Size:     libfreetype6                                    2.11.1+dfsg-1build1             2.11.1+dfsg-1ubuntu0.1                                  389 kB                                                                                                                                                      ==================================================================================================================================================  Summary                                                                                                                                           ==================================================================================================================================================  Upgrade 1 Packages                                                                                                                                                                                                                                                                                          Do you want to continue? [Y/n] y ╭─ Updating Packages ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │Unpacking:  libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1) over (2.11.1+dfsg-1build1)                                                              │ │Setting up: libfreetype6:amd64 (2.11.1+dfsg-1ubuntu0.1)                                                                                         │ │Processing: triggers for libc-bin (2.35-0ubuntu3)                                                                                               │ │╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮│ ││✔ Running dpkg … ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0% • 0:00:00 • 3/3││ │╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Finished Successfully
娜拉升级命令娜拉升级命令

输出是非常具有描述性和不言自明的,对吧? 的确! 您不会在 Apt 命令中看到这些详细信息。

Nala 将为每个操作显示一个描述性标题,例如“更新包列表”、“下载”、“安装包”等。

安装包

例如,使用 Nala 安装软件包 维姆,只需运行:

$ sudo nala install vim

样本输出:

娜拉安装命令娜拉安装命令

在中查看使用情况和可用选项 nala install 命令,只需运行:

$ nala install -h

列出软件包

您可以根据名称列出所有包或特定包 nala list 命令。

要列出所有包,只需运行 nala list 没有任何标志。

$ nala list

您还可以仅列出安装的软件包 -i , --installed 旗帜。

$ nala list -i

如果您只想列出以下软件包怎么办? 明确的 和娜拉一起安装? 这也是可能的。 利用 -N, --nala-installed 旗帜。

$ nala list -N

样本输出:

vim 2:8.2.3995-1ubuntu2 [Ubuntu/jammy main] ├── is installed └── Vi IMproved - enhanced vi editor

要仅查看可升级的软件包,请使用 -u, --upgradable 选项。

$ nala list -u

要显示给定包的所有版本,您可以使用 -a, --all-versions 旗帜。

$ nala list -a

搜索包

您可以使用单词或 REGEX 搜索包名称和描述。 此命令具有与 nala list 命令。 它唯一的附加标志是 -A, --all-arches 显示包的所有架构的标志。

要搜索名称中包含“vim”的软件包,请运行:

$ nala search vim

当您在没有任何选项的情况下运行 nala 搜索时,它将显示包名称和描述。

要仅搜索名称,请使用 -n, --names 旗帜。

$ nala search -n vim

要显示给定包的所有架构,请使用 -A(注意它是大写 A)。

$ nala search -n -A vim

同样,您可以使用 -i 要仅列出已安装的软件包,请使用 -N 要仅使用 Nala 显式列出包,请使用 -u 仅列出可升级的软件包。

您可以从 nala search 帮助部分通过运行以下命令。

$ nala search -h

显示包裹详情

show 命令显示有关给定包的信息,例如名称、版本和依赖项等。

$ nala show vim
娜拉秀命令娜拉秀命令

如您所见, nala show 命令非常相似 apt show 除了突出显示包信息以提高可读性。

并行下载

这是 Nala 的一个有用功能。

目前,Apt 包管理器不支持并行下载。 但是,我们可以使用名为的第三方工具来提高 Apt 下载速度 快速. Apt-fast 应用程序用于 加快 Ubuntu 中软件包的下载速度 及其衍生物。

Nala 支持开箱即用的并行下载。 所以我们不需要任何外部工具。 默认情况下,Nala 将 每个唯一镜像下载 3 个包 在你的 sources.list 文件。

获取最快的镜像

Nala 功能列表中另一个有用的补充是获取最快的 APT 镜像。 这 nala fetch 命令的工作方式非常相似 apt-选择, 聪明的, 网络选择, 和 网络选择-apt CLI 工具。

在我了解 Nala 之前,我使用上述工具 找到最好和最快的 APT 镜像 在我的 Ubuntu 系统中。 幸运的是,Nala 默认已包含此功能。

首先,Nala 将检查您的发行版是 Debian 还是 Ubuntu。 然后,它从各自的主列表中获取所有镜像。 得到主列表后,它会测试延迟并对每个镜像进行评分。

根据延迟和速度,Nala 将列出最快的 16 个镜像。 输入要保留的镜像的索引号(以空格分隔),然后按 ENTER 键

使用 Nala 列出最快的 APT 镜像使用 Nala 列出最快的 APT 镜像

Nala 将显示一条确认消息。 如果您对选定的镜像没问题,请按 Y 确认并按 ENTER。

确认选定的镜像确认选定的镜像

选定的源将被写入 /etc/apt/sources.list.d/nala-sources.list 文件。

通过运行以下命令更新源列表:

$ sudo nala update

如果您不希望 Nala 选择镜像,只需将其删除即可。

$ sudo rm /etc/apt/sources.list.d/nala-sources.list

显示交易记录

这是 Nala 包管理器的旗舰功能之一。 此功能实际上是受 历史 从函数 DNF 包管理器。

使用 nala history 命令,我们可以轻松撤消或重做以前的 APT 事务。

每当您安装、删除或升级软件包时,APT 事务都会存储在 /var/lib/nala/history.json 具有唯一性的文件 ID 数字。

让我们使用命令查看当前历史记录:

$ nala history   ID    Command                 Date and Time              Altered    Requested-By         1     upgrade libfreetype6    2022-07-22 18:14:55 IST          1    ostechnix (1000)     2     install vim             2022-07-22 18:20:11 IST          2    ostechnix (1000)  

如您所见,我们使用 Nala 完成了两次 APT 交易。 这里,1 和 2 是交易 ID。

您可以使用显示有关特定交易的信息 nala history info [ID] 命令。

$ nala history info 2

样本输出:

==================================================================================================================================================  Installed                                                                                                                                         ==================================================================================================================================================   Package:                                        Version:                                                                                 Size:     vim                                             2:8.2.3995-1ubuntu2                                                                     1.7 MB     vim-runtime                                     2:8.2.3995-1ubuntu2                                                                     6.8 MB                                                                                                                                                      ==================================================================================================================================================  Summary                                                                                                                                           ==================================================================================================================================================  Installed 2 Packages                                      
查看 Apt 交易详情查看 Apt 交易详情

现在让我撤消安装 Vim 包。

为此,只需运行:

$ sudo nala history undo 2

这里,2 是“安装 vim”命令的索引。

Nala 历史撤消命令Nala 历史撤消命令

看? 我们只是撤消 Vim 安装。 换句话说,我们只是删除了 Vim 包。

让我们再次运行历史命令:

$ nala history   ID    Command                 Date and Time              Altered    Requested-By         1     upgrade libfreetype6    2022-07-22 18:14:55 IST          1    ostechnix (1000)     2     install vim             2022-07-22 18:20:11 IST          2    ostechnix (1000)     3     history undo 2          2022-07-23 17:12:34 IST          2    ostechnix (1000)  
那拉历史司令部那拉历史司令部

正如您在上面的输出中看到的,我们有一个新条目(即 history undo 2) 在里面 nala history 输出。

让我们再次安装 vim 包。 换句话说,让我们 重做 “安装 vim”命令。

要重做“安装 vim”事务,运行:

$ sudo nala history redo 2
那拉历史重做命令那拉历史重做命令

现在,再次安装了 Vim 包。

如果您不希望历史记录中有任何交易,您可以使用删除它 nala history clear 命令:

$ sudo nala history clear 3

删除包

要删除或清除 Nala 不再需要的已安装包,请运行:

$ sudo nala purge vim

或者,

$ sudo nala remove --purge vim

如果您想自动删除不再需要的任何包,请添加 --autoremove 旗帜。

$ sudo nala purge vim --autoremove

结论

使用 Nala,我们可以获得更漂亮的输出、更快的包下载和历史记录! 如果您只进行基本的包管理操作,例如安装、更新、升级、列出、搜索和删除等,您可以使用 Nala。 对于其他高级包管理操作,请使用 Apt。

Nala 的开发者也计划在 编程语言。 让我们希望它很快就会推出并具有更多功能。

资源:

  • 娜拉 GitLab 存储库

APTApt FrontendCLI命令行命令行DebianLinuxLinux 命令NalaNala Package Manager开源包管理包管理器PythonUbuntu