Каковы плюсы и минусы для MacPorts, Fink и Homebrew?

154

Я только что перешел с Ubuntu Linux на Mac, и все новое, и я заново изучаю много вещей.

В Linux у меня была отличная способность управлять пакетами программного обеспечения. Я нашел Google для альтернативы и нашел информацию о MacPorts, Fink и Homebrew.

Я буду использовать этот компьютер в первую очередь для разработки приложений на Ruby on Rails.

Итак, чем они отличаются? Каковы плюсы и минусы? Какой из них лучше обслуживается и имеет больше пакетов?

JoaoHornburg
источник
5
Я отредактировал ваше название, чтобы оно соответствовало вашему реальному вопросу. На большинстве сайтов Stack Exchange неодобрительно относятся к вопросу о «лучших».
Лоик Вольф
1
Зачем вам что-то из этого, не будет ли достаточно драгоценных камней в рубине?
user151019
подробнее о том, почему дубликаты не всегда плохи: apple.stackexchange.com/questions/11461/… также есть еще несколько альтернатив
cregox
Никогда не использовал его сам, но, возможно, сравнение с pkgin также было бы полезно.
Деннис

Ответы:

118

Определенно доморощенный. Я начал с Fink, затем переключился на MacPorts (счастливее), затем Homebrew (намного, намного счастливее). Вот мои причины для использования каждого (профессиональный список, если хотите):

доносчик

  • Основанный на Apt - чувствую себя как дома, если вы из среды Debian
  • Бинарные пакеты - пакеты доступны в виде бинарных файлов, поэтому не требуется много времени компиляции. Практически, хотя я обнаружил, что предварительно скомпилированные двоичные файлы всегда были устаревшими, и мне все равно приходилось компилировать файлы для моей системы
  • Достойный выбор пакетов

MacPorts

  • Самый большой выбор пакетов / портов
  • Вообще очень актуально
  • Хорошие варианты системы, которая позволяет настроить сборку
  • Простые и интуитивно понятные файлы портов

Homebrew

  • Очень актуально
  • Максимальное использование возможностей OS X. В отличие от Fink или MacPorts, вам не нужно собирать / устанавливать ruby ​​и библиотеки с нуля, просто для установки небольшого инструмента на основе Ruby.
  • Установка в /usr/localтак что не нужно PATHникуда изменять
  • Все принадлежит пользователю, поэтому никакие пакеты не требуют потенциально рискованного корневого доступа для установки
  • Каждый установленный пакет аккуратно помещается в отдельный погреб, поэтому у вас нет случайных файлов по всей вашей системе, только символические ссылки из bin, man и т. Д.
  • Смешно легко создавать свои собственные файлы формул (т.е. дескрипторы пакетов)
  • Так как вы из рубинового фона, еще один плюс в том, что все написано в ruby, и все формулы являются простыми скриптами ruby.

pkgin

  • Очень актуально
  • Более быстрая установка благодаря предварительно скомпилированным двоичным файлам
  • Все установлено в / opt / pkg /
  • при поддержке сообщества pkgsrc и Joyent
  • Известно, что работает на NetBSD, DragonFly BSD, Solaris, Debian, Mac OS X, Minix

https://pkgsrc.joyent.com/install-on-osx/

http://pkgin.net/

