Получение "Предупреждение! PATH неправильно настроен" при использовании rvm 2.0.0 --default

Выше не работает в первый раз, работает 2-й раз.

Попробуйте установить версию ruby ​​версии 2.0.0 для любых новых окон оболочки.

Выполнение

$ rvm use 2.0.0 --default

дает

Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/
bin' is not at first place,
         usually this is caused by shell initialization files - check them for '
PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --au
to-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247

Затем сделаем то же самое

$ rvm use 2.0.0 --default

теперь не дает ошибки, т.е.

$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$ 

но новые окна все еще дают мне ruby ​​1.9.3, а не 2.0.0

В моем файле .bashrc есть:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"

У моего .bash_profile есть:

source ~/.profile
case $- in *i*) . ~/.bashrc;; esac

Попытка

rvm get stable

похоже, работает, но в конце много зеленого вывода показывает:

Could not update RVM, get some help at #rvm IRC channel at freenode servers.

Новые окна терминала с rvm list rubies показывают это:

$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'.

rvm rubies

=> ruby-1.9.3-p125 [ x86_64 ]
   ruby-1.9.3-p194 [ x86_64 ]
 * ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Ответ 1

Ответ заключался в следующем:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 
# Load RVM into a shell session *as a function*

** в BOTTOM ** (последняя строка - важная!) моего .bashrc файла. У меня было это в моем файле .bash_profile (я на Ubuntu), и это только частично работало, приводя к запутанным ошибкам.

Ответ 2

Я застрял после того, как я удалил rvm с помощью

rvm implode

то после переустановки rvm он получил то же сообщение об ошибке. Просматривая страницу веб-сайта git. Он перечисляет инструменты на своей странице и рекомендует использовать

rvm reset 

после установки. Это зафиксировало мое сообщение об ошибке. Никаких изменений в PATH не требуется.

Ответ 3

Возможно, это не лучший способ разрешить это, но я добавил эту строку в botton моего .zshrc(он тоже будет работать в .bashrc!)

export PATH="$GEM_HOME/bin:$PATH"

Ответ 4

Я попробовал решение Майкла Дарранта, и это не сработало для меня. но я побежал rvm get stable --auto-dotfiles, и он начал работать по своему желанию.

Надеюсь, что это поможет

Ответ 5

Это не ответ на заданный вопрос, а на связанный с ним вопрос, который задали большинство комментаторов/респондентов - зачем вам нужно поставить строку rvm в нижней части файла оболочки rc?

Ответ прост.

  • Загружаемый rvm-код ставит двоичные каталоги rvm ruby ​​на "фронт" $PATH и
  • .bashrc (или эквивалент для вашей оболочки по умолчанию) читается и интерпретируется по строкам сверху вниз.

Итак, представьте себе следующий сценарий:

$ echo $PATH
  /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 

$ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
  /Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/[email protected]/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

$ export PATH=<something>:$PATH
$ echo $PATH
  <something>:/Users/sankalp/.rvm/gems/ruby-1.9.3-p547/bin:/Users/sankalp/.rvm/gems/ruby-1.9.3-[email protected]/bin:/Users/sankalp/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/sankalp/bin:/usr/texbin/:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

Ясно, что если что-то присутствует в файле инициализации оболочки после строки RVM и вносит какие-либо изменения в $PATH, более конкретно, если он добавляет каталоги к $PATH, то эти изменения будут толкать каталоги, добавленные rvm вниз с их первого должность. RVM, при вызове, обнаружит, что его рубиновые двоичные каталоги не находятся в самом начале $PATH и BAM! вы получите предупреждение:).

Надеюсь, что все станет ясно.

Ответ 6

У меня есть следующий вопрос (хочу, чтобы я мог просто добавить комментарий, но у меня недостаточно кредитов). У меня была такая же проблема - и когда я последовал за rvm script, который был предложен с использованием --auto-dotfiles, у меня возникли проблемы, так как он как-то shell script удалил мой файл .bashrc_profile.

Во всяком случае, я в конце концов пришел к тому же ответу, указанному выше, поместив эту строку в конец файла .bashrc. [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Вы случайно обнаружили, почему это работает так, как это делается, а не с линией в середине файла .bashrc? У вас есть ясность в отношении того, как Unix загружает переменную окружения, которая заставляет RVM работать в одном экземпляре, а не в другом?

Ответ 7

Просто добавив свой опыт: , если вы используете .bash_profile, проверьте, не мешает ли .bashrc. Убийство .bashrc в пользу одиночной конфигурации Bash на .bash_profile работает в этом случае.

Ответ 8

Я столкнулся с такой же проблемой. Я обнаружил, что в файле bashrc

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
export PATH=$HOME/local/bin:$PATH

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

несколько записей для rvm. Я прокомментировал одну запись и ее рабочий тон.

#export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
#export PATH=$HOME/local/bin:$PATH

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting

Ответ 9

Я очистил все, что было .rvm в нем из моей строки PATH = в моем .zshrc

Это устранило проблему для меня, где другие ответы здесь (поиск rvm script, или стабилизация с автоматическими dotfiles) не сделал.

Ответ 10

Я нашел эту команду очень полезной. Он решает мое дело. Поэтому, если у кого-то такая же проблема, попробуйте: rvm get stable --auto-dotfiles

Ответ 11

rvm install ruby-head Исправлена ​​проблема для меня - мало времени, но сделал трюк. Не уверен, что это сделало любые непредвиденные обновления для моих файлов bash.

Ответ 12

Я закончил удаление ~/.profile, ~/.bashrc и ~/.zshrc.

В основном я сохранял ~/.bash_profile на своем mac. И это работает.

Я думаю, что в моем случае есть:

export PATH="$PATH:$HOME/.rvm/bin"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

в этих файлах, а те дублирующие настройки путают rvm

Ответ 13

Это сработало после комментирования двух верхних дублирующих строк и добавления их внизу. Не забудьте перезапустить терминал, чтобы он заработал.

#[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
#[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/[email protected]/lib"

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Ответ 14

Можете добавить

rvm_silence_path_mismatch_check_flag=1

в ваш файл ~/.rvmrc. Это то, что предлагает предупреждающее сообщение.

Ответ 15

Я ОСНОВАЛ ЭТУ ПРОБЛЕМУ. ПОПРОБУЙТЕ ИСПОЛЬЗОВАТЬ КОМАНДУ КАК ЭТО:

rvm use 2.0.0-p353

ADD -p353 или другая версия версии до конца строки