CentOS 5 没有预装 Qt4,遗留系统下的安装困境与解决方案

admin

在运维和开发领域,我们经常需要面对“历史遗留系统”的维护工作,CentOS 5 作为曾经非常流行的企业级 Linux 发行版,由于其发布于 2007 年,早已在 2017 年 3 月正式停止了生命周期(EOL)支持,这意味着官方的软件仓库、安全更新以及新软件的包都已不再提供。

对于许多旧版本的 C++ 开发项目,Qt 4 是不可或缺的图形界面开发库,当你试图在一台全新的或重装的 CentOS 5 服务器上通过 yum 安装 Qt 4 时,往往会遇到一个令人头疼的问题:CentOS 5 里面没有 Qt4 安装包

为什么 CentOS 5 没有 Qt4 安装包?

随着 CentOS 5 的停止维护,官方的 BaseUpdatesExtras 仓库都已被归档或删除,Qt 4 在 CentOS 5 发布时(约 2007-2009 年)并非默认核心组件,因此官方源中并不包含它,虽然当时可能有第三方仓库(如 RPMforge)提供过,但如今这些第三方仓库也已停止对 CentOS 5 的维护,下载链接往往失效。

CentOS 5 没有预装 Qt4,遗留系统下的安装困境与解决方案

解决方案:从源码编译安装

既然官方仓库找不到安装包,最稳妥且通用的方法就是从源码编译安装,虽然这比使用 yum 安装要麻烦一些,但能确保兼容性。

以下是具体的操作步骤:

准备编译环境

你需要安装编译源码所需的工具链,在 CentOS 5 中,gcc 版本较老,建议先升级基础编译器,或者确保系统已有 gccmakeglibc-devel 等工具。

yum install gcc gcc-c++ make flex bison byacc glibc-devel libstdc++-devel ncurses-devel libX11-devel libXft-devel libXext-devel xorgproto-devel

下载 Qt 4 源码

你需要下载 Qt 4 的源码包,目前最推荐的是 Qt 4.8.7 版本,它是 Qt 4 系列的最后一个长期支持版本,对旧版系统的兼容性最好。

cd /usr/local/src
wget http://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
tar -xzvf qt-everywhere-opensource-src-4.8.7.tar.gz
cd qt-everywhere-opensource-src-4.8.7

配置编译选项

进入源码目录后,运行配置脚本,你需要指定安装路径(避免与系统库冲突)并开启所需的组件。

./configure -prefix /usr/local/qt-4.8.7 -opensource -confirm-license -release -nomake examples -nomake demos -fast
  • -prefix: 指定安装目录。
  • -release: 编译为发布版本,体积更小。
  • -nomake examples/demos: 如果不需要编译示例,可以跳过以加快编译速度。

编译与安装

配置成功后,开始漫长的编译过程,CentOS 5 的 CPU 性能较弱,这可能需要数小时。

make
make install

配置环境变量

安装完成后,需要将 Qt 的库路径和可执行文件路径加入系统环境变量。

编辑 /etc/profile.d/qt4.sh(新建文件):

echo 'export PATH=/usr/local/qt-4.8.7/bin:$PATH' > /etc/profile.d/qt4.sh
echo 'export LD_LIBRARY_PATH=/usr/local/qt-4.8.7/lib:$LD_LIBRARY_PATH' >> /etc/profile.d/qt4.sh
source /etc/profile.d/qt4.sh

替代方案:使用 Docker

如果你不想在 CentOS 5 物理机上折腾编译环境,或者编译过程报错(GLIBC 版本

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码