Я использую Sensu для проверки клиентов Sensu.Как использовать shebang (#!), Чтобы использовать правильную версию Ruby
Я получаю эту ошибку, из-за версии Ruby, составляет менее 2,0:
syntax error, unexpected ',', expecting kEND
У меня есть рубин 2.1.8 установлен с помощью RVM:
rvm use 2.1.8
Using /home/jenkins/.rvm/gems/ruby-2.1.8
Как я могу заставить interperter использовать правильную версию?
Я попытался с помощью хижину (#!
) в верхней части файла различными способами:
#!/home/jenkins/.rvm/gems/ruby-2.1.8 ruby
- "How to set the correct shebang for the needed Ruby version" не работает =>
#!/usr/bin/env rvm 2.0 do ruby
внутри сценария:
source "/home/jenkins/.rvm/scripts/rvm" rvm use "2.1.8"
Любые другие предложения?
редактировать Благодаря @mudasobwa он работает, когда я запускаю его от пользователя Дженкинс с 2.1.8
[email protected]:~$ rvm use 2.1.8
Using /home/jenkins/.rvm/gems/ruby-2.1.8
[email protected]:~$ ruby check_disk_space.rb #works
CheckDisk OK: All disk usage under 85% and inode usage under 85%
[email protected]:~$ rvm use 1.8.7
Using /home/jenkins/.rvm/gems/ruby-1.8.7-head
[email protected]:~$ ruby check_disk_space.rb #doesn't work even though first row is #!/home/jenkins/.rvm/rubies/ruby-2.1.8/bin/ruby
check_disk_space.rb:32: syntax error, unexpected ':', expecting kEND
short: '-t TYPE[,TYPE]',
^
check_disk_space.rb:32: syntax error, unexpected ',', expecting kEND
Другая проблема заключается в том, что программа, которая запускает сценарий является клиентом зепзи с побежал с известным пользователем sensu
ps aux |grep sensu sensu 13148 4.0 0.4 86512 18696 ? Sl 09:38 0:00 /opt/sensu/embedded/bin/ruby /opt/sensu/bin/sensu-client -b -c /etc/sensu/config.json ...
hi @mudasobwa, спасибо за ответ. это не работает . все те же ошибки – WebQube
Что именно не сработало? Шебанг или 'rvm --default'? – mudasobwa
см. Мое редактирование сейчас – WebQube