Рубиновый кошмар PATH в Windows - переменная PATH не работает - PullRequest
0 голосов
/ 10 марта 2019

Это кошмар. Я установил новую версию Ruby 2.5 с помощью установщика Ruby Windows (расположен здесь: https://rubyinstaller.org/downloads/). Это версия: Ruby interpreter (CUI) 2.5.3p105 [x64-mingw32]

Я предполагал, что новый установщик Windows добавит "C:\Ruby25-x64\bin" к моей ПУТИ, КОТОРЫЙ ЭТО ДЕЛАЛО.

Но командная строка указывает, что мой компьютер все еще использует более раннюю версию Ruby 2.2.4, которую я ранее установил. И DOS, и GITBASH показывают более раннюю версию Ruby (даже после того, как я добавлю НОВЫЙ путь ruby ​​к переменным среды USER и SYSTEM PATH и даже после перезагрузки!).

Другими словами, похоже, что RUBY НЕ использует переменную PATH AT ALL на моем компьютере, так как изменение PATH для указания на более новую версию НЕТ ЭФФЕКТА.

Я заметил, что есть разница между MING64 и MING32 в выводе.
У меня есть 64-битная машина, но я предполагаю, что это не имеет ничего общего с использованием переменной PATH.

USER@USER MINGW64 /
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]

В реестре также указан самый новый путь в рубине (PATH хранится в реестре).

Почему Windows не распознает новый Ruby и не настаивает на использовании старого?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Да.,,Гено Чен был прав.У меня был экземпляр Ruby, связанный с установкой Ruby on Rails.Вот что я обнаружил.

Хорошо, вот проблема.Я установил ОБА Ruby и Ruby on Rails на ноутбук с Windows.Оба являются установщиками Windows.Проблема заключается в том, что Ruby on Rails устанавливает свой собственный экземпляр Ruby, который HIJACKS путь Ruby некоторыми средствами EVIL, отличными от переменной среды PATH.Чтобы заставить работать мою недавно установленную версию Ruby 2.5, мне пришлось УДАЛИТЬ более старую версию Ruby on Rails, которая использовала Ruby 2.2.

Кто-нибудь знает, из чего состоит этот угон EVIL?

У меня больше нет Rails, если я не использую новейшую программу установки rails.Мне это отчаянно не нужно;Я только что изучал рельсы ради того, чтобы исследовать его в один момент.

Однако, действительно, НЕОБХОДИМО, чтобы был способ установить рельсы БЕЗ установки его версии движка Ruby?Способ заставить Rails использовать текущий Ruby, который глобально установлен на своем компьютере.

За исключением этого, я думаю, что для переключения путей понадобится какой-нибудь менеджер версий Ruby.Я полагаю, что менеджер версий должен будет использовать любой метод взлома, используемый Rails для переключения путей.

0 голосов
/ 10 марта 2019

Переменная PATH используется для поиска файлов.Если требуемый исполняемый файл с заданным именем найден, система будет использовать его и игнорировать все остальное.

Возможно, ранее в переменной PATH была указана bin предыдущей версии Ruby, а затемдобавьте вашу новую версию Ruby в end из PATH, она может быть проигнорирована из-за попадания в предыдущую найденную старую версию Ruby.

Чтобы убедиться, что вы можете использоватьНовая версия Ruby указана в переменной PATH, просто удалите старую версию из PATH или переместите новую версию на передний план.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...