• LTTng CenOS 源码安装整理(安装步骤以及报错解决方法)


         1. LTTng 介绍:

    LTTng: (Linux Trace Toolkit Next Generation),它是用于跟踪 Linux 内核、应用程序以及库的系统软件包.LTTng 主要由内核模块和动态链接库(用于应用程序和动态链接库的跟踪)组成。根据这个介绍我们大概可以知道需要安装LTTng模块、支持内核模块以及支持用户应用程序(C/C++、JAVA、Python, etc.)模块。第一次安装的时候按照官方手册安装了一遍,发现并不能用,中间遇到了很多坑,关于LTTng的教程也很少,在这里记录一下。(保证能使用的最简单方法:yum 一下

          2. 相关依赖项安装:

    按照官方文档手册,需要安装4个必要依赖(libuuid;popt;Userspace RCU【需要注意,留着一说;libxml2)和一个可选依赖(numactl)。

    除了Userspace RCU其他的可以直接 yum 安装,这里重点介绍一下RCU:

    创建Userspace RCU库的最初动机:LTTng用户空间跟踪端口最初需要用户空间RCU库。liburcu是一个LGPLv2.1用户空间RCU (read-copy-update)库。这个数据同步库提供了读端访问,它随核的数量线性扩展。liburcu-cds提供了基于RCU和无锁算法的高效数据结构。这些结构包括哈希表、队列、堆栈和双链表。因此,用户空间跟踪实现是liburcu的动机和第一个用户。所以RCU相当于LTTng的一个库。

    Userspace RCU下载:https://lttng.org/files/urcu/?O=D

    当时第一次尝试了yum安装rcu,发现报错

    1. 报错
    2. configure: error: Package requirements (liburcu >= 0.12) were not met: No package 'liburcu' found
    3. 安装
    4. yum install -y userspace-rcu-devel
    5. 但是版本不够
    6. yum remove userspace-rcu-devel

    于是去官网下载源文件,进行编译安装,这里解压部分就不做赘述

    1. 配置环境变量
    2. [root@localhost lttng-ust-2.13.5]# vim ~/.bashrc
    3. export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
    4. [root@localhost lttng-ust-2.13.5]# source ~/.bashrc
    5. 再次报错
    6. checking for liburcu >= 0.12... yes
    7. checking for numa_available in -lnuma... no
    8. configure: error: libnuma is not available. Please either install it (e.g. libnuma-dev) or use
    9. LDFLAGS=-Ldir to specify the right location, or use --disable-numa configure
    10. argument to disable NUMA support.
    11. 但是已经装了 numactl
    12. [root@localhost lttng-ust-2.13.5]# rpm -qa| grep numa
    13. numactl-2.0.12-5.el7.x86_64
    14. numad-0.5-18.20150602git.el7.x86_64
    15. numactl-libs-2.0.12-5.el7.x86_64
    16. 链接一下
    17. ln -s /usr/lib64/libnuma.so.1 /usr/lib64/libnuma.so
    18. ok不报错

            3.LTTng-modules 2.13安装:

    按照官方文档(直接安装在自己定义的文件夹下面,不需要创建temp文件夹):

    1. wget https://lttng.org/files/lttng-modules/lttng-modules-latest-2.13.tar.bz2 &&
    2. tar -xf lttng-modules-latest-2.13.tar.bz2 &&
    3. cd lttng-modules-2.13.* &&
    4. make &&
    5. sudo make modules_install &&
    6. sudo depmod -a

    make时遇到报错:

    1. File ./arch/x86/kvm/lapic.h not found. Probe "kvm" x86-specific is disabled.
    2. Use full kernel source tree to enable it.
    3. 尝试下面
    4. [root@localhost lttng-modules-2.13.7]# dnf install kernel-devel
    5. Extra Packages for Enterprise Linux 7 - x86_64
    6. Can't read private key
    7. DEPMOD 3.10.0-1160.59.1.el7.x86_64
    8. cd lttng-modules-2.13.* &&
    9. make &&
    10. sudo make modules_install &&
    11. sudo depmod -a
    12. depmod -a

    Can't read private key 未解决,感觉不影响使用。

            4.LTTng-UST 2.13安装:

    按照官方文档

    1. wget https://lttng.org/files/lttng-ust/lttng-ust-latest-2.13.tar.bz2 &&
    2. tar -xf lttng-ust-latest-2.13.tar.bz2 &&
    3. cd lttng-ust-2.13.* &&
    4. ./configure &&
    5. make &&
    6. sudo make install &&
    7. sudo ldconfig

    检查动态链接:

    [root@localhost lttng-ust-2.13.5]# pkg-config --list-all

    进行configure时遇到

    1. counter/shm.c:24:10: fatal error: numa.h: 没有那个文件或目录
    2. 【再装一下】
    3. yum install libnuma-devel -y
    4. yum install numactl-devel -y
    5. 已安装:
    6. numactl-devel.x86_64 0:2.0.12-5.el7
    7. ok,UST部分完成

            5.LTTng-tools2.13安装:

    按照官方文档:

    1. wget https://lttng.org/files/lttng-tools/lttng-tools-latest-2.13.tar.bz2 &&
    2. tar -xf lttng-tools-latest-2.13.tar.bz2 &&
    3. cd lttng-tools-2.13.* &&
    4. ./configure &&
    5. make &&
    6. sudo make install &&
    7. sudo ldconfig

    成功后在服务器测试

    1. [root@localhost lttng-tools-2.13.8]# lttng version
    2. lttng version 2.13.8 - Nordicité
    3. The product of a collaboration between Champ Libre and Boréale, this farmhouse IPA is brewed with Kveik yeast and Québec-grown barley, oats and juniper branches. The result is a remarkable fruity hazy golden IPA that offers a balanced touch of resinous and woodsy bitterness.
    4. Web site: https://lttng.org
    5. lttng is free software and under the GPL license and part LGPL

    至此,成功!

    总结

    将自己安装LTTng三个模块和其依赖的过程、以及过程中遇到了哪些报错进行整理。遇到问题的小伙伴们可以一起讨论分享自己的方法。本人第一次接触LTTng和内核开发,还处于小菜鸡一枚。

    大佬们有解决private key那个报错的也可以告诉我hhh。

    再次特别感谢tacks321同学帮我解决了很多问题,v他50(没有

  • 相关阅读:
    腾讯云centos7.6安装jdk
    【大数据】Kafka 实战教程(二)
    计算机网络的OSI七层模型
    【猿创征文】Vue3 企业级优雅实战 - 组件库框架 - 7 组件库文档的开发和构建
    C++string的模拟实现
    6 Flink同步
    stm32f4xx-WWDG窗口看门狗
    单应用多语言切换(语言国际化)
    循环单链表的头插及尾插实现
    Ae 效果:CC Bender
  • 原文地址:https://blog.csdn.net/Novel_Youn_Dong/article/details/127732010