“选择以前取消选择的包”是什么意思?

Mat*_*hew 13 package-management aptitude apt dpkg

每当我使用apt-get或从命令行安装软件时aptitude,我都会看到如下消息:

Selecting previously deselected package foobar-cil-dev.
Run Code Online (Sandbox Code Playgroud)

我理解“下载”和“设置”,但“选择”是什么意思?包“以前取消选择”是什么意思?

lov*_*nux 18

Ubuntu 安装了一组默认的包,包管理器会跟踪这些包。如果删除默认安装的软件包,它会被标记为“已取消选择”。这意味着它以前安装过,但已被删除。事实上,您安装然后删除的任何包都会被标记为“取消选择”。

例如,这对于复制您在另一台机器上或全新安装后拥有的相同软件包很有用。您可以使用包管理器在您的系统上生成“已选择”和“已取消选择”包的列表,然后在另一台机器上加载此列表,这将使包管理器安装所有“已选择”并卸载标记为“取消选择”。

要在另一台机器上复制您的软件包选择(或在重新安装时恢复它),您可以运行以下命令:

dpkg --get-selections > ~/my-packages
Run Code Online (Sandbox Code Playgroud)

然后将文件“my-packages”移动到另一台机器,然后运行:

sudo dpkg --set-selections < my-packages && sudo apt-get dselect-upgrade
Run Code Online (Sandbox Code Playgroud)

当您运行上面的命令时,所有标记为“已选择”的软件包将被批量安装,所有标记为“已取消选择”的软件包(如果存在)将被删除。这是一个非常方便的功能。