我已经使用以下url安装了RHSCL 2:
https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/2/html/2.0_Release_Notes/chap-Installation.html
使用RedHat订阅pipe理器。
然后,我跑yum remove php*然后yum install rh-php56
一切都很顺利,除了现在找不到PHP。 然后我运行find / -name php ,在以下目录中findrh-php56 :
/var/opt/rh/rh-php56/lib/php /opt/rh/rh-php56/register.content/var/opt/rh/rh-php56/lib/php /opt/rh/rh-php56/root/usr/bin/php /opt/rh/rh-php56/root/usr/lib64/php /opt/rh/rh-php56/root/usr/share/php
将这些二进制文件放到/usr/bin或其他所有用户通常可用的目录中的最好方法是什么?
我在安装软件包时错过了一个步骤,这就是为什么它不能在全球范围内使用? 或者,这只是使用RHSCL时会发生什么?
我testing了这些文件夹中的二进制文件,他们工作时,我运行php -v所以它工作正常。
我的第一个想法是把cp放到/bin或者/usr/bin但是也许有一种正式的方式来做我想问的东西?
编辑
不能发表评论,没有代表…从我张贴的链接的第3章,它说,软件收集包必须像这样运行:
scl enable rh-php56 'php -v'
哪些工作…但是我怎么得到它运行像$ php -v所有用户没有额外的命令。 我需要全局可用的PHP二进制文件,所以web服务器可以使用它和普通shell ssh用户。
将软件集合导入当前shell(不启动子shell)的方法是获取“启用”文件。
例如,在Redhat 7机器上的rh-php56 …
源/ opt / rh / rh-php56 / enable
你现在可以运行“php”,或像往常一样阅读man php的“man php”。
这会将相应的环境variables添加到当前的shell环境中。 个人用户可以在.bashrc文件中执行此操作,使其可以从SSH(非交互式shell)
您还可以将启用文件复制(或符号链接)到/etc/profile.d/并以“.sh”后缀自动为所有用户启用。
例如
ln -s / opt / rh / rh -php56 / enable /etc/profile.d/rh-php56.sh
如果不仅仅需要环境(比如守护进程? 或者如果系统上存在该软件的多个版本(为了与其他软件/服务的后向兼容),因为版本之间可能存在交互。 另外,用户可能不想要“最新”版本,或者对“基本”系统(EG:/ etc configs)不影响软件集合版本的原因感到困惑。
安东尼蒂森(一个非常老的系统pipe理员)