有没有办法在不使用 root 的情况下在 AIX 6.5 上安装 Mercurial?我是一名物理专业的学生,正在我们大学的 IBM 集群上开发代码,没有 root 权限。几周前,我决定使用 Mercurial 来帮助控制我的代码。我联系了系统管理员,但他说“Mercurial 属于 AIX 系统上不受支持的软件类别”,他无法帮助我。我尝试在网上寻找指南很长时间,但没有任何收获。我只熟悉 Linux 上的最基本命令,不熟悉源代码中复杂的 make 文件。您能否提供如何从源代码构建 Mercurial 的分步指南?
更新
系统已安装 Python 2.6,但 Python 安装似乎不完整。当我尝试 @grawity 的答案时,我收到错误"Couldn't import standard bz2 (incomplete Python install)."
更新2
我尝试编译 Python 2.6.8,没有问题,但是当我尝试
python setup.py install --user
我得到了错误
Traceback (most recent call last):
File "setup.py", line 56, in <module>
import os, subprocess, time
File "/home/mwu3/install_python/lib/python2.6/subprocess.py", line 416, in <module>
import fcntl
ImportError: No module named fcntl
更新3
我查看了 Python 的构建日志,实际上它无法构建很多包,其中包括 fcntl:
Failed to find the necessary bits to build these modules:
_sqlite3 bsddb185 dl
imageop linuxaudiodev ossaudiodev
spwd sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_bsddb _ctypes _curses
_curses_panel _tkinter fcntl
我使用这个来编译 Python:
CC=gcc CXX=g++ ./configure --enable-shared
make
更新4
我尝试用 xlc 编译 Python:
CC=xlc_r OPT="-O2 -qmaxmem=70000" ./configure --without-computed-gotos --enable-shared
make
在 update3 中也出现同样的错误。
更新5
我尝试使用 xlc 编译 Python 2.7.3,也出现错误,但fcntl
构建_bsddb
成功。
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _sqlite3 bsddb185
dl imageop linuxaudiodev
ossaudiodev spwd sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_ctypes _curses _curses_panel
_tkinter
答案1
来自主题在闪存驱动器上运行 Mercurial?我感觉 Mercurial 基本上是可移植的,只要安装了所有依赖项即可。整个包似乎都位于一个目录中(尽管我没有测试 Mercurial 的环境)。
我没有使用 AIX,但在 Linux 上,可以使用以下命令简单地提取 RPM 的内容:
cd my-dir;
rpm2cpio to-install.rpm | cpio -idv
有关详细信息,请参阅 如何提取 RPM 包而不安装它(rpm extract 命令)。
您需要重复此操作或从源代码安装所有依赖项。
如果 Mercurial 的安装相对简单并且不需要访问仅能由 root 访问的目录,那么这将会起作用。
答案2
下载 Mercurial 源 tarball,解压并运行:
python setup.py install --user
它将被安装到~/.local/lib/python2.6/
,可执行命令位于~/.local/bin/
– 将后者添加到您的 $PATH。
您至少需要 Python 2.6 用于“用户基础”目录,并gcc
编译一些特定于操作系统的模块。