В чем разница/использование homebrew, macports или других инструментов установки пакета?

Недавно я перешел на Mac из Ubuntu. Я был разочарован тем, что у Mac нет удобного sudo apt-get в Ubuntu. Я слышал, что я должен использовать доморощенного, но я не совсем уверен, что делает доморощенный или макпорт?

Ответ 1

MacPorts - это путь.

  • Как и @user475443, MacPorts имеет гораздо больше пакетов. С помощью brew вы скоро окажетесь в ловушке, потому что нужная вам формула не существует.

  • MacPorts является родным приложением: C + TCL. Вам совсем не нужен Ruby. Чтобы установить Ruby на Mac OS X, вам может нужен MacPorts, поэтому просто перейдите к MacPorts, и вы будете счастливы.

  • MacPorts действительно стабилен, за 8 лет у меня никогда не было проблем с этим, и все мое ретрансляционное решение Unix на нем.

  • Если вы являетесь разработчиком PHP, вы можете установить последнюю версию Apache (Mac OS X использует 2.2), PHP и все необходимые вам расширения, а затем обновить все с помощью одной команды. Забудьте сделать то же самое с Homebrew.

  • Группы поддержки MacPorts.

    [email protected]:~/ port select --summary
    
    Name        Selected      Options
    ====        ========      =======
    db          none          db46 none
    gcc         none          gcc42 llvm-gcc42 mp-gcc48 none
    llvm        none          mp-llvm-3.3 none
    mysql       mysql56       mysql56 none
    php         php55         php55 php56 none
    postgresql  postgresql94  postgresql93 postgresql94 none
    python      none          python24 python25-apple python26-apple python27 python27-apple none
    

    Если у вас установлены как PHP55, так и PHP56 (с множеством разных расширений), вы можете переключаться между ними только одной командой. Все относительные расширения являются частью группы, и они будут активированы в выбранной группе: php55 или php56. Я не уверен, что у Homebrew есть эта функция.

  • Рубисты любят переписывать все в Ruby, потому что единственное, что им нравится, - это Ruby.

Ответ 2

Homebrew и macports обе решают одну и ту же проблему - это установка общих библиотек и утилит, которые не связаны с osx.

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

Они оба нуждаются в инструментах командной строки xcode, которые вы можете скачать отдельно от https://developer.apple.com/), а для некоторых конкретных пакетов вам понадобится вся xcode IDE установлен.

xcode может быть установлен из магазина приложений Mac, его бесплатную загрузку, но требуется некоторое время с 5GB (если я правильно помню).

macports - это osx версия утилиты порта из BSD (поскольку osx получен из BSD, это был естественный выбор). Для тех, кто знаком с любым из дистрибутивов BSD, macports будет чувствовать себя как дома.

Одно существенное различие между доморощенным и макроблоком; и причина, по которой я предпочитаю доморощенного, заключается в том, что он не будет перезаписывать вещи, которые должны быть установлены "изначально" в osx. Это означает, что если есть собственный пакет, домородок уведомит вас, а не перезапишет его и вызовет проблемы дальше. Он также устанавливает библиотеки в пользовательском пространстве (таким образом, вам не нужно использовать "sudo" для установки вещей). Это помогает избавиться от библиотек, так как все в пути, доступном для вас.

homebrew также имеет более активное сообщество пользователей, и его пакеты (называемые формулами) обновляются довольно часто.


macports не перезаписывает родные пакеты OSX - он поставляет свои собственные версия. Это основная причина, по которой я предпочитаю macports поверх home- brew, вы нужно быть уверенным в том, что вы используете, и Apple меняет в разное время до портов, и, как известно, годы обновления в некоторых проектах

Можете ли вы дать ссылку, показывающую, что macports перезаписывает собственную ОС X пакеты? Насколько я могу судить, вся установка macports происходит в /opt/local

Возможно, я должен уточнить - я не сказал нигде в своем ответе, что macports перезаписывает собственные пакеты OSX. Они оба устанавливают элементы отдельно.

Homebrew предупредит вас, когда вы должны установить вещи "изначально" (используя предпочтительный установщик библиотеки/инструмента) для лучшей совместимости. Это то, что я имел в виду. Он также будет использовать столько локальных библиотек, которые доступны в OS X. Из wiki:

Мы действительно не любим дураков в Homebrew/homebrew

Тем не менее, мы любим обманывать в кран!

Материал, который поставляется с OS X или представляет собой библиотеку, предоставляемую RubyGems, CPAN или PyPi не следует обманывать. Есть веские причины для это:

  • Дублирующие библиотеки регулярно ломают сборки
  • Тонкие ошибки появляются с дублирующимися библиотеками и, в меньшей степени, дублирующими инструментами
  • Мы хотим, чтобы вы попытались усложнить работу своей формулы с тем, что OS X поставляется с

Вы можете дополнительно перезаписать поставляемые macosx версии утилит с помощью homebrew.

Ответ 3

По умолчанию Homebrew устанавливает пакеты на ваш /usr/local. Для команд Macport требуется sudo для установки и обновления (аналогично apt-get в Ubuntu).

Подробнее:

Этот сайт предлагает использовать Hombrew: http://deephill.com/macports-vs-homebrew/

тогда как на этом сайте перечислены преимущества использования Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Недавно я переключился с Ubuntu, и мне нравится использовать доморощенный (он прост и удобен!), но если вы чувствуете себя привязанным к использованию sudo, Macports может быть лучшим способом!

Ответ 4

В настоящее время Macports имеет гораздо больше пакетов (~ 18,6 K), чем есть формулы Homebrew (~ 3.1K), благодаря своей зрелости. Homebrew медленно догоняет, хотя.

Пакеты Macport обычно поддерживаются одним человеком.

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

Оба менеджера пакетов попросят регулярно обновляться. Это может занять некоторое время.

Примечание. В вашей системе могут быть оба менеджера пакетов. Это не тот или другой. Brew может жаловаться, но Macports не будет.

Кроме того, если вы имеете дело с пакетами python или ruby, используйте, где это возможно, виртуальную среду.