Кли
источник
33
Обратите внимание, что для home-brew вы можете утверждать, что «Установка в / usr / local» и «использование того, что поставляется с OS X» - проблемы - они являются двумя основными причинами, по которым я использую другую систему упаковки
user151019
5
Учитывая, что / usr / local / bin не находится в пути Mac OS X по умолчанию, вам наверняка придется изменить PATH - вам нужно сделать это только один раз, поскольку brew вставляет в это место ссылки на все новые контейнеры, которые он устанавливает (кроме "бочонков", но это шум здесь).
Терри N
5
@ jedd.ahyoung Я предпочитаю macports, который вставляет / opt / local (fink вставляет / sw)
user151019
5
К сожалению, homebrew, похоже, все больше и больше отвергает некоторые варианты использования и API, поскольку сопровождающие выражают вопиющее пренебрежение к пользователям. Macports выглядит как лучшая альтернатива, так как эта тенденция, кажется, тревожит доморощенных. Homebrew, в свое время, был все о помощи пользователю, но постепенно отошел от этого.
GDP2
5
Я должен согласиться с @ GDP2. Я новый пользователь Mac из Linux. У разработчиков в пивоварении очень плохое отношение. Можете ли вы поверить, что когда я публикую этот комментарий, в github brew есть только 13 проблем? Они не хотят слушать пользователей. Они не хотят никаких проблем. Они просто игнорируют любые проблемы, которые вы открыли, и немедленно их закрыли. Я никогда не видел такого отношения ни в одном из проектов github. Как новый пользователь, я использовал brew в течение нескольких месяцев, и сегодня я думаю переключиться на другого и нашел этот вопрос. Опыт использования brew - худший, который я когда-либо имел в своей жизни
sgon00
57

MacPorts

Он более независим от Mac OS X, это означает, что MacPorts просто игнорирует многие системные библиотеки и программы, которые уже доступны в Mac OS X, и вместо этого извлекает свою собственную , что может быть медленнее, если устанавливаемая утилита требует некоторого набора больших библиотеки и программное обеспечение.

Но такой выбор безопаснее, поскольку на установленные вами пакеты меньше влияет процедура обновления / обновления системы Apple.


Homebrew

Он больше зависит от существующих установленных пакетов Mac OS X, поэтому это ускорит установку пакетов и минимизирует избыточные библиотеки.

Но риск установки пакетов может быть нарушен из-за обновления / обновления системы Apple.

Итак, это два разных вида компромисса.

Кроме того, Homebrew по умолчанию принимает / usr / local , что некоторым людям не нравится, потому что это каким-то образом конфликтует с традицией Unix и может вызвать проблемы, если вы уже установили что-либо там (MySQL и т. Д.).


Помимо этих различий, учитывая пакеты, которые могут предложить эти два, вы можете проверить с помощью этих двух команд, если у вас уже установлен MacPorts / Homebrew, которые показывают вам пакеты, которые они в настоящее время предоставили:

port list | wc -l
brew search | wc -l

И вы обнаружите, что у MacPorts гораздо больше пакетов, чем у Homebrew.

(19399 против 3583 13 мая 2016 г.)

YaOzI
источник
17
В качестве замечания о различном количестве пакетов: Homebrew определенно не включает пакеты для языков программирования, которые имеют свою собственную систему пакетов (rubygems / pip / cpan…) или для программного обеспечения, для которого доступен, возможно, более подходящий установщик OS X (MacTeX) , Кроме того , дубликаты и более старые версии не в репо по умолчанию , но включают в альтернативных ди РЕПО. Сравните это с macports, который, например, содержит порт IPython для всех включенных версий Python. Это своего рода другая философия, которая естественным образом увеличивает количество пакетов в macports.
Дебильски
2
Отличная ссылка! terrychay.com/article/macports-vs-homebrew.shtml Спасибо!
Джефф Берджес
@YaOz, конечно, вы можете сменить домашний напиток на что-то другое, кроме /usr/local?
Pacerier
41

Просто чтобы добавить некоторые мои собственные мысли, которые кажутся правдоподобными, по крайней мере, в конце 2014 года.

Доморощенный, по состоянию на пару лет назад, безусловно, имеет преимущество в плане разума. Вы найдете множество блогов, в которых люди говорят о том, насколько они счастливее с Homebrew - обычно из-за того, что «MacPorts тянет во всем мире» против «Homebrew» использует то, что у вас уже есть ».

