引言
GNU C 库 (glibc) 是 Linux 操作系统的基本组件,为各种应用程序提供基本功能。在某些情况下,您可能需要安装多个版本的 glibc 以支持不同的应用程序或确保与旧软件的兼容性。本指南[1]将向您展示如何使用简单的步骤在 Linux 系统上安装和管理多个 glibc 库。
库需求
安装多个版本的glibc库主要是为了满足不同应用程序对库版本的需求。
这种情况通常出现在你需要执行一些与最新glibc版本不兼容的旧版软件。比如,有些老旧的应用程序可能需要依赖早期glibc版本中提供的一些特定特性或功能。
第 1 步:安装所需的软件包
在安装多个 glibc 库之前,请确保您的系统是最新的。
sudo apt update [On Debian-based Systems]
sudo yum update [On RedHat-based Systems]
接下来,安装在基于 Debian 的发行版上构建和安装 glibc 所需的必要软件包。
sudo apt install build-essential libssl-dev libgdbm-dev libdb-dev libexpat-dev libncurses5-dev libbz2-dev zlib1g-dev gawk bison
![alt](https://i-blog.csdnimg.cn/blog_migrate/76e801ce6c579db78afc4ed58c531501.png)
对于基于 RedHat 的发行版,请安装开发工具包。
sudo yum groupinstall "Development Tools"
第 2 步:安装多个 glibc 库
要安装多个 glibc 库,您需要分别编译和安装每个版本。首先,从官方 glibc 存储库或可靠来源下载所需版本的 glibc,或使用以下 wget 命令下载 glibc 2.39 和 glibc 2.38 版本。
wget https://ftp.gnu.org/gnu/glibc/glibc-2.39.tar.xz
wget https://ftp.gnu.org/gnu/glibc/glibc-2.38.tar.bz2
接下来,使用以下 tar 命令提取下载的源代码,这将创建一个包含 glibc 源代码的新目录。
tar -xvf glibc-2.39.tar.xz
tar -xvf glibc-2.38.tar.xz
导航到解压的目录并运行以下命令来配置构建并安装 glibc,这样您就可以安装多个版本的 glibc,而不会发生冲突。
-
对于 glibc 2.39:
cd glibc-2.39
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.39
make -j4
sudo make install
![alt](https://i-blog.csdnimg.cn/blog_migrate/4039ea0999cd05d3cdc3da6a2df9250c.png)
-
对于 glibc 2.38:
cd glibc-2.38
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.38
make -j4
sudo make install
管理多个 glibc 库
安装多个 glibc 库后,您需要管理它们以确保您的应用程序使用正确的版本。要使用特定的glibc版本,需要设置LD_LIBRARY_PATH环境变量。
-
对于 glibc 2.39:
export LD_LIBRARY_PATH=/usr/local/glibc-2.39/lib:$LD_LIBRARY_PATH
-
对于 glibc 2.38:
export LD_LIBRARY_PATH=/usr/local/glibc-2.38/lib:$LD_LIBRARY_PATH
您可以将这些行添加到 .bashrc 或 .profile 文件中以使更改永久生效。最后,检查 glibc 版本以确保其安装正确。
/usr/local/glibc-2.39/lib/ld-2.30.so --version
/usr/local/glibc-2.38/lib/ld-2.31.so --version
运行具有特定 glibc 版本的应用程序
要运行具有特定 glibc 版本的应用程序,请使用 LD_PRELOAD 环境变量。
例如,要使用 glibc 2.39 运行应用程序,请使用:
LD_PRELOAD=/usr/local/glibc-2.39/lib/ld-2.30.so ./your_application
总结
通过执行以下步骤,您可以在 Linux 系统上安装和管理多个 glibc 版本,这使您可以运行依赖于不同 glibc 版本的应用程序,而不会干扰系统的默认库。
Source: https://www.tecmint.com/install-multiple-glibc-libraries-linux/
本文由 mdnice 多平台发布