После ряда злоключений, связанных с RVM, Ruby и Rails на моем новом ноутбуке, я был полностью сбит с толку. Я удалил RVM, но все пути, версии и разрешения перепутались.
Я искал и не нашел нужных исправлений. Кажется, что каждое решение усугубляет проблему.
Я хочу начать все заново, не сбрасывая компьютер до заводских настроек. Как я могу сбросить только вещи, связанные с Ruby, такие как Ruby, Rails и т. д., Не стирая данные на моем компьютере?
Думаю, мне это не казалось очевидным, поэтому я и спросил. Но если нет возможности просто сбросить Ruby и т. д., Тогда я полагаю, что мне нужно. Спасибо за комментарий.
Об этом плохо спрашивают. Вы просите нас представить все, что вы могли бы сделать, не сообщая нам ничего полезного. Apple устанавливает систему Ruby для собственного использования; Можно запускать сценарии против него, но его изменение может нарушить процессы, установленные Apple. Вместо этого ВСЕГДА используйте диспетчер песочницы, такой как rbenv, RVM или asdf, для установки отдельного, изменяемого пользователем Ruby. И никогда не используйте sudo
, пока вы точно не знаете, что он делает и что будет делать команда; sudo
похож на скальпель хирурга и способен нанести серьезный ущерб в чужих руках, особенно при работе с системными файлами.
rm -rf ~/.rvm
, затем отредактируйте ~/.bash_profile
, чтобы удалить source $HOME/.rvm/scripts/rvm
.
Затем вы можете перезапустить RVM с нуля, следуя подробным инструкциям по установке на https://rvm.io/rvm/install.
Как я уже упоминал выше, я уже удалил RVM. Это не моя проблема - я бы хотел полностью сбросить Ruby и все, что с ним связано, так, чтобы оно было «из коробки». RVM давно ушел, но куча других тонких вещей вышла из строя.
То, что предложил @anothermh, будет работать нормально. Какие «тонкие» вещи вас беспокоят?
Я уже делал это, я не уверен, как они помогают, когда RVM уже был удален таким образом. Я столкнулся с кругом проблем и ошибок с путями, разрешениями, сборщиком и т. д. Я потратил несколько часов на чтение потоков переполнения и пробу вещей в терминале, и я уверен, что нет простого решения. Вот почему я надеялся на помощь с вышеуказанным вопросом.
@Forrest Тогда, возможно, вам стоит лучше объяснить свою проблему, потому что в вашем вопросе говорится, что у вас были проблемы с RVM, Ruby и Rails, и поскольку RVM не пишет за пределами ~ / .rvm, ЕДИНСТВЕННОЕ, что вам нужно сделать, это удалить его. . Если у вас возникла проблема с система Ruby, тогда быть конкретными. испортил - это не конкретный.
Я объяснил, что я уже удалил RVM и хотел узнать, как удалить Ruby и любое соответствующее программное обеспечение из моей системы, чтобы переустановить его с настройками по умолчанию. Я не сказал, что RVM была единственной причиной моих проблем. Это было очень ясно, но я не ожидал, в какой степени люди подумают, что я ошибаюсь, и захотят, чтобы я задавал другие вопросы. Извинения.
Уровень детализации в вашем вопросе заставил меня поверить, что вы, вероятно, не знаете, как правильно удалить RVM, поскольку вы сказали, что удалили его, но все еще испытываете проблемы с Ruby и Rails (что представляет собой серию драгоценных камней, что снова указывает на отсутствие опыта по делу). В Stackoverflow вам нужно сообщить быть конкретными о ваших проблемах. Слова испортил, злоключения, не в порядке, сбит с толку - это совершенно бессмысленно. Сказать проблема усугубляется, но затем не описать проблему, означает, что никто не сможет помочь вам, пока вы не поможете себе.
Я был * конкретен * - я задал этот вопрос: «Я хочу начать все заново, не сбрасывая мой компьютер до заводских настроек. Как я могу сбросить только вещи, связанные с рубином (рубин, рельсы и т. д.), Не стирая мой компьютер? " Я получил снисходительность, антагонизм и довольно очевидную путаницу в отношении природы отношения языка к значению.
На этом этапе все, что я могу порекомендовать, - это прочитать Как мне задать хороший вопрос? и, возможно, взять тур. Я уже несколько часов пытаюсь помочь тебе. Я не уверен, что могу чем-то еще помочь, если вы не желаете предоставлять полезную информацию о проблеме.
какой рубин возвращает /Users/coreyholmes/.rbenv/shims/ruby, который я не уверен, как сбросить / исправить. Любые идеи?
Я бы закрыл и снова открыл окно вашего терминала, прежде чем вы начнете все это, чтобы убедиться, что у вас не загружены старые переменные env.
Общие вещи:
env | grep RUBY
, env | grep RVM
и найдите все оставшиеся переменные среды, которые вы, возможно, установили.env | grep GEM
. Иногда вы увидите GEM_PATH
, GEM_HOME
и т. д., Но это не обязательно для системного ruby.~/.bash_profile
, ~/.bashrc
и ~/.profile
и посмотрите, добавили ли вы что-нибудь из rvmЕсли вы используете macOS Mojave (сравниваю со своей системой):
which ruby
должен вернуть /usr/bin/ruby
. Если этого не происходит, значит, вам мешает что-то еще. Опубликуйте, что это такое, и мы сможем это исправить.
Запуск /usr/bin/ruby --version
должен вернуть ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
Разрешения для системного рубина:
-r-xr-xr-x 1 root wheel 52016 Nov 30 02:38 /usr/bin/ruby
Это должно быть что-то вроде sudo chmod 555 /usr/bin/ruby
, чтобы исправить это, если у вас есть разница. Если у вас разные владельцы, вам понадобится sudo chown root:wheel /usr/bin/ruby
.
Вы также захотите проверить which gem
и посмотреть, сообщает ли он о /usr/bin/gem
. Разрешения должны быть такими же, как у /usr/bin/ruby
. /usr/bin/gem --version
должен вернуть 2.5.2.3
Запуск /usr/bin/gem env
должен вернуть что-то похожее на то, что показано ниже. Замени jay
(пользователь моего компьютера) на свой
RubyGems Environment:
- RUBYGEMS VERSION: 2.5.2.3
- RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin18]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.3.0
- USER INSTALLATION DIRECTORY: /Users/jay/.gem/ruby/2.3.0 # this doesn't matter much
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/bin
- SPEC CACHE DIRECTORY: /Users/jay/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-18
- GEM PATHS:
- /Library/Ruby/Gems/2.3.0
- /Users/jay/.gem/ruby/2.3.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0
- GEM CONFIGURATION:
- :update_sources => false
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["https://rubygems.org/"]
- "benchmark" => true
- "gem" => "--document=yri"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin
- /Users/jay/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /opt/X11/bin
Оттуда у вас есть два каталога, которые вы, вероятно, захотите посмотреть:
Запустите ls -al /Library/Ruby/
. Вы должны увидеть это:
drwxr-xr-x 3 root wheel 96 Aug 17 18:59 Gems
drwxr-xr-x 3 root wheel 96 Aug 17 18:59 Site
Вам может потребоваться chmod / chown для каждого из этих каталогов (с -R
для рекурсивного)
Когда вы закончите, обратите внимание, что запуск /usr/bin/gem install bundler
и gem install bundler
(при условии, что вы не установили новый менеджер версий Ruby) должен привести к ошибке, как показано ниже (это означает, что вы правильно перенастроили разрешения).
Fetching: bundler-1.17.2.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
Вы увидите, что в некоторых руководствах упоминается изменение этих разрешений или запуск sudo для установки драгоценных камней, но я не рекомендую это делать. Мой любимый менеджер версий Ruby - asdf, на который стоит взглянуть. Вы установите ядро и рубиновый плагин.
Это должно приблизить вас. Если вы видите, что что-то еще не так, опубликуйте сообщение об ошибке.
В macOS Catalina очень разные ограничения разрешений, поэтому я подозреваю, что это не сработает.
OP указал macOS High Sierra в исходном вопросе. Мне еще не приходилось делать это на macOS Catalina, но вы правы, шаги (и пути), вероятно, не совсем одинаковы (но должны быть похожи)
Каталина внесла серьезные изменения в защиту системных файлов. Я даже больше не буду возиться с этим; Это не стоит усилий, когда у нас есть так много других способов добавить наши системы разработки сейчас.
Переустановка ОС кажется очевидным ответом. Почему ты не хочешь этого делать? В качестве альтернативы, если у вас есть резервная копия, восстановите ее до того состояния, в котором она была до того, как вы внесли изменения, которые хотите отменить. Я не вижу у тебя особого выбора.