Тем не менее, IMO, MacPorts теперь другой зверь, чем это было пару лет назад. Когда я впервые переключился на OS X и использовал MacPorts, философия MP была действительно разочаровывающей, потому что почти все было построено из исходного кода. Новая установка была особенно болезненной / медленной. Однако за прошедший год или около того, основываясь исключительно на моих собственных впечатлениях, кажется, что 90% пакетов MP являются двоичными файлами, и поэтому установка сейчас действительно очень быстрая. Из того, что я понял, Homebrew также движется в этом направлении с «Бутылками», но у меня складывается впечатление, что большинство вещей, которые вы устанавливаете через HB в данный момент, будут скомпилированы из исходного кода.

Таким образом, хотя бы для того, чтобы предложить противоположное мнение, MacPorts, кажется, на самом деле является «более быстрым» вариантом в наши дни. Однако мнения большинства людей о МП, похоже, основаны на опыте, полученном в 2011-12 годах, и поэтому не принимают это во внимание. Возьмите это с небольшим количеством соли, хотя, поскольку я не обычный пользователь HB (и довольно болезненно использовать оба рядом).

Я думаю, что у HB есть преимущества, которые означают, что он, вероятно, "выиграет войну" в долгосрочной перспективе, хотя

  • HB - это все Ruby, тогда как MacPorts и его пакетные формулы написаны на TCL, который .... не совсем популярный язык сценариев. Тем не менее, чертовски просто создать свой собственный файл порта.
  • HB базируется на GitHub и, таким образом, выглядит гораздо более гостеприимным для новых участников, тогда как MacPorts размещает свой собственный SVN-репозиторий где-то, я думаю, - который в основном отражает разные возрасты обоих проектов, я полагаю.
  • Как уже упоминалось, общее согласие заключается в том, что MacPorts был заменен HB &, правильно или неправильно, что привлекает больше людей к нему.

В остальном YaOZl & KLy довольно хорошо рассмотрели основное различие в терминах sudo, зависимостей и т. Д. Лично я нахожу, что MacPorts иногда приводит к некоторым головным болям с точки зрения других программ, не ожидающих, что что-то будет в них /opt/local, объектов , устанавливаемых с правами root и т. Д., И есть некоторые вещи, которые лучше всего не устанавливать с MacPorts (например, вы можете установить Rails через MacPorts, но вы бы с ума сошли, если бы не устанавливали его через обычное управление Ruby в Gem). Кроме этого, хотя я большой поклонник философии MacPorts по созданию собственного маленького мира и не полагаясь на какую-то заранее упакованную библиотеку OS X - когда она работает, и в большинстве случаев это так, все до предела просто. Что вы действительно хотите от диспетчера пакетов? И, как я уже говорил, на данный момент довольно быстро настроить большинство вещей.

Надеюсь, что-то из этого было полезно.

Хэл
источник
«Как уже упоминалось, общее мнение заключается в том, что MacPorts был заменен HB &, правильно или неправильно, что привлекает больше людей к нему". ... это звучит как очень поверхностное утверждение ... быть популярным против обеспечения качества не то же самое и ни в коем случае не подразумевать, что второе "вытесняется" первым.
Дмитрий Зайцев
3

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

Есть несколько очень популярных вопросов о первых двух пунктах.

Nemo
источник
Это был мой опыт установки ImageMagick на 10.6; заваривать было очень легко, но не включал делегата JP2. imagemagick.org/script/binary-releases.php
Nemo
2
brew и macports просто нуждаются в инструментах командной строки Xcode, поэтому то же самое здесь.
user151019
@ Марк Я не уверен, что ты имеешь в виду, но Brew отлично сработал для меня без Xcode.
Немо
2
Вам понадобится компилятор для brew и MacPorts, который можно установить с помощью инструментов командной строки Xcode. Вам не понадобится приложение Xcode .
nohillside
1
Я забыл, как уродливо синхронизировать эту вещь, когда за брандмауэром ... да!
rogerdpack