编写通过apt-get to File手动调用安装的软件包列表
我正在尝试从头开始安装新版本的Ubuntu,但我想要一个我手动安装的软件包列表(而不是作为依赖项安装或与系统一起安装)。
通过查看我的Installed (manual)
软件包,然后只查看Ubuntu 不支持的软件包(即所有那些没有Ubuntu Unity符号的软件包),我可以在Synaptic上获得合理的近似值。 但是,我似乎无法让Synaptic导出这些包的列表。
因此我的问题是,是否可以生成通过apt-get install
命令手动安装的软件包列表?
以下不起作用:
- 使用
apt-mark showmanual
。 它产生所有被视为必需的包以及手动安装的包。 我只想要我手动安装的软件包。 -
aptitude search '!~M ~i'
。 有太多的软件包正在显示(我无法手动安装> 1000个软件包)。 - @txwikinger在生成手动安装的包列表和查询单个包时给出的Python脚本。 我安装了一些包(例如
bsdgames
),但是没有显示在该脚本的输出中。 - @Johan在https://serverfault.com/questions/133681/generating-a-list-of-installed-packages-in-ubuntu中给出的bash脚本。 再次显示太多包。
这个问题与Stack Exchange站点和其他地方提出的其他问题类似(例如生成手动安装的包列表和查询单个包 , https://serverfault.com/questions/133681/generating-a- list-of-installed-packages-in-ubuntu ,和http://ubuntuforums.org/showthread.php?t=947865&page=2 )。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727799上的David Kalnischkies提供了一些关于为什么难以确定“手动安装”意味着什么很困难的观点(例如,你运行的程序是否安装了包计为“手动安装”?)。 因此,我特别限制了这个问题(与我列出的其他问题不同)仅限于apt-get install
调用。
编辑: 如何查看手动安装而没有依赖项的软件包列表,这样可以很好地使用apt-get的日志文件来执行此操作。 不幸的是,这并没有跟踪哪些包已被删除。 即使我只是简单地grep 'apt-get purge'
并采取我得到的两个列表的diff
仍然不会解释我已经安装了一个包,卸载它,然后重新安装它的边缘情况。
由于未找到使用apt的答案,我建议进入Synaptic Package Manager ,单击左下方的Status按钮,然后单击左上角的Installed(手动)以查看已安装软件包的列表。
然后,您可以使用File | Save Markings As
从Synaptic输出列表 File | Save Markings As
保存为并将文件保存在可以使用它的位置。
我刚才在这个关于此的页面上发布了这个想法,对不起,如果那是不礼貌的(如果是的话随意删除)但是
- 在http://releases.ubuntu.com/上获取您的Ubuntu版本的“manifest”文件,据我所知,它列出了库存安装中的所有软件包。
- 使用
apt-mark showmanual
生成apt-mark认为已手动安装的所有包的列表。 - 消除该列表与清单之间的重复,将包留在
apt-mark showmanual
的输出中,而不是库存安装的一部分。
可能这是粗略的,并没有处理究竟构成“手动安装”包的细节,但对我来说它看起来是一个非常好的近似。 或者Synaptic解决方案可能是最好的。