首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找到手动安装的软件包?

如何找到手动安装的软件包?
EN

Ask Ubuntu用户
提问于 2011-03-25 16:47:20
回答 11查看 35.1K关注 0票数 51

我在电脑上安装了一个普通的Ubuntu10.10,并通过apt-get安装了一些软件。上周,我设法打破了一切,从零开始,我需要重新安装我的软件。是否有办法用我手动安装的所有软件包创建列表?

这样它就会给我一个像texlive, ...这样的列表,而不是texlive, texlive-dep1, textlive-dep2, ...和所有的标准包删除?

如果我能找到我删除的常规安装程序,那就太棒了!

更新2015-05-23:我现在使用Ansible作为我的系统上的配置管理。在这里,我指定要安装的软件包。这为目标服务,在一个新的系统上安装所有的程序,甚至更好。因此,这个问题可能是进入一些轻配置管理。

EN

回答 11

Ask Ubuntu用户

发布于 2011-03-25 17:11:13

有了这个建议,我假设您的旧安装仍将启动!

若要在另一台计算机上复制一组包:

在系统A上,运行:

代码语言:javascript
运行
复制
dpkg --get-selections | grep -v deinstall > my-selections

my-selections文件移到系统B。

在系统B上,运行:

代码语言:javascript
运行
复制
dpkg --set-selections < my-selections

然后:

代码语言:javascript
运行
复制
sudo apt-get dselect-upgrade

注意:如果您已经安装了来自非标准存储库和/或PPAs的包,那么在运行升级之前,您还需要将/etc/apt/sources.list/etc/apt/sources.list.d/的内容从System复制到System。

您也可以使用dpkg查看已删除的内容(注意:这还包括手动安装和删除的包):

代码语言:javascript
运行
复制
dpkg --get-selections | grep deinstall

您可以在终端中看到您的结果,或者,当然,可以重定向到一个文件。

票数 24
EN

Ask Ubuntu用户

发布于 2013-10-17 21:21:38

如果您的apt日志在/var/log/apt中,类似的内容应该可以工作:

代码语言:javascript
运行
复制
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install"

或者,如果您想摆脱输出中的一些重复的垃圾:

代码语言:javascript
运行
复制
gunzip -c /var/log/apt/history.log.*.gz | grep "apt-get install" \
  | cut -f4- -d" " | sort | uniq
票数 12
EN

Ask Ubuntu用户

发布于 2012-12-06 18:55:30

您可以使用适配标记,但我推荐德福斯特

代码语言:javascript
运行
复制
sudo apt-get install debfoster
sudo debfoster

这将检查所有已安装的包,并找出哪些包保存了其他软件包:

代码语言:javascript
运行
复制
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。看起来是这样的:

代码语言:javascript
运行
复制
gnome-do
texlive-full
...

我通过/etc/debfoster.conf配置debfoster,将这个列表放在/etc/debfoster-keepers,并使用蚀刻员跟踪该文件,以保存历史记录和备份。回答这里展示了如何从以换行符分隔的文本文件中安装包列表:

代码语言:javascript
运行
复制
sudo apt-mark manual $(cat debfoster-keepers)

注意这里的一个限制,您清除的包前面有一个“-”。所以你想在调用apt标记之前删除这些行。

尽管德福斯特网站说debfoster是不赞成倾向的,但我更喜欢debfoster的快速和简单的配置。它将您置于包数据库的中间,并使您可以清理东西,从而使自动和手动包更加明显。

在删除提示符处键入"h“以解释您的选项。类型"?“查看包的描述。怎么-到这里来可能是有用的。

票数 6
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/32007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档