前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(转载)ubuntu 安装 dbgsym (debug-info)

(转载)ubuntu 安装 dbgsym (debug-info)

作者头像
cdh
修改2021-07-08 12:09:49
10.8K0
修改2021-07-08 12:09:49
举报
文章被收录于专栏:笔记+

本文转载自:http://www.oolap.com/2015-11-07-ubuntu-install-dbgsym

linux 下执行 systemtap 脚本时需要安装系统内核的 debug-info, debug-info 是 redhat 的叫法, ubuntu 下叫 debug symbols, 简称 dbgsym 。 ubuntu 默认安装时不会安装 dbgsym, 默认仓库上也没有 dbgsym 包。 dbgsym 包存在于独立的仓库上,官方仓库地址为 http://ddebs.ubuntu.com/,包名后缀貌似也从 .deb 变成了 .ddeb

要安装 dbgsym 操作步骤如下:

1. 编辑 /etc/apt/sources.list 文件添加 dbgsym 源

要安装 dbgsym 包可手动添加此源,编辑 /etc/apt/sources.list 文件,在最后面添加如下两行:

代码语言:javascript
复制
deb http://ddebs.ubuntu.com/ precise main
deb http://ddebs.ubuntu.com/ precise-updates main

其中 precise 替换为 ubuntu 发行版名称, 可使用如下命令完成操作

代码语言:javascript
复制
python2 -c 'import sys; print "\n".join(sys.argv[1:])' "deb http://ddebs.ubuntu.com/ $(lsb_release --short --codename)"{,-updates}" main #restricted universe multiverse" | sudo tee -a /etc/apt/sources.list

如果要安装其他软件的 dbgsym,可能还要启用 "main" 之外的其他 component.

2. 添加源公钥 key

首次添加源后执行 sudo apt-get update,可能会在最后看到如下错误消息:

代码语言:javascript
复制
正在读取软件包列表... 完成                                                                                                         
W: GPG 错误:http://ddebs.ubuntu.com precise Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY ECDCAD72428D7C01
W: GPG 错误:http://ddebs.ubuntu.com precise-updates Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY ECDCAD72428D7C01

这是因为源公钥没有添加,可使用如下命令从 ubuntu keyserver 添加该源的公钥.

代码语言:javascript
复制
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01

最后一个参数 ECDCAD72428D7C01 就是上面报错的 PUBKEY,对 http://ddebs.ubuntu.com/ 来说这个值应该是固定的.

3. 更新源信息

添加公钥后,再次执行如下命令更新源信息:

代码语言:javascript
复制
sudo apt-get update

4. 查找和安装 dbgsym 软件包

更新源后即可像安装普通软件包一样查找和安装 dbgsym,查找时可带上 "-dbgsym" 后缀. 如要查找内核相关 dbgsym,可使用如下命令搜索:

代码语言:javascript
复制
sudo aptitude search 'linux-image-.*-dbgsym'

也可带上版本号直接搜索当前内核的 dbgsym:

代码语言:javascript
复制
sudo aptitude search 'linux-image-'$(uname -r)'-dbgsym'

由于 linux 内核版本也经常迭代更新,可能当前内核版本的 dbgsym 已经在仓库上下线,不能找到和安装对应的 dbgsym, 此时建议系统重装一个存在对应 dbgsym 的内核版本. 如果对最新版本内核没有强需求,建议从 dbgsym 列表中选择一个版本较旧但相对稳定未下线的版本.

如我当前找到如下 dbgsym 版本列表:

代码语言:javascript
复制
p   linux-image-3.13.0-30-generic-dbgsym                      - Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP       
p   linux-image-3.13.0-30-generic-dbgsym:i386                 - Linux kernel debug image for version 3.13.0 on 32 bit x86 SMP       
p   linux-image-3.13.0-32-generic-dbgsym                      - Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP       
p   linux-image-3.13.0-32-generic-dbgsym:i386                 - Linux kernel debug image for version 3.13.0 on 32 bit x86 SMP       
p   linux-image-3.13.0-65-generic-dbgsym                      - Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP       
p   linux-image-3.13.0-65-generic-dbgsym:i386                 - Linux kernel debug image for version 3.13.0 on 32 bit x86 SMP       
p   linux-image-3.13.0-66-generic-dbgsym                      - Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP       
p   linux-image-3.13.0-66-generic-dbgsym:i386                 - Linux kernel debug image for version 3.13.0 on 32 bit x86 SMP       
p   linux-image-3.13.0-67-generic-dbgsym                      - Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP       
p   linux-image-3.13.0-67-generic-dbgsym:i386                 - Linux kernel debug image for version 3.13.0 on 32 bit x86 SMP       

则我会选择安装 3.13.0-32-generic 版本, linux-image 和 linux-headers 最好同时安装上, 可使用如下命令同时安装对应内核和 dbgsym:

代码语言:javascript
复制
sudo aptitude install linux-{image,headers}-3.13.0-32-generic linux-image-3.13.0-32-generic-dbgsym

linux-image 建议 (suggests) 安装 linux-headers,但不是推荐 (recommends), 使用 aptitude 安装软件包时默认会安装推荐的软件包, 但是对建议的软件包不会管, 建议的软件包通常有很多是不需要的, 如果需要安装可以手动指定。

由于 dbgsym 官方源在国外, 没找到镜像, 从源下载安装通常会很慢, 也可以把下载好的安装包拷贝过来, 使用 dpkg -i 安装:

代码语言:javascript
复制
sudo dpkg -i linux-image-3.13.0-32-generic-dbgsym_3.13.0-32.57~precise1_amd64.ddeb

或者下载deb包,下载完默认在/var/cache/apt/archives/目录下

apt-get install --download-only linux-image-$(uname -r)-dbgsym

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 编辑 /etc/apt/sources.list 文件添加 dbgsym 源
  • 2. 添加源公钥 key
  • 3. 更新源信息
  • 4. 查找和安装 dbgsym 软件包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档