perf 版本与我的内核版本不匹配

Suk*_*ani 5 linux debian

我目前正在研究 Raspberry pi zero。当我写:

perf --version
Run Code Online (Sandbox Code Playgroud)

/usr/bin/perf: line 13: exec: perf_4.14: not found E: linux-perf-4.14 未安装。

当我做:

sudo apt-get install linux-perf
Run Code Online (Sandbox Code Playgroud)

然后:

linux-perf 已经是最新版本了(4.9+80+deb9u4+rpi1)

0 升级,0 新安装,0 删除,216 未升级。

sudo apt-get install perf_4.14
Run Code Online (Sandbox Code Playgroud)

E: 无法定位包 perf_4.14

E: 无法通过 glob 找到任何包

'perf_4.14' E:通过正则表达式'perf_4.14'找不到任何包

sudo apt-get install linux-tools-common linux-base
Run Code Online (Sandbox Code Playgroud)

阅读包裹清单...完成

构建依赖树

读取状态信息...完成

E: 无法定位软件包 linux-tools-common

sudo apt-get install linux-tools-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

阅读包裹清单...完成

构建依赖树

读取状态信息...完成

E: 无法定位软件包 linux-tools-4.14.79

E: 无法通过 glob 'linux-tools-4.14.79' 找到任何包

E: 无法通过正则表达式“linux-tools-4.14.79”找到任何包

请帮助我!

谢谢

小智 12

我在k8s pod环境下也遇到了同样的问题。

在 Debian GNU/Linux 10 中安装 perf:

sudo apt install linux-perf

尝试使用perf,但是报错:

:~/perf-tools$ sudo perf -h
/usr/bin/perf: line 13: exec: perf_5.4: not found
E: linux-perf-5.4 is not installed.
Run Code Online (Sandbox Code Playgroud)

经过研究,我发现/usr/bin/perf用于uname -r获取主机的linux内核版本而不是容器的版本。

所以我通过重命名来解决它。

sudo cp /usr/bin/perf_4.19 /usr/bin/perf_5.4