我尝试在 Debian 测试中安装 Gnome 3,如下所示这个解释。然而,这不起作用,让我没有任何图形用户界面。
目前,我尝试修复该问题,并意识到有一长串标记为手动安装的软件包。我存储了一个(以换行符分隔的)软件包列表,在我看来,这些软件包应该标记为自动安装(几乎所有软件包)。
现在我想竞选apt-mark auto
这个名单。
我怎么做?
PS:如果有人告诉我这不是一个好主意(如果不是),我也将不胜感激。
答案1
您可以使用 xargs:
cat /path/to/file | xargs apt-mark auto
如果文本文件中的每一行只有一个包名称,则此方法应该有效/path/to/file
。
另一个选择是使用 for 循环:
for pkg in `cat /path/to/file`; do apt-mark auto $pkg; done
如果您遇到类似的问题,即无法使用参数列表调用该命令,但必须为每个参数调用一次,则第二种方法可能会很有用。但就你而言,它当然不是那么优雅......:)
顺便说一句,我假设你正在使用 bash。
笔记:在我的系统上apt-mark --help
说:
Usage: apt-mark [options] {markauto|unmarkauto} packages...
并且:
apt-mark is deprecated, use apt-get markauto/unmarkauto.
答案2
听起来您想apt-mark auto
一次将文件列表转储到一个文件中。这个伪代码应该可以帮助您开始:
while read pkgname; do apt-mark auto $pkgname; done <list_of_packages
答案3
运行以下脚本python scriptname.py list-of-packages.txt
作为根用户:
import subprocess
import sys
filename = sys.argv[1]
with open(filename) as f:
packages = f.read()
packages = packages.split()
packages = " ".join(packages)
cmd = "apt-mark auto " + packages
subprocess.call(cmd, shell=True)
我希望这不会成为问题,因为拥有 GNOME 意味着您已经安装了 Python。