apt-get找不到建议的软件包(性能工具)


9

我在Ubuntu 13.10 x86_64上使用性能计数器(https://perf.wiki.kernel.org/index.php/Main_Page)。如果输入,perf我得到:

perf not found for kernel 3.11.0-031100
You may need to install linux-tools-3.11.0-031100-generic

但是apt-get install ...找不到

E: Unable to locate package linux-tools-3.11.0-031100-generic

uname -r返回3.11.0-031100-generic,即内核名称略有不同(Ubuntu的默认值为3.11.0-13-generic)

默认情况下,如何安装与内核匹配的正确二进制文件(和/或为此必须添加哪些存储库)?

(我知道我可以通过从/ tools / perf /中的内核源代码进行编译来解决此问题;这可以工作,但理想情况下,我希望通过apt自动完成此工作。)

Answers:


3

您需要同时linux-tools将内核和内核安装在同一版本中,否则它将无法正常工作:

sudo apt-get install linux-tools linux-generic
sudo reboot

如果您使用的是主线内核,则必须针对主线源编译perf,否则它将不起作用


感谢您的解释。是的,我认为此程序包非常挑剔(版本锁定左右)。这就是为什么我通常退回到编译它的原因。但是,该问题的目的是避免编译,并已将apt配置为(以某种方式)自动选择匹配的二进制文件。有没有简单的方法可以做到这一点?
坐在海湾地区

@SittingAtTheBay apt仅更新二进制文件并且在存储库中,如果没有存储库(换句话说,如果您自己编译),apt将无法为您做任何事情。如果您从源头开始构建,则需要一直从源头开始构建。
Braiam

2

我遇到了同样的问题。每当我执行perf命令时,我都会得到:

$ perf
perf_2.6.38-1208 not found
You may need to install linux-tools-2.6.38-1208

但实际上perf是通过安装linux-tools软件包安装的,但它的名称不同perf_2.6.38-16

因此,我可以将perf与perf_2.6.38-16command 结合使用perf

您可以perf_2.6.38-16使用name 创建别名perf

希望有人遇到同样的问题可能会有用。


0

打开您的终端并输入

sudo apt-get install linux-lowlatency-tools-3.11.0-11

然后再次检查。

如果无法找到您,请同时安装这些软件包,然后重试

sudo apt-get install linux-tools-common linux-base 

然后再次检查。


没有帮助。我已经安装了您提到的所有三个软件包(刚刚再次检查了)
坐在海湾

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.