Я установил rvm + ruby для всей системы.
which ruby
/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby
и:
/usr/bin/env: ruby: No such file or directory
Все остальное работает нормально, а прямой путь ruby в моих исполняемых файлах работает нормально.
ПУТЬ что env
использование программы для поиска исполняемых файлов. Можно изменить это в расчете на пользователя (в $HOME/.bashrc). Чтобы сделать это, работайте nano $HOME/.bashrc
и перейдите к последней строке, добавьте новую строку
export PATH=$PATH:/usr/local/rvm/rubies/ruby-2.1.1/bin
Для изменения, она в системе выравнивает Вас sudo nano /etc/login.defs
и изменяет эту строку
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
к
ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/rvm/rubies/ruby-2.1.1/bin
Я понимаю, что это - несколько старый вопрос, но я провел день + пытающийся закрепить эту проблему, и я нашел то, что я думаю, твердый тип лучших практик решения - используют эти rvm
обертки.
/usr/bin/env ruby
дает Вам возможность использовать версию Ruby по Вашему выбору, таким образом, Вы не должны редактировать исполняемые сценарии оболочки (в /bin
) с трудным кодированным путем к каталогу, чтобы заставить их работать (я рассматривал это как предложенное исправление в другом месте).
, Как отмечено в ответах выше, ключ $PATH
установка в /etc/environment
, но я предложил различное решение.
RVM дает нам каталог символьной ссылки всех установленных рубиновых версий и псевдонимов в /usr/local/rvm/wrappers/
.
при установке Вашего $PATH
var для использования каталога обертки, связанного с версией Ruby Вы хотите использовать, например,
PATH="/usr/local/rvm/wrappers/ruby-1.9.3-p547:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Вы установите среду RVM, таким образом, что /usr/bin/env ruby_command
будет работать.
, По крайней мере, это разрешило эту проблему для меня. Я надеюсь, что это помогает кому-то там сэкономить некоторое время.
Я недавно столкнулся с этой проблемой и проявил другой подход, так мысль о разделении его. Это происходит, когда рубиновый файл не присутствует в упомянутом справочнике. Поэтому создайте символическую связь с рубиновым файлом в справочнике, и Ваша ошибка должна быть зафиксирована.
cd/usr/bin/env
линия-s/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby
Я добрался, та же ошибка
#!/usr/bin/env ruby
в верхней части моего сценария приводит к
rvm /usr/bin/env: ruby no such file error
, если я выполняю сценарий.
Мое решение было так же просто как трудно найти:
кодирование переводов строки в моем сценарии / редактор исходного кода было установлено на "стиль окон (CR + LF)".
После переключения его к "стилю Unix (LF)" и сохранению моего сценария снова, ошибки не стало.
Кажется, что знак Возврата каретки (CR) был оставлен позади "рубин", таким образом, нет никакого ruby filname.script
, но ruby\R filename.script
, который приводит к ошибке.