在el8/el9及更高版本系统中,如何获取python3、gcc、java等软件的新版本?
在RHEL/CentOS/Rocky Linux 8/9及更高版本中获取gcc、Python3、Java等软件的新版本
在EL7系统中,我们依赖Software Collections(SCL)来获取gcc、Python等软件的更新版本,但从EL8/EL9开始SCL已被弃用,取而代之的是AppStream模块化仓库和工具链集包,以下是具体获取各软件新版本的方法:
GCC 新版本
EL8/EL9通过gcc-toolset系列包提供更新版GCC,同时也支持独立版本包:
- 安装指定版本的工具集(以GCC 12为例):
dnf install -y gcc-toolset-12 - 临时启用该版本(仅当前会话有效):
scl enable gcc-toolset-12 bash - 永久启用:将启用脚本添加到用户环境配置中,比如编辑
~/.bashrc,追加:source /opt/rh/gcc-toolset-12/enable - EL9还支持直接安装独立版本包,比如直接装GCC 12:
之后可以通过dnf install -y gcc12gcc12、g++12命令直接调用新版本。
Python3 新版本
AppStream仓库提供了多版本Python的模块化支持,操作步骤如下:
- 查看可用的Python模块流:
dnf module list python3 - 启用目标版本的流(以Python 3.11为例):
dnf module enable -y python3:3.11 - 安装该版本Python:
dnf install -y python3.11 - 设置为系统默认Python3(可选):
# 添加备选路径 alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 # 交互式选择默认版本 alternatives --config python3
如果需要同时管理多个Python版本,也可以使用pyenv工具,先安装依赖包:
dnf install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
之后克隆pyenv仓库并配置环境变量,即可安装任意Python版本。
Java 新版本
Java同样通过AppStream模块管理,以OpenJDK为例:
- 查看可用的Java模块:
dnf module list java - 启用并安装目标版本(以OpenJDK 17为例):
dnf module enable -y java:17 && dnf install -y java-17-openjdk java-17-openjdk-devel - 切换默认Java版本:
# 切换Java运行时 alternatives --config java # 切换Java编译器 alternatives --config javac
如果需要Oracle JDK或其他发行版JDK,可直接从官方下载压缩包,解压后配置JAVA_HOME和PATH环境变量即可。
内容的提问来源于stack exchange,提问作者Trevor Boyd Smith
相关产品推荐
相关产品推荐

