是否可以获取最近通过apt-get安装的软件包的列表?
apt-mark showmanual | less
不这样做吗?
comm -12 a b
具有a
的排序副本apt-mark showmanual
,并b
从下面的答案之一排序列表。
是否可以获取最近通过apt-get安装的软件包的列表?
apt-mark showmanual | less
不这样做吗?
comm -12 a b
具有a
的排序副本apt-mark showmanual
,并b
从下面的答案之一排序列表。
Answers:
列出通过任何方法(apt-get
,Software Center等)安装的最近安装的软件包的命令:
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 '$3~/^install$/ {print $4;}' /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
cat /var/log/apt/history.log | grep "\ install\ " > install.log
upgrade
在dpkg.log
Ubuntu的软件中心显示所有已安装/升级/删除的软件包的全部历史记录。只需单击左侧列表底部的“历史记录”。
dpkg.log
将记录更新。
以下技巧可解决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
列出手动安装的软件包;即。那些绝对不能自动删除的文件。grep " install " /var/log/dpkg.log
从接受的答案中提取。一种替代方案,按时间顺序显示更多信息并访问所有可用日志,是:
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 \<none\>
将结果限制为新安装。例如,可以通过添加grep 2016-0[567]
到第一个管道来使用grep将搜索限制为三个月。它非常灵活。
grep -F
找到部分匹配项。例如,如果python3
已安装,它将与所有python3库(python3-click-package
)匹配,包括不再安装的库。而且,grep -Fw
因为-
是单词边界,所以没有帮助。
选择并仅打印最近安装的软件包名称,全部都在一行上。
为此,将投票最多的答案更改为:
cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'
这将导致一行包名称。这样的行可以轻松地添加到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",$4}'
cat
命令的输出。那awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log
呢?
awk
命令在另一个下面打印软件包;一次接一个地雷。这就是为什么输出示例有时会有用的原因。
有一个名为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
列出最新软件包有什么帮助。在粗略浏览命令后,我看不到该命令。你知道命令是什么吗?
除了DoR的答案外,对于喜欢GUI的用户,Synaptic中还有一个File-> History菜单项。
这是一些列出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到最新安装的软件包中的任何差异时可能很有用。