我一直在运行这些命令:
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
也可以看看: