AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 577768
Accepted
Elazar Leibovich
Elazar Leibovich
Asked: 2015-01-26 12:30:08 +0800 CST2015-01-26 12:30:08 +0800 CST 2015-01-26 12:30:08 +0800 CST

我怎样才能使 perf script -g python 工作?

  • 772

安装包后perf,linux-tools-common我仍然无法使用 python/perl 脚本功能。

$ sudo perf script -g python
Python scripting not supported.  Install libpython and rebuild perf to enable it.
For example:
  # apt-get install python-dev (ubuntu)
  # yum install python-devel (Fedora)
  etc.

如何在 Ubuntu 中安装具有脚本支持的 perf 版本?

python
  • 1 1 个回答
  • 2652 Views

1 个回答

  • Voted
  1. Best Answer
    Emmet
    2015-04-08T10:18:40+08:002015-04-08T10:18:40+08:00

    自Raring (13.04) 以来,perf构建时没有启用 Python 脚本“以避免 Python 构建依赖性”。perf这对像我这样使用12.04 LTS 并升级到 14.04 LTS的人来说是一个巨大的冲击。这记录在Ubuntu 内核 git repos的debian-master/changelog文件中。

    简而言之,如果您的内核是 3.8.0-6.11 或更高版本,那么您——使用精确的技术术语——“运气不好”:您必须构建自己的perf.

    如果您决定以 Ubuntu 方式执行此操作,这实际上非常简单,您可以在 google 上搜索具有不同详细程度的教程(例如,此处或此处)。一旦你已经克隆了git适合你的版本的 Ubuntu 内核 repo 并检查了与你当前内核对应的标签(如果你当前的内核是 3.13.0-48-generic,标签将是这样的3.13.0-48.80,即末尾有一个额外的数字),您必须编辑(wrt gitrepo 的根目录)debian/rules.d/2-binary-arch.mk并从其中一个命令行中删除 (它用于检查,因此将其更改为无效)。这个子句只出现一次,所以搜索一下,拿出来就可以了。NO_LIBPYTHON=1make\#ifdefNO_LIBPYTHON=0

    发行版的linux-tools-3.x.x-y包包含实际的perf二进制文件,以/usr/lib/linux-tools-3.x.x-y/perf. 这是用fakeroot debian/rules binary-arch. 此规则 ( binary-arch) 需要很长时间才能构建(在我的 i7 笔记本电脑上大约需要 25 分钟)。如果我多加注意,我可能会选择一个没有构建每个内核变体和模块的。欢迎提出建议。

    假设您没有进行其他更改,一旦完成,您想要的包是linux-tools-3.13.0-48_3.13.0-48.80_amd64.deb(对您的内核版本取模):这是带有二进制文件的包,而不是符号链接或 shell 包装器。

    可能还有几个其他linux-tools包,具体取决于您构建的内容,linux-tools-3.13.0-48-generic_3.13.0-48.80_amd64.deb仅包含符号链接和内容(不太可能有所不同),并且仅包含以;结尾linux-tools-common_3.13.0-48.80_all.deb的简短通用perf包装脚本。/usr/bin后者是用fakeroot debian/rules binary-indep.

    您可以安装新的支持 Pythonperf的

    # sudo dpkg -i linux-tools-3.13.0-48_3.13.0-48.80_amd64.deb
    

    您可以根据需要安装尽可能多或尽可能少的内核、内核模块、其他工具包等。原则上,这些都应该是一样的。我刚刚安装了一个包,一切似乎都正常:我有我的 Python-capableperf回来了。

    当然,下次有内核更新时,您将不得不再次做很多这样的事情(从新标签开始)git pull。checkout我必须自己跟上这个,所以我有一半想将我的 .debs 加入 PPA,但似乎没有太大兴趣(这个问题在 3 个月内被投票两次)。

    • 5

相关问题

  • 默认的字符编码是什么?

  • 如何使用 pynotify 创建可点击通知?

  • 有没有安装 Django 1.2.*(最新稳定版)的简单方法?

  • 为 Python 应用程序设置构建系统

  • 为我的 PPA 创建包时遇到问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve