Доморощенный против Финка против Макпорта?

23226
zengr

Я использую Fink для установки приложений Unix на мой Mac, я только что наткнулся на Homebrew и увидел несколько хороших отзывов о Homebrew.

Итак, мой вопрос:

  1. Какой менеджер пакетов вы, ребята, используете для Mac?
  2. Сейчас я использую Fink, так стоит ли переход с Fink на Homebrew?
  3. Если 2. верно, то почему?
36
Я перешел с Fink на Homebrew, лучшее, что есть в homebrew, это то, что вы можете установить его где угодно, поэтому sudo не требуется. Что я лично не предпочитаю. Есть предложения по поводу макпорта? zengr 13 лет назад 0
После использования brew я чувствую, что есть несколько пакетов, которых там нет. «meld» есть на macports, но не на brew. zengr 13 лет назад 0
теперь предлагается смесь в вареве Antony 11 лет назад 0

3 ответа на вопрос

18
churnd

ИМХО, проблема с Homebrew заключается в том, что он пытается использовать / usr / local так, как никогда не предполагалось: он принадлежит пользователю, отличному от root. Хотя я понимаю, что разработчики homebrew стараются не вмешиваться ни в что другое в / usr / local, ничто другое, что устанавливает в / usr / local, не сделает то же самое для Homebrew. Это может вызвать проблемы, и для меня ... обычно проблемы с разрешениями, которые возникают в результате установки другого программного обеспечения, которое устанавливает разрешения для / usr / local / на основе "как они должны быть". Вы никогда не увидите, чтобы другой пакет программного обеспечения ожидал, что / usr / local / будет принадлежать какому-либо другому пользователю, кроме root, так почему же Homebrew? Почему бы просто не использовать ~/bin?

Также малоизвестный факт о том, почему Fink & MacPorts компилируют свои собственные библиотеки :

Существует несколько причин, по которым MacPorts использует свои собственные библиотеки. Это делает порты более согласованными в разных версиях Mac OS X. Например, если мы можем положиться на openssl 1.0.0 от MacPorts, нам не нужно тестировать каждый порт, для которого требуется ssl, для каждой доступной установки openssl. Программное обеспечение Apple время от времени ломается (например, openssl отказывается собирать со старым zlib, но какое-то время Apple отправляла старые заголовки уязвимой версии zlib). Даже если версии Apple не сломаны, они редко бывают актуальными. Apple имеет привычку не обновлять библиотеки в Mac OS X до тех пор, пока это не станет абсолютно необходимым из-за уязвимости в безопасности.

Недостатки этой политики минимальны: тратить несколько мегабайт, например, на установку Python, практически нечего, если у вас жесткий диск объемом несколько гигабайт, а время, необходимое для создания дополнительных портов, уменьшается с ростом скорости работы компьютеров.

Таким образом, хотя Homebrew быстрее устанавливает то, что вам нужно, у него могут быть и другие плохие побочные эффекты от использования встроенных системных библиотек Apple.

Опять же, я ненавижу копать против Homebrew. Мне нравится программное обеспечение, и я думаю, что оно отлично подходит для некоторых вещей, но оно имеет свои недостатки, как и в настоящее время.

