我刚刚更新了内核,这意味着我目前有两组内核文件;我想使用命令行来删除旧的。
我知道我可以用来apt-show-versions
显示我已经安装的名为的软件包linux*
:
$ apt-show-versions -r linux*
libselinux1/natty uptodate 2.0.96-1ubuntu2
linux-firmware/natty uptodate 1.52
linux-generic/natty uptodate 2.6.38.10.25
linux-headers-2.6.38-10/natty uptodate 2.6.38-10.46
linux-headers-2.6.38-10-generic/natty uptodate 2.6.38-10.46
linux-headers-2.6.38-8/natty uptodate 2.6.38-8.42
linux-headers-2.6.38-8-generic/natty uptodate 2.6.38-8.42
linux-headers-generic/natty uptodate 2.6.38.10.25
linux-image-2.6.38-10-generic/natty uptodate 2.6.38-10.46
linux-image-2.6.38-8-generic/natty uptodate 2.6.38-8.42
linux-image-generic/natty uptodate 2.6.38.10.25
linux-libc-dev/natty uptodate 2.6.38-10.46
linux-sound-base/natty uptodate 1.0.24+dfsg-0ubuntu1
pptp-linux/natty uptodate 1.7.2-6
syslinux/natty uptodate 2:4.02+dfsg-7ubuntu1
syslinux-common/natty uptodate 2:4.02+dfsg-7ubuntu1
util-linux/natty uptodate 2.17.2-9.1ubuntu4
由此我可以看到我有来自2.6.38-8
和的内核文件2.6.38-10
。
是否有一个 apt 命令,我可以在其中指定类似“version=2.6.38-8*”的内容;它会列出所有与该版本号匹配的软件包(无论名称如何)?
我之所以问这个问题,是因为我想检查我是否安装了版本号为 的软件包2.6.38-8*
- 但不是从...开始linux*
。
我不确定现在是否有这样的文件,但我很确定我以前遇到过这个问题,这就是为什么我现在总是先linux*
在 Synaptic 中搜索,然后单独搜索要删除的软件包的版本号,并按已安装排序,然后一次性删除所有软件包。我只是希望能够从命令行执行相同的操作。
答案1
这个怎么样?:
apt-show-versions | grep 2.6.28-8
答案2
还可以使用aptitude
其内置的查询语法执行相当复杂的搜索,例如
$ aptitude search '?version(2\.6\.38)'
看搜索部分有关搜索语法的更多信息,请参阅 Aptitude 手册。