#1 楼
列出通过任何方法(apt-get
,软件中心等)安装的最近安装的软件包的命令:grep " install " /var/log/dpkg.log
示例输出:
2010-12-08 15:48:14 install python-testtools <none> 0.9.2-1
2010-12-08 15:48:16 install quickly-widgets <none> 10.09
2010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-17
2010-12-09 12:00:24 install mc <none> 3:4.7.0.6-1
2010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu1
2010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu1
2010-12-09 23:34:52 install dir2ogg <none> 0.11.8-1
2010-12-09 23:34:53 install faad <none> 2.7-4
2010-12-09 23:34:54 install wavpack <none> 4.60.1-1
2010-12-10 11:53:00 install playonlinux <none> 3.8.6
您可以运行此命令以仅列出最近安装的软件包名称,
awk '~/^install$/ {print ;}' /var/log/dpkg.log
命令以列出
apt-get
的历史记录(注意:这里没有列出已安装的依赖项,它只是列出了以前运行的apt-get
命令):grep " install " /var/log/apt/history.log
示例输出:
Commandline: apt-get install libindicate-doc
Commandline: apt-get install googlecl
Commandline: apt-get --reinstall install ttf-mscorefonts-installer
Commandline: apt-get install valac libvala-0.10-dev
Commandline: apt-get install libgtksourceview-dev
Commandline: apt-get install python-sphinx
Commandline: apt-get install python-epydoc
Commandline: apt-get install quickly-widgets
Commandline: apt-get install libreoffice3* libobasis3.3*
Commandline: apt-get install mc
评论
突触的问题在于它不会显示您对aptitude,apt-get和dpkg所做的操作,因此,为此选项+1
– hhlp
2010-12-12 14:36
此命令将不显示更新。使用软件中心查看所有内容。
– HDave
2012年12月7日在18:19
保存类似cat /var/log/apt/history.log这样的文本文件可能更好。 grep“ \ install \”> install.log
–CrandellWS
13-10-16在2:08
grep“ install” /var/log/dpkg.log就足够了。无需使用猫。另请参阅。
–augustar
2014-09-10 22:54
请注意,这似乎只能找到新安装的软件包。安装了新版本的软件包在dpkg.log中显示为升级。
–安德烈·霍尔兹纳(Andre Holzner)
2014-09-25 18:55
#2 楼
Ubuntu的软件中心显示所有已安装/升级/删除的软件包的全部历史记录。只需单击左侧列表底部的“历史记录”即可。评论
现在,此历史记录按钮位于GUI的顶部,可以显示已安装的软件包和更新。这应该是该问题的公认答案,因为它是唯一适用于更新的答案。
– HDave
2012年12月7日在18:19
该问题未指定桌面(GUI)环境,但是接受的答案在GUI和非GUI方案中均有效。
–麦桑福德
16年1月11日在16:32
@HDave绝对不正确,dpkg.log记录更新。
– GKFX
16年7月16日在12:54
在最新版本的软件中心中似乎没有历史记录选项。
–要做
20年7月7日在9:43
#3 楼
还可以查看按安装时间排序的旧软件包:grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log
对于很久以前安装的软件包:
gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "
评论
我在2天前的/var/log/dpkg.log中找到了已安装的软件包,但在/var/log/apt/history.log中未找到。还是不知道为什么...
– Samuel Li
16年2月7日在3:03
#4 楼
以下技巧回答了Aleksandr Dubinsky将其限制为手动安装的程序包的请求:comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
列出了两个已排序文件共有的行。 comm -12
扩展为包含<(command)
输出的文件的名称。command
列出了手动安装的软件包。即。 apt-mark showmanual
来自被接受的答案。一种替代方法,按时间顺序显示更多信息,并访问所有可用日志,是:
zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.log
grep -F "`comm -12 <(apt-mark showmanual | sort) <(cat /tmp/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)`" /tmp/dpkg.log | grep \<none\>
grep " install " /var/log/dpkg.log
将结果限制为新安装。例如,您可以使用grep将搜索限制为三个月grep \<none\>
到第一个管道;非常灵活。评论
这越来越近了。可以改进的方面:1)按时间顺序显示软件包,2)显示更多详细信息,例如安装日期/时间,版本,甚至大小3)显示自操作系统安装以来安装的所有软件包。
–亚历山大·杜宾斯基(Aleksandr Dubinsky)
16 Jul 17 '17:26
惊人!您是否介意我整理您的答案以使每个命令的更多解释更加简洁?
–亚历山大·杜宾斯基(Aleksandr Dubinsky)
16年7月18日在14:55
@AleksandrDubinsky感谢您的编辑;我已经更正了说明,使其与您所做的更改匹配。
– GKFX
16年7月19日在13:31
您是否介意消除“以下提示回答Aleksandr Dubinsky的请求”的杂音,即第一个无用的命令,加上好标题,将main命令放在顶部,添加示例输出,并尝试描述所有命令参与?
–亚历山大·杜宾斯基(Aleksandr Dubinsky)
16年7月19日在16:54
最后一个命令中有一个错误,因为grep -F找到部分匹配项。例如,如果安装了python3,它还将匹配所有python3库(python3-click-package),包括不再安装的库。而且,grep -Fw不能帮助,因为-是单词边界。
–亚历山大·杜宾斯基(Aleksandr Dubinsky)
16-10-21在10:59
#5 楼
全部一行;供命令使用只选择并打印最近安装的软件包名称,全部都在一行上。
为此,将投票最多的答案更改为:
cat /var/log/dpkg.log |awk '/ install / {printf "%s ",}'
这会导致一行包名称。
这样的行可以很容易地添加到
sudo apt-get purge
命令中。 libgnome-media-profiles-3.0-0 gstreamer0.10-gconf gnome-media gnome-menus librest-0.7-0 libgoa-1.0-common libgoa-1.0-0 libwacom-common libwacom2 ubuntu-docs apg libgnome-control-center1 libgnomekbd-common libgnomekbd7 gnome-control-center-data gnome-icon-theme-symbolic gnome-settings-daemon ubuntu-system-service gnome-control-center gnome-online-accounts gnome-session-bin indicator-power mousetweaks
在另一个列表下面列出软件包
由于受欢迎的需求,以下是略微修改的版本,用于在另一个列表下面列出软件包:
cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",}'
评论
不要解析cat命令的输出。而这个awk'$ 3〜/ ^ install $ / {print $ 4;}'/var/log/dpkg.log呢?
– Avinash Raj
2014年5月26日在1:50
@AvinashRaj你的awk命令在另一个下面打印软件包;一次接一个地雷。这就是为什么输出示例有时会有用的原因。
– Serge Stroobandt
2014年5月26日在2:01
#6 楼
有一个名为wajig的软件包请在命令行中检出它,这是我现在安装的第一件事。像aptitude一样,除了它的工作方式与您期望命令分派器正常工作一样。真的,这不像能力。下面的命令只是一小部分。wajig help
Common JIG commands:
update Update the list of downloadable packages
new List packages that became available since last update
newupgrades List packages newly available for upgrading
install Install (or upgrade) one or more packages or .deb files
remove Remove one or more packages (see also purge)
toupgrade List packages with newer versions available for upgrading
upgrade Upgrade all of the installed packages or just those listed
listfiles List the files that are supplied by the named package
listnames List all known packages or those containing supplied string
whatis For each package named obtain a one line description
whichpkg Find the package that supplies the given command or file
Run 'wajig -v commands' for a complete list of commands.
评论
我不确定wajig如何帮助列出最新软件包。在粗略浏览命令后,我看不到该命令。你知道命令是什么吗?
– Ehtesh Choudhury
2014年8月30日23:48
#7 楼
除了DoR的答案外,对于那些喜欢GUI的用户,Synaptic中还有一个File-> History菜单项。评论
正如rafalcieslak所指出的,该功能在Software Center中也可用。
– Belacqua
2011年2月2日,下午22:00
Synaptic历史记录仅显示通过Synaptic安装的内容……完全没有用。
– HDave
2012年12月7日在18:17
#8 楼
这是一些列出dpkg安装文件的shell。 (应包括所有apt / aptitude /软件中心/已安装Synaptic软件包)。grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\ -f2
这不包括安装时间/日期信息。但是在确定从os install到最新安装的软件包中的任何差异时可能有用。
#9 楼
在Software Center或Synaptic中查看安装历史记录的问题在于,很难将内容复制/粘贴到电子邮件中(例如,与技术支持联系时!)。另一种方法是以root用户身份查看/var/log/apt
中日志文件的内容。评论
为了澄清起见,只需查看/ var / log / apt中的内容,您无需是root用户,也无需具有任何管理员权限。
– Samuel Li
16-2-7的3:01
评论
serverfault.com/questions/175504/…现在,如果只有人告诉我如何列出尚未删除的手动安装的软件包。 igh,Linux。
@AleksandrDubinsky apt-mark showmanual |少不做吗?
@GKFX我的意思是在最近安装的软件包中。
@AleksandrDubinsky您将不得不使用comm -12 a b以及apt-mark showmanual的排序副本,以及b选自以下答案之一的排序列表。