如何运行命令来获取软件包列表?

如何运行命令来获取软件包列表?

我尝试在 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

相关内容