首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian:获取已安装文件的包名

Debian:获取已安装文件的包名
EN

Unix & Linux用户
提问于 2014-06-17 11:06:19
回答 4查看 1.2K关注 0票数 3

我通过SSH连接到运行Linux内核3.11.1的PC:

代码语言:javascript
复制
root@alix:~# uname -r
3.11.1

如何找到分别安装了这个特定文件或内核版本的包?

我试过了

代码语言:javascript
复制
root@alix:/boot# dpkg -S vmlinuz-3.11.1 
dpkg-query: no path found matching pattern *vmlinuz-3.11.1*

在dpkg -S中可以找到其他已安装的内核版本:

代码语言:javascript
复制
root@alix:/boot# dpkg -S vmlinuz-3.2.23
linux-image-3.2.23-ath5kmod: /boot/vmlinuz-3.2.23-ath5kmod

我的目的是:为3.11.1版安装相应的Linux头,以便为其编译内核模块。apt-缓存搜索linux头列出了15个不同的头版本,但3.11.1中没有这个版本。

非常感谢。

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2014-06-17 11:08:22

您可以用dpkg -l列出每个已安装的包,并通过grep筛选内核包的结果。

代码语言:javascript
复制
dpkg -l | grep 'linux-image'
dpkg -l | grep 'linux-image' | grep '3.11'

要查找正在运行的内核的内核标题包,请执行以下操作:

代码语言:javascript
复制
apt-cache search linux-headers-`uname -r`
票数 3
EN

Unix & Linux用户

发布于 2014-06-18 06:55:07

我最初的问题是,当前安装的Linux内核(3.11.1)没有合适的内核头可用。

最后,我分四个步骤解决了这个问题:

  1. 移除通过apt-get安装的内核。
  2. 移除自定义内核:
    • /boot/vmlinuz*内核-版本*
    • /boot/initrd*内核-版本*
    • /boot/System-map*内核-版本*
    • /boot/config-内核-版本
    • /lib/模块/内核-版本/
    • 有关详细说明,请参见这里

  3. 已安装的内核和相应的头,由包管理器apt-get (它的3.2.04-486版本)默认提供。
  4. 通过更新- grub更新grub。

现在,我可以编译和使用所需的Linux内核模块。谢谢克里克给我指明了正确的方向。:)

票数 0
EN

Unix & Linux用户

发布于 2018-08-26 10:36:52

使用来自dlocate(1)包的达夫命令:

代码语言:javascript
复制
$ dlocate /boot/vmlinuz-*
linux-image-4.9.0-6-amd64: /boot/vmlinuz-4.9.0-6-amd64
linux-image-4.9.0-7-amd64: /boot/vmlinuz-4.9.0-7-amd64

dlocate以文件名作为参数,并返回拥有/提供给定文件的包的名称。

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

https://unix.stackexchange.com/questions/137590

复制
相关文章

相似问题

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