4

После новой установки OS X я решил правильно установить менеджер пакетов python. Поэтому я начал искать в Google и нашел доморощенный напиток лучшим способом. Теперь у меня есть два вопроса:

  • из доморощенного FAQ:

Доморощенный предназначен для работы без использования sudo.

Однако скрипт установки запрашивает пароль. Это потому, что реальный пользователь получает права на чтение, запись, выполнение usr/local ... dirs в качестве члена группы администратора. Таким образом, вместо того, чтобы спрашивать sudo каждый раз, доморощенный спрашивает об этом один раз. Тем не менее, правила нарушены, так как вы должны использовать sudo да или да.

Я боялся использовать sudo с python при установке пакетов. Вот почему я решил для доморощенного. Но разве это не то же самое на самом деле?

Если это правда, я считаю небезопасным позволить самодельным программам делать то, что вы хотите, так как у них есть права доступа root.

  • из доморощенного FAQ:

/usr/local/bin уже находится в вашем PATH.

Тогда зачем мне

вставьте каталог Homebrew в верхней части вашего PATH

как сказано в http://docs.python-guide.org/en/latest/starting/install/osx/ ?

Команды выполнения скрипта homebrew выполнены:

/usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

/usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

2 ответа2

2

Ого, кто сказал, что установленные программы имеют права root? sudo используется, чтобы дать вам разрешение на запись в защищенные каталоги, чтобы вы могли устанавливать файлы в системные папки. Права доступа root не магически наследуются устанавливаемыми вами программами. Они устанавливаются как все программы с теми разрешениями, которые они должны иметь. Установка с помощью sudo не повысит права доступа к установленным файлам.

Что касается $PATH , если homebrew установлен в /usr/local/bin и он уже находится в вашем $PATH вам просто не нужно ничего делать.

2

Они говорят поместить /usr/local/bin/ в верхнюю часть вашего $PATH чтобы домашние программы были найдены раньше системных. Например, если вы используете доморощенную версию python, системная версия в /usr/bin/python будет вызываться перед /usr/local/bin/python если /usr/local/bin находится перед /usr/bin в вашем $PATH , даже если /usr/local/bin уже находится в вашем $PATH .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .