我已使用以下 url 安裝了 RHSCL 2:
使用 RedHat 訂閱管理員。
然後我yum remove php*
跟著跑yum install rh-php56
一切都很順利,除了現在到處都找不到 PHP。然後我運行並在以下目錄中find / -name php
找到:rh-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 時發生的情況?
我已經測試了這些資料夾中的二進位文件,它們在我運行時工作,php -v
因此工作正常。
我的第一個想法是cp
進入/bin
或/usr/bin
但也許有一個正式的方法來完成我所要求的事情?
編輯
無法發表評論,沒有代表...來自我發布的鏈接的第三章,它說軟體集合包必須像這樣運行:
scl enable rh-php56 'php -v'
哪個確實有效......但是我如何讓它為所有用戶運行,就像$ php -v
沒有額外的命令一樣。我需要全域可用的 php 二進位文件,以便網頁伺服器可以使用它,並且 ssh 使用者可以使用普通 shell。
答案1
將軟體集合匯入目前 shell(而不是啟動子 shell)的方法是取得「enable」檔案。
例如,對於 Redhat 7 機器上的 rh-php56...
源 /opt/rh/rh-php56/enable
現在您可以執行“php”,或正常閱讀手冊頁“man php”。
這會將適當的環境變數加入到目前的 shell 環境中。個人使用者可以在 .bashrc 檔案中執行此操作,從而可以透過 SSH(非互動式 shell)使用它
您也可以使用「.sh」後綴將啟用檔案複製(或符號連結)到 /etc/profile.d/ 中,以自動為所有使用者啟用它。
例如
ln -s /opt/rh/rh-php56/enable /etc/profile.d/rh-php56.sh
如果需要的不僅僅是環境(例如守護程序?),請小心執行此操作。或者,如果系統上存在該軟體的多個版本(為了與其他軟體/服務向後相容),因為版本之間可能存在交互作用。此外,使用者可能不想要「最新」版本,或對為什麼「基本」系統(EG:/etc configs)不會影響軟體集合版本感到困惑。
Anthony Thyssen(一位非常老的系統管理員)