Как заставить/usr/bin/env рубин указывать на корректную рубиновую среду?

Таким образом, я делал cgi рубиновый сценарий и имел следующее наверху файла сценария:

#!/usr/bin/env ruby
 require 'rubygems'
 require 'action_pack'
 require 'cgi'

После нескольких часов не получения "/usr/bin/env: рубин: Никакой такой файл или каталог" ошибка и поиск Google, я удалил свой системный рубин 1.8.7 (у меня также было 1.9.3 установленных через rvm) путем выполнения sudo склонный - получают рубин чистки rubygems. Я все еще получаю ошибку. Когда я ввожу, "какой рубин", я получаю /home/homeuser/.rvm/rubies/ruby-1.9.3-p194/bin/ruby. У кого-либо есть понимание относительно того, как решить эту проблему?

Вот то, к чему приводит $PATH эха:

/home/homeuser/.rvm/gems/ruby-1.9.3-p194@rsoc326/bin:/home/homeuser/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/homeuser/.rvm/rubies/ruby-1.9.3-p194/bin:/home/homeuser/.rvm/bin:/var/lib/gems/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/homeuser/.rvm/bin

У меня есть эта та же установка на моем рабочем столе, и у меня нет той же проблемы.

7
задан 13 April 2017 в 05:24

2 ответа

/usr/bin/env ruby должен указывать на рубин RVM.

, Но позволяет, проверяют Вашу установку

  1. Проверка содержание Вашего ~/.profile, она должна содержать что-то как эти 2 строки:

    export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM
    
  2. 1116-секундный, проверьте свою установленную рубиновую версию:

    rvm list
    

    это должно произвести что-то как следующее:

    rvm rubies
    
    =* ruby-1.9.3-p286 [ x86_64 ]
    
    # => - current
    # =* - current && default
    #  * - default
    

    в противном случае попытка, работающая rvm use 1.9.3 --default

  3. При попытке запустить скрипт как корень, убедиться использовать rvmsudo ./yourscript.rb вместо sudo ./yourscript.rb, это удостоверяется, что устанавливает корректное $PATH.

Сообщенный мне результат вышеупомянутых трех шагов.

5
ответ дан 23 November 2019 в 06:30

Я добавил #!/home/homeuser/.rvm/bin/ruby вместо #!/usr/bin/env ruby. Таким образом, я предполагаю, что это означает что /usr/bin/env точки к системному рубину и не любой из rvm рубинов.

решенная проблема, хотя было бы хорошо смочь использовать #!/usr/bin/env ruby, таким образом, я могу переместить свой рубиновый сценарий с Рабочего стола на Ноутбук, не имея необходимость изменяться #!/home/homeuser/.rvm/bin/ruby (немного отличающийся путь на моем рабочем столе из-за другого имени пользователя). Возможно, символьная ссылка?

4
ответ дан 23 November 2019 в 06:30

Другие вопросы по тегам:

Похожие вопросы: