永久启用RHEL scl

22

有没有一种方法可以永久启用RedHat的自定义软件集合?

我已经安装了一个scl,以在RHEL6中提供python27,并且不想每次都启用自定义scl。

3个回答

24

好的,您可以在启动脚本中添加一些内容来引用启用脚本。

例如,在您的.bash_profile中添加(注意初始/之间的空格)

. /opt/rh/python27/enable

8
把它放到 /etc/profile.d/ 目录下是更好的解决方案。如果用户不使用 bash 呢? - Tomas Tomecek

4
我觉得对于root用户来说,这个选项听起来很危险。我认为下面这样的方式更加安全和合适:
您可以创建一个接收命令行选项的函数,把它看作是一个功能强大的别名。将以下内容添加到您的.bashrc文件中。
python27() {
scl enable python27 “python $*”
}

接着进行测试:

python27 –version
Python 2.7.5

这并不能帮助你在脚本中使用神奇的命令行,但会使调用脚本更加容易:

[smccarty@keith ~]$ cat script.py
#!/usr/bin/env python27

import sys

print “Hello, World!”, sys.version

默认情况下,使用Python的普通安装方式:

[smccarty@keith ~]$ ./script.py
Hello, World! 2.6.6 (r266:84292, Sep 4 2013, 07:46:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

使用我们的别名调用它,并注意Python 2.7被使用:

[smccarty@keith ~]$ python27 script.py
Hello, World! 2.7.5 (default, May 23 2013, 06:08:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

如果将script.py重命名为包含空格的名称(例如“abc def.py”),似乎会出现错误。 - mogul

0
简而言之:source scl_source enable name
  • 要查找name,可以执行scl --list



更长的故事:

在你的~/.bashrc~/.bash_profile/etc/profile.d/enable_name.sh中。

if command -v scl_source &>/dev/null; then
    source scl_source enable name
fi

致敬:

p.s. 不要使用会生成新shell的任何解决方案,因为它可能会Forkbomb你,并阻止您登录

p.s. SCL在EnterpriseLinux版本>=el8中消失


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接