Как правильно установить brew и gems на OS X? - PullRequest
0 голосов
/ 08 августа 2011

Кажется, что каждый раз, когда я хочу установить что-то локально на Snow Leopard, я сталкиваюсь с вопросом о том, нужно ли устанавливать в / usr / local или запускать команды установки с использованием sudo.Я читал противоречивые советы по этому вопросу, в том числе на stackoverflow

Ошибки установки Gem с возможностью записи и PATH (используйте sudo) Проблема разрешения установки gem (не используйте sudo вкомментарии)

Должен ли я устанавливать формулу brew и гемы с помощью sudo?Как можно избежать ошибок и предупреждений при установке без прав sudo?

например, при запуске обновления gem:

WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
      /usr/bin aren't both writable.
WARNING:  You don't have /Users/luke/.gem/ruby/1.8/bin in your PATH,
      gem executables will not run.

Я не разработчик ruby, но хочу использовать sass и compass, поэтому установка rvm кажется излишней.Будет ли просто добавление рубина к моему пути решить все эти проблемы?Я также где-то видел, что я должен chown / usr / local.Было бы хорошо, наконец, докопаться до сути.

Ответы [ 2 ]

3 голосов
/ 09 августа 2011

Вы оказываете себе плохую услугу, отказываясь от RVM. Я не думаю, что это вообще излишне, за то время, которое потребовалось бы вам, чтобы написать этот SO вопрос, RVM установил бы И вы бы также закончили установку Ruby (1.8 или 1.9, в зависимости от того, что вы предпочитаете). Тогда ваши предупреждения о самоцветах и ​​проблемы с sudo не были бы проблемой. В наши дни почти все в сообществе ruby ​​используют RVM (если только они не на Windows), включая, в некоторых случаях, в производстве .

Сказав все это, Homebrew (который вы упомянули) имеет вики-страницу , в которой говорится о sudo, установке гемов на /usr/local, rubygems и т. Д. Вы могли бы сделать хуже, чем следовать их советам .

1 голос
/ 08 августа 2011

Я предпочитаю использовать sudo, поэтому я уверен, что программы, работающие с обычными привилегиями, не могут связываться с общесистемными файлами. Я также обычно работаю как пользователь без прав администратора по той же причине. Это означает, что я защищен от повреждения системы даже случайно, но когда я решаю установить что-то на /usr/local, мне нужно использовать sudo, поэтому я делаю это только тогда, когда я уверен, что это не приведет к беспорядку , Для вещей, в которых я не уверен, или которые я просто хочу попробовать и т. Д., Я устанавливаю префикс в моем доме.

У других людей менталитет более однопользовательский, и они отбирают себе /usr/local. Они в порядке с риском испортить его содержимое при обычном использовании: например, если они попытаются установить что-то к префиксу у себя дома, но конфигурация не работает, она может установить некоторые части в /usr/local без особого как предупреждение. OTOH, когда они устанавливаются на /usr/local, они уверены, что они не повлияют на остальную часть системы, только на /usr/local и их собственный дом.

Но тогда /usr/local является просто расширением их домашнего каталога, поскольку он имеет такое же право собственности и те же привилегии. Они могут также установить на ~/usr/ и добавить ~/usr/bin к своему PATH, что я и делаю, когда хочу установить что-то для себя.

Вероятно, наилучшим способом было бы chgrp /usr/local для какой-то специальной группы и sudo для специального пользователя в этой группе, который может писать в этот каталог, но не делать другие случайные вещи sudo. Может быть, когда-нибудь я смогу настроить его таким образом. А пока я предпочитаю использовать sudo, когда я хочу установить на /usr/local. Преимущество использования менеджера пакетов, такого как homebrew, заключается в том, что формулы были проверены, чтобы гарантировать их правильную установку, и их можно легко удалить.

...