如何在没有 root 权限的情况下在 AIX 6.5 上安装 Mercurial?

如何在没有 root 权限的情况下在 AIX 6.5 上安装 Mercurial?

有没有办法在不使用 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编译一些特定于操作系统的模块。

相关内容