我在电脑上安装了一个普通的Ubuntu10.10,并通过apt-get安装了一些软件。上周,我设法打破了一切,从零开始,我需要重新安装我的软件。是否有办法用我手动安装的所有软件包创建列表?
这样它就会给我一个像texlive, ...
这样的列表,而不是texlive, texlive-dep1, textlive-dep2, ...
和所有的标准包删除?
如果我能找到我删除的常规安装程序,那就太棒了!
更新2015-05-23:我现在使用Ansible作为我的系统上的配置管理。在这里,我指定要安装的软件包。这为目标服务,在一个新的系统上安装所有的程序,甚至更好。因此,这个问题可能是进入一些轻配置管理。
发布于 2011-03-25 17:11:13
有了这个建议,我假设您的旧安装仍将启动!
若要在另一台计算机上复制一组包:
在系统A上,运行:
dpkg --get-selections | grep -v deinstall > my-selections
将my-selections
文件移到系统B。
在系统B上,运行:
dpkg --set-selections < my-selections
然后:
sudo apt-get dselect-upgrade
注意:如果您已经安装了来自非标准存储库和/或PPAs的包,那么在运行升级之前,您还需要将/etc/apt/sources.list
和/etc/apt/sources.list.d/
的内容从System复制到System。
您也可以使用dpkg
查看已删除的内容(注意:这还包括手动安装和删除的包):
dpkg --get-selections | grep deinstall
您可以在终端中看到您的结果,或者,当然,可以重定向到一个文件。
发布于 2013-10-17 21:21:38
如果您的apt日志在/var/log/apt中,类似的内容应该可以工作:
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install"
或者,如果您想摆脱输出中的一些重复的垃圾:
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" \
| cut -f4- -d" " | sort | uniq
发布于 2012-12-06 18:55:30
sudo apt-get install debfoster
sudo debfoster
这将检查所有已安装的包,并找出哪些包保存了其他软件包:
texlive-full is keeping the following 161 packages installed:
cm-super cm-super-minimal context doc-base dvipng feynmf
fonts-gfs-artemisia fonts-gfs-baskerville fonts-gfs-bodoni-classic
...
Keep texlive-full? [Ynpsiuqx?], [H]elp:
当你对每个问题回答"y“时(只需按Enter键快速移动),debfoster将收集包裹列表,并将它们逐行写入文件。默认情况下,这是在/var/lib/debfoster/keepers
。看起来是这样的:
gnome-do
texlive-full
...
我通过/etc/debfoster.conf
配置debfoster,将这个列表放在/etc/debfoster-keepers
,并使用蚀刻员跟踪该文件,以保存历史记录和备份。回答这里展示了如何从以换行符分隔的文本文件中安装包列表:
sudo apt-mark manual $(cat debfoster-keepers)
注意这里的一个限制,您清除的包前面有一个“-”。所以你想在调用apt标记之前删除这些行。
尽管德福斯特网站说debfoster是不赞成倾向的,但我更喜欢debfoster的快速和简单的配置。它将您置于包数据库的中间,并使您可以清理东西,从而使自动和手动包更加明显。
在删除提示符处键入"h“以解释您的选项。类型"?“查看包的描述。怎么-到这里来可能是有用的。
https://askubuntu.com/questions/32007
复制相似问题