apt-get does not find suggested package (perf tool)

I am using performance counters (https://perf.wiki.kernel.org/index.php/Main_Page) on Ubuntu 13.10 x86_64. If I type perf I get:

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

But apt-get install ... does not find it

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

uname -r returns 3.11.0-031100-generic, i.e., a slightly different kernel name (Ubuntu default is 3.11.0-13-generic)

How can I by default install the correct binaries matching the kernel (and/or what repositories do I have to add for this)?

(I know I can work around this by compiling it from the kernel sources in /tools/perf/; this works, but ideally I want to have it done automatically via apt.)


Solution 1:

You need to have both linux-tools and the kernel in the same version or it won't work:

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

If you are using mainline kernels you must compile perf against the mainline sources, otherwise it will not work.

Solution 2:

I was having the same problem. Whenever I fire perf command I got :

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

But actually perf was installed by installing linux-tools package but it was with different name perf_2.6.38-16.

So, I am able to use perf with perf_2.6.38-16 command instead of perf.

You can create alias for perf_2.6.38-16 with name perf.

Hope someone with same problem may find it useful.