linux 在el 8/el 9/newer上,如何获得更新版本的软件(如python3,gcc,java等)?

qco9c6ql  于 2023-01-29  发布在  Linux
关注(0)|答案(1)|浏览(167)
  • 在Enterprise Linux版本〈=el 7中,有一个名为“软件集合”的单独存储库,可帮助获取较新版本的软件,例如:python3gccjava等等。
  • 使用SCL,他们在/opt下安装二进制文件、库和手册页(因此目录结构和文件都是自定义的)
  • 要启用较新的软件,您将执行source scl_source enable name(它将设置env vars:路径、LD库路径、手动路径等)
  • 列出您安装的所有SCL软件scl --list

在el 8/el 9/newer上,如何获得更新版本的软件(如python3,gcc,java等)?

tzdcorbm

tzdcorbm1#

∮ ∮简而言之,

  • 对于Python3,dnf install -y python39 && alternatives --set python3 $(command -v python3.9)
  • 对于gcc,dnf install gcc-toolset-12 && source scl_source enable gcc-toolset-12
  • 对于Java,dnf install java-17 && bin_java_filename=$(rpm -qa|grep java-17|xargs rpm -ql|grep "bin\/java$"|head -1) && alternatives --set java ${bin_java_filename}
  • 在rocky8,rocky9上测试

哪个存储库的软件版本较新?

  • 在Enterprise Linux版本〉= el8中,您可以获得较新版本的软件,例如:python3、gcc等来自名为“appstream”的回购协议
  • 默认情况下启用了存储库

如何:安装较新的软件版本?

  • 对于Python3:dnf install python39
  • 对于GCC:dnf install gcc-toolset-12

如何:更改系统默认值?

  • 对于Python3:alternatives --set python3 $(command -v python3.9)
  • 对于GCC:
  • 编辑您的用户.bashrc.bash_profile,或在/etc/profile.d/下使用以下命令创建一个新文件:source scl_source enable gcc-toolset-12
  • 我以为scl_source会在el8,el9消失,但显然不是
  • 有关scl_source的详细信息,请转到此链接https://unix.stackexchange.com/a/195219/5510或永久启用RHEL scl

另外,alternativesupdate-alternatives有什么区别?

  • 原始工具名为update-alternatives,来自DebianLinux发行版
  • 在EnterpriseLinux中,Redhat重写了该工具,并将其命名为alternatives,当您安装alternatives时,该软件包还会在您的env var PATH上安装名为update-alternatives的符号链接,以帮助您查找该工具
  • 这两种方法相似但不相同,因为它们的源代码不同

相关问题