На этот вопрос уже есть ответ здесь:
Я всегда использовал MacPorts для установки и поддержки своих компиляторов GCC и других программ. Теперь я слышал о Fink и Homebrew. Кажется, что эти две утилиты завоевывают популярность в сообществе Mac, но я не понимаю разницу между ними.
В чем основное отличие MacPorts, Fink и Homebrew? Есть ли разница в качестве или производительности?
Ответы:
Финк был вокруг по крайней мере с 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 и тому подобное, что просто плачет от неприятностей.
источник
Я бы сказал, что основными различиями являются:
провидение, исход и метод распределения.
Самая важная деталь для вас - проверить, содержит ли выбранная вами система пакет (ы) для нужного вам программного обеспечения. Количество пакетов примерно: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.
/opt/local
которые, вероятно, не будут затронуты другими установочными пакетами или обновлениями системы.dpkg
аapt-get
главное преимущество заключается в том, что вы можете надежно находить бинарные пакеты ... при условии, что у вас есть апстрим пакет репозиторий, содержащий бинарные файлы для вашей текущей версии ОС. Он также вышел из базы пользователей Darwin, но, вероятно, более популярен среди тех, кто пришел из Debian Linux [для Mac или PPC], ищущих немного более стабильную поддержку оборудования ... пока это продолжалось. Он устанавливает пакеты/sw
по причинам, не перезаписывающим или перезаписывающим то, что могут установить другие установщики. Также кое-что о путях поиска компилятора и по умолчанию,PATH
содержащих/usr/local/bin
уже./usr/local
Я думаю, что это было запущено и является более новым, чем другие. Я лично обнаружил, что использовал этот наиболее часто, потому что мне редко нужны взаимозависимые пакеты, и мне неясно, насколько хорошо Mac Homebrew поддерживает его. Homebrew стремится заставить вас использовать более подходящие менеджеры пакетов для программного обеспечения, которое происходит из тесно связанного менеджера, такого как cpan, gems и тому подобное./
но создает и поддерживает пакеты/pkg
. Там, вероятно, много пакетов (например, 12 КБ), и около 20% могут не скомпилироваться, либо последняя версия исходного кода может не обновиться с последним поддерживаемым патчем. Вот почему бинарные пакеты мне больше нравятся в таких системах.Я также использовал perlbrew, который является своего рода homebrew для
perl
приложений, встроенных в perl, и некоторых зависимостей. В основном это хороший способ поддержки нескольких версий perl, и он удобно устраняет необходимость в других, более общих пакетных системах (для своих целей). Но, конечно, у этого также есть cpan и cpanminus .Вы можете найти похожие менеджеры для своей собственной мини-среды (например, vundle для vim или gem для ruby, npm для node.js, pypm или pip для python, встроенные в go
go install
... и т. Д.?)источник
Fink и MacPorts являются прямыми конкурентами в том, что они устанавливают ортогональную систему. Финк потерял значительную долю в MacPorts несколько лет назад. Я не совсем уверен, почему сейчас, но MacPorts справился почти со всем лучше.
У нас меньше причин для ортогональной установки сейчас, когда Mac OS X стала менее сумасшедшей. Brew был создан специально для лучшей интеграции с Mac OS X, что делает его более легким и менее ортогональным, а также потому, что Rubyist переписывает все.
На практике MacPorts немного сложнее, но MacPorts почти всегда работает, в то время как Brew проще, но с большей вероятностью наталкивается на кирпичную стену.
Задайте себе эти вопросы:
Любые ответы «да» предполагают, что вы должны выбрать MacPorts. Brew требует меньше усилий, если вы устанавливаете относительно небольшое количество распространенных пакетов, но Brew также не справится со сложностями. Brew загрязняет,
/usr/local
что может потребоваться для ручной установки. На самом деле, есть более подробные аргументы для MacPorts, но опять же они, вероятно, не применимы, если вы ответили «нет».И наоборот, если вы ответили «да», но ваш основной компьютер работает под управлением Linux, а ваш Mac - всего лишь игрушка, работающая под минимальным программным обеспечением Linux, то на самом деле вы могли бы добиться большего успеха с Brew.
источник
Но, как примечание, ничего, связанного с 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.
источник