Я смог понять это. Я разместил ответ на мой вопрос на SO. Надеюсь, поможет!
Я смог понять это. Сначала я установил rvm как многопользовательскую установку, чтобы учетная запись www-data
могла получить к ней доступ.
$ curl -sSL https://get.rvm.io | sudo bash -s stable
Установите желаемую версию ruby, в моем случае 2.3.1, затем установите rvm для ее использования:
$ rvm install 2.3.1
$ rvm use 2.3.1
Запустите gem
чтобы установить любые драгоценные камни, которые необходимы. Поскольку rvm является многопользовательской установкой, эти драгоценные камни хранятся в системе, а не в вашем конкретном пользователе.
$ gem install packagename
Я не знаю, если это необходимо, но я бы закрыл сессию SSH и снова открыл ее. rvm портит переменные окружения, поэтому безопаснее, чем потом сожалеть.
Запустите env
чтобы напечатать все переменные окружения. printenv
также работает, если env
по какой-то причине не работает. Вы получите большой список всего, что вам нужно, вам нужны только рубины. Не копируйте / вставляйте эти значения, это примеры, которые я извлек из своей системы. Ваш будет другим!
PATH=/usr/local/rvm/gems/ruby-2.3.1/bin:/usr/local/rvm/gems/ruby-2.3.1@global/bin:/usr/local/rvm/rubies/ruby-2.3.1/bin:/usr/local/rvm/bin:/home/steven/bin:/home/steven/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
rvm_bin_path=/usr/local/rvm/bin
GEM_HOME=/usr/local/rvm/gems/ruby-2.3.1
IRBRC=/usr/local/rvm/rubies/ruby-2.3.1/.irbrc
MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.3.1
rvm_path=/usr/local/rvm
rvm_prefix=/usr/local
rvm_ruby_string=ruby-2.3.1
GEM_PATH=/usr/local/rvm/gems/ruby-2.3.1:/usr/local/rvm/gems/ruby-2.3.1@global
RUBY_VERSION=ruby-2.3.1
Теперь нам нужен PHP для распознавания этих переменных. Вам нужно будет найти нужный файл в вашей системе, что может быть сложно. У меня нет способа узнать, какой из них правильный, я использовал метод проб и ошибок.
Файл в моей системе - /etc/php/5.6/fpm/pool.d/www.conf
. Добавьте все переменные среды, которые вы ранее захватили, в этот файл в следующем формате. Обратите внимание, что вам действительно нужен PATH
здесь!
env[rvm_path] = /usr/local/rvm
env[rvm_prefix] = /usr/local
Теперь перезапустите php-fpm
. Название вашего сервиса может отличаться от моего; Я использую 5.6 build из ondrej / php .
Ubuntu 15.04 и новее (systemd):
$ sudo systemctl restart php5.6-fpm
Ubuntu 14.10 и новее:
$ sudo service php5.6-fpm restart
Наконец, в самом сценарии вам нужно cd
- диск в каталог , вы запускаете команду из bundle
Мой короткий сценарий таков:
cd /opt/slate
/usr/bin/git reset --hard
/usr/bin/git pull
bundle exec middleman build --clean
cp -R /opt/slate/build/* /var/www/docs
Работает для меня!