Беги ' sudo gem list --local
' и ' gem list --local
' дают разные результаты. Мой путь к драгоценному камню установлен в мою домашнюю папку и содержит только драгоценные камни из ' gem list --local
'.
Вероятно, нехорошо устанавливать драгоценные камни в разные каталоги на моем компьютере, поэтому следует ли мне устанавливать путь к гемам по-другому и всегда ли использовать sudo
при установке чего-либо?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile пуст.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
источник
источник
sudo gem install rails
вместоgem install rails
.sudo
заряженный пистолет направлен к вашей ноге. Использовать его, не понимая, что он делает и как может повлиять на вашу систему, - все равно что нажимать на курок с закрытыми глазами. Вы можете прострелить себе ногу, а можете и нет, но в любом случае вы не хотите рисковать, если не знаете, как исправить ущерб. Использованиеsudo
записи в системный Ruby, который в Mac OS был установлен Apple для собственных нужд. Мы можем использовать это вместе, но изменение неправильной вещи может сломать их код. Вот почему мы устанавливаем из исходников или используем что-то еще для установки, где мы можем безопасно настроить это.Ответы:
В отличие от всех других сообщений, я предлагаю НЕ использовать
sudo
при установке драгоценных камней.Вместо этого я рекомендую вам установить RVM и начать счастливую жизнь с портативными домами из драгоценных камней и другой версией Ruby, которые живут под одной крышей.
Для непосвященных из документации :
Причина, по которой установка гемов
sudo
хуже, чем простоgem install
потому, что они устанавливаются для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ какroot
. Это может быть хорошо, если вы единственный человек, использующий машину, но в противном случае это может вызвать странности.Если вы решили, что хотите уничтожить все свои драгоценные камни и начать заново, гораздо проще и безопаснее сделать это как пользователь без полномочий root.
Если вы решите, что хотите использовать,
RVM
используйтеsudo
вызовет всевозможные странности, потому что каждая версия Ruby, которую вы устанавливаете,RVM
имеет свой собственный GEM_HOME.Кроме того, хорошо, если вы можете сделать свою среду разработки как можно ближе к производственной среде, а в производственной среде вы, скорее всего, будете устанавливать gems как пользователь без полномочий root.
источник
Вы также можете установить драгоценные камни в своей локальной среде (без
sudo
) с помощьюЯ рекомендую это, чтобы вы не вмешивались в конфигурацию системного уровня, даже если это однопользовательский компьютер.
Вы можете проверить, куда идут драгоценные камни, посмотрев на них с помощью
gem environment
. В моем случае это "~ / .gem / ruby / 1.8".Если вам нужны двоичные файлы из локальных установок, добавленные в ваш путь, вы можете добавить что-нибудь в свой bashrc, например:
if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi
(с http://guides.rubygems.org/faqs/#user-install )
источник
rake install
и чтобы исправить sudo isse, мне пришлось вручную исправить/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rb
добавление--user-install
там. Не могу найти лучшего решения, потому что похожеrake install
не принимает дополнительные параметры.А еще лучше, вставьте
--user-install
свой файл ~ / .gemrc, чтобы вам не приходилось каждый раз вводить егоgem: --user-install
источник
Если вы
добавьте в свой
.bash_profile
:export GEM_HOME=/Users/‹your_user›/.gem export PATH="$GEM_HOME/bin:$PATH"
Откройте новую вкладку в Терминале ИЛИ,
source ~/.bash_profile
и все готово!источник
Связанный (для пользователей сборщика), если вам нужна более легкая альтернатива RVM, которая поместит все в хорошо известный каталог для конкретного пользователя, я рекомендую использовать:
если вы хотите установить драгоценные камни в то же место, что
установит их
.gem/ruby/RUBYVERSION
в вашем домашнем каталоге. (См. Другой комментарий по этому вопросу--user-install
.)Это сделает драгоценные камни видимыми
gem list
, удаляемыми черезgem uninstall
и т. Д. Без необходимостиsudo
доступа. Запускаемые скрипты, установленные гемом или сборщиком, можно поместить в ваш путь, добавивк вашему
$PATH
.gem
сам сообщает вам об этом, если он не установлен, когда вы это делаетеgem install --user-install
.источник
установит ваш гем глобально , то есть он будет доступен для всех контекстов пользователя.
источник
Вы можете установить драгоценные камни в определенную папку (например, vendor /) в вашем приложении Rails, используя:
источник
Установка драгоценных камней Ruby на Mac - частый источник путаницы и разочарования. К сожалению, большинство решений являются неполными, устаревшими и дают плохие советы. Я рад, что в принятом здесь ответе говорится, что НЕ использовать
sudo
, что вам никогда не нужно делать, особенно если вы не понимаете, что он делает. Хотя я использовал RVM много лет назад, я бы рекомендовалchruby
в 2020 году.В некоторых других ответах здесь представлены альтернативные варианты установки драгоценных камней, но в них не упоминаются ограничения этих решений. Чего не хватает, так это объяснения и сравнения различных вариантов, а также того, почему вы можете выбрать один из них. Я попытался охватить наиболее распространенные сценарии в своем подробном руководстве по установке драгоценных камней Ruby на Mac .
источник