MacPorts против Fink против Homebrew [дубликат]


39

На этот вопрос уже есть ответ здесь:

Я всегда использовал MacPorts для установки и поддержки своих компиляторов GCC и других программ. Теперь я слышал о Fink и Homebrew. Кажется, что эти две утилиты завоевывают популярность в сообществе Mac, но я не понимаю разницу между ними.

В чем основное отличие MacPorts, Fink и Homebrew? Есть ли разница в качестве или производительности?


3
Также есть Рудикс .
12:00

4
Этот старый вопрос отвечает вашим потребностям?
bmike

Ответы:


30

Финк был вокруг по крайней мере с 2001 года Финк и MacPorts менеджеры пакетов , которые хотят быть «ортогональными» к системе, то есть, они устанавливают свою собственную версию python, perl, библиотеки, компиляторы и т.д. в собственных деревьев (/ Sw для Fink, / opt / local для MacPorts). Причина этого заключается в том, что они не контролируют то, что Apple делает со своим программным обеспечением, и оно иногда ломало вещи, когда Apple обновляла свои собственные продукты.

Насколько я понимаю, Homebrew хочет быть более «интегрированным» с системой, использует библиотеки, предоставляемые Apple, и устанавливает свои вещи в /usr/local/binдругие стандартные папки. Я предполагаю, что это означает, что выбор программного обеспечения более ограничен для Homebrew, я не могу себе представить, что можно было бы установить KDE вместе с ним, но я этого не пробовал.

Один момент для Fink против MacPorts: несколько лет назад проект Fink предоставил бинарные пакеты; то есть вы можете загрузить и установить пакеты, не компилируя их самостоятельно. Его менеджер пакетов по-прежнему обладает такой способностью, только в течение долгого времени не было доступных двоичных файлов. Я не знаю, изменилось ли это между тем.

Короче говоря, без бинарных вещей Fink и MacPorts очень похожи. У них должно быть больше пакетов, чем у Homebrew, в то время как Homebrew должен занимать меньше места на диске по причинам, указанным выше. Что касается качества: я никогда не устанавливал Homebrew, а между Fink и MacPorts я обычно предпочитаю тот, который я сейчас не использую.

Так что если вы довольны MacPorts, просто оставайтесь с ним.

PS Причина, по которой я никогда не пробовал Homebrew, заключается в том, что я использую несколько скомпилированных пакетов. Они обычно также устанавливаются в / usr / local / bin и тому подобное, что просто плачет от неприятностей.


Я думал, ты ошибаешься в KDE, но, конечно, это правда. Когда-то у него были пакеты для него, но очевидно, что в построении KDE есть что-то несовместимое с иерархией Homebrew. Надеюсь, это когда-нибудь будет исправлено.
Эхристоферсон

1
@echristopherson Так было когда-то KDE? Сюрприз для меня. Но KDE кажется довольно хрупким, я однажды установил его с помощью Fink, и при следующем обновлении вся установка была испорчена; так что можно ожидать, что он еще более хрупок с Homebrew. Но если они когда-нибудь сделают это правильно, я заберу все, что сказал.
Персиваль Улисс

4
Установка Homebrew в / usr / local - та же самая причина, по которой я тоже не пользуюсь. Придерживаясь традиционной философии Unix, только я должен помещать вещи в / usr / local. Менеджер пакетов должен управлять другим префиксом.
Джейсон

Лично я использую MacPorts, но в последний раз я проверял (что недавно) у Fink была гораздо большая коллекция доступных пакетов.
HairOfTheDog

1
@Jason Это также верно для однопользовательской машины? Я только что установил Homebrew и надеюсь, что не пожалею об этом. Однако я не очень понимаю, как Apple обрабатывает права root и пользователей с правами администратора. Я единственный пользователь в моей системе.
Хазиз

8

Я бы сказал, что основными различиями являются:
провидение, исход и метод распределения.

