我正在尝试在 CentOS 6.x 上从源代码编译 Python 3.12.8,无需 root 访问权限,因为我没有
sudo
权限。
我运行了以下命令进行配置和构建:
../configure --prefix=$HOME/local/python --with-openssl=$HOME/local/openssl
make -j24
但是构建过程遇到了错误:
The necessary bits to build these optional modules were not found:
_dbm
首先,我在
$HOME/local/gdbm
上安装了gdbm 1.24。
源代码是使用wget从https://ftp.gnu.org/gnu/gdbm/gdbm-1.24.tar.gz
获取的。
接下来,我设置环境变量如下。
export LD_LIBRARY_PATH=$HOME/local/gdbm/lib:$LD_LIBRARY_PATH
export CFLAGS="-I$HOME/local/gdbm/include $CFLAGS"
export CPPFLAGS="-I$HOME/local/gdbm/include $CPPFLAGS"
export LDFLAGS="-L$HOME/local/gdbm/lib $LDFLAGS"
export PATH=$HOME/local/gdbm/bin:$PATH
export C_INCLUDE_PATH=$HOME/local/gdbm/include:$C_INCLUDE_PATH
export PKG_CONFIG_PATH=$HOME/local/gdbm/lib/pkgconfig:$PKG_CONFIG_PATH
但是,
_dbm
仍然不见踪影。
我可以采取哪些额外步骤来解决缺少的
_dbm
依赖项并成功编译 Python? 感谢您的阅读。
我刚刚自己解决了这个问题。
编译 gdbm 1.24 时,我需要附加
--enable-libgdbm-compat
选项。根据 GDBM 手册,此选项提供了对旧库的兼容性。
gdbm运行
../configure
所需的代码如下:
../configure --prefix=$HOME/local/gdbm --enable-libgdbm-compat
之后,像往常一样使用以下代码安装gdbm:
make
make install
通过此修复,我能够使用我之前在问题中提供的代码成功编译和安装 Python。