Я установил RHSCL 2, используя следующий URL:
с помощью менеджера подписок 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
, может быть, есть официальный способ сделать то, о чем я прошу?
редактировать
Не могу прокомментировать, нет представителя... в главе 3 по ссылке, которую я разместил, говорится, что пакеты коллекций программного обеспечения должны запускаться следующим образом:
scl enable rh-php56 'php -v'
Что работает... однако как мне заставить его работать для всех пользователей, как $ php -v
без дополнительных команд. Мне нужны бинарные файлы php, доступные глобально, чтобы веб-серверы могли использовать его и пользователи ssh с обычными оболочками.
решение1
Способ импорта коллекции программного обеспечения в текущую оболочку (не запуская дочернюю оболочку) заключается в получении файла «enable».
Например, для rh-php56 на машине Redhat 7...
источник /opt/rh/rh-php56/enable
Теперь вы можете запустить «php» или прочитать страницы руководства «man php» как обычно.
что добавит соответствующие переменные окружения в текущую среду оболочек. Отдельные пользователи могут сделать это в своих файлах .bashrc, что позволит им быть доступными из SSH (неинтерактивные оболочки)
Вы также можете скопировать (или создать символическую ссылку) файл включения в /etc/profile.d/ с суффиксом «.sh», чтобы автоматически включить его для ВСЕХ пользователей.
Например
ln -s /opt/rh/rh-php56/enable /etc/profile.d/rh-php56.sh
Будьте осторожны, делая это, если требуется больше, чем среда (например, демоны?). Или если в системе присутствует несколько версий этого программного обеспечения (для обратной совместимости с другим программным обеспечением/службами), так как между версиями может быть взаимодействие. Также пользователи могут не захотеть «последнюю» версию или не понять, почему «базовая» система (например, /etc configs) не влияет на версию коллекции программного обеспечения.
Энтони Тиссен (Очень старый системный администратор)