Я пытаюсь установить perf на Ubuntu 18.04. Тем не менее, я столкнулся с libc
проблемой зависимости:
$ perf
WARNING: perf not found for kernel 5.0.0-21
You may need to install the following packages for this specific kernel:
linux-tools-5.0.0-21-generic
linux-cloud-tools-5.0.0-21-generic
$ sudo apt install linux-cloud-tools-5.0.0-21-generic
The following packages have unmet dependencies:
linux-tools-5.0.0-21-generic : Depends: linux-tools-5.0.0-21 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt install linux-cloud-tools-5.0.0-21
The following packages have unmet dependencies:
linux-tools-5.0.0-21 : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
$ sudo apt install libc6
libc6 is already the newest version (2.27-3ubuntu1).
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
Кто-нибудь еще сталкивался с этим, и есть ли способ обойти это?
В рекомендации @DougSmithies я сделал исходную сборку perf
. Это было довольно легко, но не тривиально, таким образом, вот инструкции.
1) Клонируйте ядро Linux:
$ git clone https://github.com/torvalds/linux.git
2) Найдите свое ядро через uname -r
, и контроль соответствующее ответвление ядра через поиск git tag
s. Таким образом для меня:
linux$ git checkout v5.0
3) Установите несколько зависимостей:
linux$ sudo apt install bison flex libelf-dev systemtap-sdt-dev libssl-dev libslang2-dev liblzma-dev libdw-dev libunwind-dev libgtk2.0-dev binutils-dev libbabeltrace-dev libiberty-dev libperl-dev libaudit-dev
tools/perf/Makefile
объяснит цель каждой зависимости.
3) Изменение в perf
каталог, и выполненный:
linux/tools/perf$ make
linux/tools/perf$ make install
4) Редактирование /proc/sys/kernel/perf_event_paranoid
(и/или?) /etc/sysctl.conf
так, чтобы единственное значение там было -1
.
5) Получите корневую оболочку и
$ sudo bash
# echo 0 > /proc/sys/kernel/kptr_restrict
Теперь я имею perf
!
Кажется, что Вы бионически предложили в своем sources.list. Раз так
sudo apt install -t bionic-proposed linux-tools-generic-hwe-18.04-edge linux-cloud-tools-generic-hwe-18.04-edge
Это может только работать, если Вы бионически предложили, интегрируется.
sudo apt --dry-run install -t bionic-proposed linux-tools-generic-hwe-18.04-edge linux-cloud-tools-generic-hwe-18.04-edge
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
linux-cloud-tools-5.0.0-21-generic linux-cloud-tools-common linux-hwe-cloud-tools-5.0.0-21 linux-hwe-tools-5.0.0-21
linux-tools-5.0.0-21-generic
The following packages will be REMOVED:
libllvm7*
The following NEW packages will be installed:
linux-cloud-tools-5.0.0-21-generic linux-cloud-tools-common linux-cloud-tools-generic-hwe-18.04-edge
linux-hwe-cloud-tools-5.0.0-21 linux-hwe-tools-5.0.0-21 linux-tools-5.0.0-21-generic linux-tools-generic-hwe-18.04-edge
надрез