我正在尝试在 Redhat 5 Linux 机器中编译 python 2.6.8。
在编译结束时,我收到了这些信息;
Failed to find the necessary bits to build these modules:
_bsddb _curses _curses_panel
_hashlib _sqlite3 _ssl
_tkinter bsddb185 bz2
dbm dl gdbm
imageop readline sunaudiodev
根据上面的名称,我使用yum search
并找到了一些 rpm 包来满足依赖关系
ncurses
ncurses-5.5-24.20060715.x86_64 ncurses-devel-5.5-24.20060715.i386
数据库管理系统 gdbm-1.8.0-26.2.1.x86_64
阅读行 readline-5.1-3.el5.x86_64
b2 bzip2-1.0.3-4.el5_2.x86_64 bzip2-devel-1.0.3-4.el5_2.x86_64
然而我不能和其余的人没有运气。
是否有任何技术可以发现依赖关系?是否有任何可用的 Web 资源可以查找 rpm 包?
答案1
- 使用
deplist
命令列出包依赖项:
yum deplist <package>
2. 或者使用包repoquery
中的工具yum-utils
:
repoquery --requires <package>
Yum 手册页:http://linux.die.net/man/8/yum
Repoquery 手册页:http://linux.die.net/man/1/repoquery
答案2
RPM查找是寻找 RPM 的最佳选择。请确保您获取版本-devel
以及主包,因为编译器将查找这些包中的头文件和/或库。它们恰好有 Python 2.6.8 的 RPMi586和x86_64平台,最初为 OpenSUSE 构建,但可能对您有用。
就 Python 而言,除非你特别需要 2.6,否则我会高度建议使用最新的、完全修复了错误且功能齐全的版本。2.7.5是维护 2.x 系列的当前版本,并且3.3.2是 Python 3 的最新版本。要查找构建失败的模块的信息,请查看目录Python-2.7.5/Modules
(或您最终构建的任何版本)并查找.c
与模块名称相关的文件。例如,在我的Python-3.3.2/Modules
目录中,_tkinter.c
顶部显示“仅支持 Tcl/Tk 8.3.1 及更高版本”,因此现在我知道要搜索哪些软件包名称和版本。
祝你好运!