永久启用RHEL scl

paw*_*que 19 redhat rhel rhel-scl software-collections

有没有办法永久启用RedHat的自定义软件集合?

我已经安装了一个scl来在RHEL6中提供python27,并且不希望每次都必须启用自定义scl.

小智 25

好吧,您可以在启动脚本中添加一些内容来获取启用脚本.

例如添加到您的.bash_profile(初始dot和之间的注释空间/)

. /opt/rh/python27/enable
Run Code Online (Sandbox Code Playgroud)

  • 把它放到/etc/profile.d/是[更好的解决方案](http://developerblog.redhat.com/2014/03/19/permanently-enable-a-software-collection/).如果此人不是bash用户怎么办? (7认同)

小智 5

对于root来说,这个选项听起来很危险.我认为以下内容会更安全,更合适:

您可以创建一个接受命令行选项的函数.将此视为类固醇的别名.将以下内容添加到.bashrc中

python27() {
scl enable python27 “python $*”
}
Run Code Online (Sandbox Code Playgroud)

然后测试:

python27 –version
Python 2.7.5
Run Code Online (Sandbox Code Playgroud)

这对脚本中的魔术行没有帮助,但可以更容易地调用脚本:

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

import sys

print “Hello, World!”, sys.version
Run Code Online (Sandbox Code Playgroud)

调用正常并注意,使用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)]
Run Code Online (Sandbox Code Playgroud)

用我们的别名调用它,并注意使用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)]
Run Code Online (Sandbox Code Playgroud)