如何在 Linux 中使用 dpkg --set-selections 命令

如何在 Linux 中使用 dpkg --set-selections 命令

我一直在运行这些命令:

sudo dpkg --clear-selections
sudo dpkg --set-selections < [Path to packages_list ]>
sudo apt-get autoremove

文件 packages_list 如下所示

acpi-support                    install
acpid                       install
adduser                     install
adium-theme-ubuntu              install
adobereader-enu                 install
aisleriot                   install
akonadi-server                  install
alacarte                    install
alsa-base                   install
alsa-utils                  install
anacron                     install

在使用上面提到的第二个命令时我一直收到这些错误。

dpkg: --set-selections takes no arguments

Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].

有人可以帮帮我吗?

答案1

无论你从哪里复制此内容:

sudo dpkg --set-selections < [Path to packages_list ]>

你把它弄乱了,误解了结果。我之所以能看出来,是因为你<>安排了一对额外的括号,如果你找到的说明中确实有它们,那么它们就是不必要的(而且间距不一致)。

它抱怨说它不接受参数,因为它需要 stdin,你应该<在文件名前使用 stdin 重定向运算符。但>任何地方都不需要。

答案2

dpkg: --set-selections 不带参数

它不使用参数,但它需要标准输入 (stdin)反而。

按照man dpkg

--set-selections使用从 stdin 读取的文件设置软件包选择。此文件的格式应为“软件包状态”,其中状态是 install、hold、deinstall 或 purge 之一。

因此对于多项选择,使用文件:

dpkg: --set-selections < myfile

对于一个包,您可以使用echo,例如

echo "acpid hold" | dpkg: --set-selections

对于多个包,可以使用 with printf(以 分隔的行\n),例如

echo "alsa-base hold\nalsa-utils\n" | dpkg: --set-selections

也可以看看:

相关内容