Самая важная деталь для вас - проверить, содержит ли выбранная вами система пакет (ы) для нужного вам программного обеспечения. Количество пакетов примерно: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports , ранее порты Darwin, похоже, представляют собой систему портов в стиле BSD, такую ​​как pkgsrc, которая получает исходный код, исправляет его, собирает и устанавливает его. Если он очень похож на pkgsrc, он сделает это с помощью сценариев оболочки. Раньше он полагался на инструменты, предоставляемые XCode, но это стало вызывать проблемы, поэтому теперь он также может запускать gcc. Кроме того, есть несколько бинарных пакетов, но вы не всегда можете найти последнюю версию для вашей системы. Он пришел от Darwin, BSD Apple с открытым исходным кодом, основанного на ядре OS X, который прекратил распространение. Он устанавливает пакеты, /opt/localкоторые, вероятно, не будут затронуты другими установочными пакетами или обновлениями системы.
  • Fink , re: finches, являющийся предметом исследования Чарльза Дарвина, представляет собой систему пакетов, основанную на Debian Package Manager, что означает, что она использует возможности, dpkgа apt-getглавное преимущество заключается в том, что вы можете надежно находить бинарные пакеты ... при условии, что у вас есть апстрим пакет репозиторий, содержащий бинарные файлы для вашей текущей версии ОС. Он также вышел из базы пользователей Darwin, но, вероятно, более популярен среди тех, кто пришел из Debian Linux [для Mac или PPC], ищущих немного более стабильную поддержку оборудования ... пока это продолжалось. Он устанавливает пакеты /swпо причинам, не перезаписывающим или перезаписывающим то, что могут установить другие установщики. Также кое-что о путях поиска компилятора и по умолчанию, PATHсодержащих /usr/local/binуже.
  • Homebrew - это своего рода концепция портов, но написанная на ruby. Он не из автономного мира ОС и был предназначен для пользователей Mac OS X (остальные тщательно используются и тестируются тем же). По состоянию на середину 2014 года он пытается построить практически каждый пакет (они называют их формулой), хотя некоторые из них доступны в двоичной форме, называемой бутылками, и вы можете создать хранилище бутылок, чтобы поделиться в своей социальной группе, если вы склонны к полу -стандартизация вас и цепочек инструментов вашего друга (то же самое для других систем). С другой стороны, он использует столько библиотек, сколько у вас, вероятно, уже есть у Apple. Я думаю, вам не нужен Xcode, чтобы он работал в большинстве случаев, но он «поддерживает и рекомендует» его. Вы можете установить каждый элемент в своем собственном префиксе,/usr/localЯ думаю, что это было запущено и является более новым, чем другие. Я лично обнаружил, что использовал этот наиболее часто, потому что мне редко нужны взаимозависимые пакеты, и мне неясно, насколько хорошо Mac Homebrew поддерживает его. Homebrew стремится заставить вас использовать более подходящие менеджеры пакетов для программного обеспечения, которое происходит из тесно связанного менеджера, такого как cpan, gems и тому подобное.
  • pkgsrc будет доступен для Mac OS X, имеет двоичные пакеты и поставляется из NetBSD, которая поддерживает его и, в свою очередь, основывает его на системе портов FreeBSD. NetBSD была настолько сосредоточена на переносимости между архитектурами, что, вероятно, была лучшей системой портов-кандидатов, чтобы начать поддерживать и другие платформы, которые у нее есть. В моем описании он похож на Macport, но я не использовал его (за исключением NetBSD), и я думаю, что он устанавливается, /но создает и поддерживает пакеты /pkg. Там, вероятно, много пакетов (например, 12 КБ), и около 20% могут не скомпилироваться, либо последняя версия исходного кода может не обновиться с последним поддерживаемым патчем. Вот почему бинарные пакеты мне больше нравятся в таких системах.

Я также использовал perlbrew, который является своего рода homebrew для perlприложений, встроенных в perl, и некоторых зависимостей. В основном это хороший способ поддержки нескольких версий perl, и он удобно устраняет необходимость в других, более общих пакетных системах (для своих целей). Но, конечно, у этого также есть cpan и cpanminus .

Вы можете найти похожие менеджеры для своей собственной мини-среды (например, vundle для vim или gem для ruby, npm для node.js, pypm или pip для python, встроенные в gogo install ... и т. Д.?)


Количество пакетов вводит в заблуждение, потому что Homebrew преднамеренно не включает определенные классы пакетов - см. Больше на apple.stackexchange.com/questions/32724/…
Дэн Даскалеску

5

Fink и MacPorts являются прямыми конкурентами в том, что они устанавливают ортогональную систему. Финк потерял значительную долю в MacPorts несколько лет назад. Я не совсем уверен, почему сейчас, но MacPorts справился почти со всем лучше.

У нас меньше причин для ортогональной установки сейчас, когда Mac OS X стала менее сумасшедшей. Brew был создан специально для лучшей интеграции с Mac OS X, что делает его более легким и менее ортогональным, а также потому, что Rubyist переписывает все.

На практике MacPorts немного сложнее, но MacPorts почти всегда работает, в то время как Brew проще, но с большей вероятностью наталкивается на кирпичную стену.

Задайте себе эти вопросы:

  • Вы используете много экосистемных инструментов Linux?
  • Вам нужно несколько версий?
  • Много ли вы экспериментируете с новыми инструментами?
  • Используете ли вы математические / научные инструменты / библиотеки или другие необычные инструменты?

Любые ответы «да» предполагают, что вы должны выбрать MacPorts. Brew требует меньше усилий, если вы устанавливаете относительно небольшое количество распространенных пакетов, но Brew также не справится со сложностями. Brew загрязняет, /usr/localчто может потребоваться для ручной установки. На самом деле, есть более подробные аргументы для MacPorts, но опять же они, вероятно, не применимы, если вы ответили «нет».

И наоборот, если вы ответили «да», но ваш основной компьютер работает под управлением Linux, а ваш Mac - всего лишь игрушка, работающая под минимальным программным обеспечением Linux, то на самом деле вы могли бы добиться большего успеха с Brew.


2

Но, как примечание, ничего, связанного с Apple OS X, не установилось бы в / usr / local / bin. Они используют / usr / lib, / usr / bin за кулисами, а фреймворки упаковываются в / Library / Frameworks, а вещи, которые вы устанавливаете самостоятельно через обычный Unix ./configure, make, make install, будут использовать / usr / local / bin и т. Д. и такие утилиты, как MacPorts, будут использовать / opt / и, возможно, пакетные фреймворки для вашей личной ~ / Library / Frameworks /.

Я рекомендую оставаться с MacPorts, если вы к этому привыкли. Основное отличие состоит в том, что MacPorts использует систему, которая больше похожа на настоящую реализацию дерева портов Unix / BSD с портами из FreeBSD, в то время как Fink использует приложения, портированные из архивов Linux Debian, и использует ту же систему диспетчера пакетов, что и Linux Debian.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.