Просто запустите его как root, если права изменились? Это случилось для меня, есть сообщение об ошибке, и я `sudo`. В чем проблема? Daniel Beck 12 лет назад 0
Проблема в том, что, по их мнению, это не так, как это должно быть сделано. Их «рекомендуемый путь» не верен. churnd 12 лет назад 0
Тем не менее, они приводят убедительные доводы против чрезмерного использования sudo. Он просто перестает работать, как только вы начинаете устанавливать свои собственные программы в тот же префикс. Большая часть программного обеспечения может быть установлена ​​в другом месте, так что, возможно, вы сделали это неправильно? Fink и Macports просто создали свою собственную иерархию каталогов, чтобы обойти эту проблему ... Daniel Beck 12 лет назад 0
Нет, я не сделал это неправильно. Практика владения / usr / local обычным пользователем неверна. Вы никогда не увидите этого с любым другим * nix-программным обеспечением. Любой другой программный пакет, который я видел, имеет отношение root: владение колесом к / usr / local. Зачем вообще брать / usr / local? Почему бы не использовать / opt / homebrew и не связывать вещи с / usr / local / bin или / usr / local / lib, если это необходимо (хотя и с sudo)? Дайте пользователю выбор, но не ломайте вещи, если они хотят разделить вещи. Настройте их среду соответственно их выбору. Все мирно сосуществует. Беспроигрышная. churnd 12 лет назад 8
Я знаю об этом, спасибо. Просто используйте другой префикс. В прошлый раз, когда я проверял, префикс был настраиваемым. Значения по умолчанию - это то, что они считают своим обычным пользователем. Для более чем 90% пользователей этого достаточно, поскольку они просто не компилируют и не устанавливают свое собственное программное обеспечение в `/ usr / local`. У них даже нет нескольких учетных записей пользователей, поэтому владение ими не является проблемой и фактически улучшает весь процесс. Daniel Beck 12 лет назад 0
Кроме того, Homebrew можно использовать как root (хотя они советуют против него), что я делал без проблем в течение нескольких месяцев, и имеет brew doctor, который проверяет право собственности и сообщает вам, если некоторые из них установлены по-другому. Это просто то, о чем вам нужно знать, например, о совместном использовании библиотек с OS X или о различном поведении Macports, которое рушит каждую базовую библиотеку. Daniel Beck 12 лет назад 0
Это не просто компиляция / установка. Некоторые упакованные установщики OS X устанавливаются в / usr / local (nmap, juniper vpn и т. Д.) И устанавливают их после того, как homebrew заблокирует разрешения. Речь идет не о том, что, как вы думаете, делают люди (90% ?? о, пожалуйста), а о том, что считается хорошей практикой в ​​Unix-системах. Если он предназначен для запуска от одного обычного пользователя, он находится в `~ / bin`. Я знаю, что доморощенный может быть запущен в разных местах и ​​принадлежит root. Проблема в том, что они настоятельно советуют против этого и предупреждают, что все сломается, если вы это сделаете. Не очень удобный для пользователя. churnd 12 лет назад 0
Опять же, это то, для чего нужен «доктор варения». `~ / bin` работает по той простой причине, что это будет раздражать пользователей, которые уже используют его, по-другому (звучит знакомо?), и тот факт, что не все, что они делают, - это предоставляют двоичные файлы. Им нужна более полная иерархия папок. // То есть вы не думаете, что большинство пользователей, например, Homebrew * не * устанавливают программное обеспечение в `/ usr / local`? Daniel Beck 12 лет назад 0
Также вы упоминаете * что считается хорошей практикой в ​​Unix-системе *. Пожалуйста, объясните отсутствие `/ srv`,` / mnt` и `/ home` в OS X, как указано в FHS. Если у вас есть другая ссылка, которая еще не нарушена собственным соглашением OS X, пожалуйста, поделитесь ею. Daniel Beck 12 лет назад 0
Если бы homebrew использовал `~ / bin` с самого начала, все были бы счастливы, кроме тех, у кого многопользовательские системы, верно? Бессмысленно приводить этот аргумент. В ответ на ваш второй (последний) комментарий, эти места обычно не существуют в системах BSD, а скорее в системах Linux. Оба подпадают под категорию Unix, но являются совершенно разными типами ОС. FHS не распространяется на системы BSD, только на Linux. OS X основана на BSD. churnd 12 лет назад 0
Опять же: `~ / bin` иногда используется * users * для своих собственных программ. Так же, как `/ usr / local`. Что будет лучше с этим? И опять `~ / bin` семантически не обрезается: вам нужно больше, чем двоичные файлы. Или вы также предлагаете использовать `~ / lib`,` ~ / sbin`, `~ / etc`,` ~ / include` и т. Д.? // Относительно файловой системы: Вы делаете веские аргументы против моей ссылки. У тебя есть свой? Daniel Beck 12 лет назад 0
Это становится глупо. Я комментирую в последний раз и оставляю это на этом. Ты противоречишь себе. Весь смысл Homebrew в том, что он использует уже существующие библиотеки, которые уже есть в OS X. Помещение того, что Homebrew устанавливает в `~ / bin`, функционально не отличается от` / usr / local`. Материал, который требуется для запуска (lib, etc, sbin, include), уже есть в среде каждого пользователя по умолчанию в OS X. В этом его «прелесть». churnd 12 лет назад 0
Что касается файловой системы, то не существует стандарта иерархии для систем BSD, таких как FHS, о котором я знаю. Я просто указал, что `/ usr / local` обычно не принадлежит никому, кроме root. Это верно как для BSD, так и для Linux. Хорошо, это было два комментария, но только потому, что он превысил предел. ПЛАВНИК. churnd 12 лет назад 0
@churnd Мне интересно, что Homebrew наконец-то допустил ошибку в этом, и в новой версии, выпущенной неделю или две назад, восстановил разрешения по умолчанию для / usr / local ... битва окончена ... что они сделали с чтобы обойти это, было то, что они поместили свое разрешение user: group в каталоги внутри / usr / local ... но не в / usr / local. лол ... также как Доморощенный, но они всегда были не правы в этом одном вопросе. oemb1905 7 лет назад 0
15
Jacob

Я предпочитаю домашний напиток из-за его простоты / скорости - мои инструменты, кажется, обновляются быстро в настоящее время.

Это самый безболезненный инструмент управления пакетами на основе исходного кода, который я когда-либо использовал, и разработка кажется довольно активной. Что еще тебе надо?

(Да, все недостающие приложения)

Кроме того, редактирование и исправление формул * очень * легко с домашним пивом. bastibe 13 лет назад 1
6
mefepe

Я использую Fink и Macports. Оба работают как шарм.

Но я мог бы порекомендовать Homebrew не очень опытному пользователю, который просто мигрирует из окон, из-за его очевидной простоты.

Еще один голос за доморощенного. Наконец, менеджер пакетов, который не хочет устанавливать совершенно новую ОС. Paul Robinson 13 лет назад 3
Как может простота пойти против Homebrew для опытного пользователя? Я никогда не использовал Fink, но Macports не легкая задача, даже для новичков Antony 11 лет назад 1
сейчас 2016 год и около 2010 года я перестал использовать fink, потому что он просто перестал работать на меня. Я начал использовать macports, и он все еще отлично работает. Никогда не пробовал homebrew, из-за его склонности делать странные не-юниксовые вещи (философски) с sudo и / usr / local (короче говоря: для установки пакетов требуется sudo, и он не должен использовать / usr / local), а macports может работать лучше для моих старых маков. Пока что мой mac работает так же, как моя оболочка linux, благодаря macports, что является целью. michael 7 лет назад 0