Какой официальный установщик для пакетов Unix на Mac OS?

10

Я немного запутался в установке стандартных пакетов Unix в Mac OS X. Например, у меня есть / usr / bin / svn, то есть SVN v.1.4.4, но FinkCommander говорит, что svn не установлен. То же самое относится и к другим пакетам, таким как emacs и т. Д.

Это просто неправильная настройка FinkCommander? В настоящее время он установлен для установки всего /sw, чего нет даже в PATH. Итак, мне просто нужно установить его для установки пакетов /usr, и он будет распознавать установленное программное обеспечение? Я не хочу устанавливать дубликаты пакетов всего, и это довольно странно, что FinkCommander кажется не синхронизирован с установленным программным обеспечением.

Или есть какой-то другой установщик, который я должен использовать? Mac Ports - рекомендуемый установщик?

(Я использую Mac OS 10.5.8.)

dehmann
источник
Хороший вопрос и несколько отличных ответов. Также проверьте это: superuser.com/questions/28529/macports-fink-etc
Jonik
Что касается MacPorts: компилировать каждый пакет с нуля просто безумие. Я оставляю ноутбук включенным на несколько дней и ночей, чтобы установить R с MacPorts (который сначала компилирует gcc43, perl, automake, glib2 и многие другие ...).
Дехманн
Если вы хотите предварительно скомпилированные бинарные пакеты, посмотрите Rudix .
Телемах

Ответы:

10

Официального менеджера пакетов для OS X нет.

Fink , MacPorts и Homebrew предоставляют свои отличающиеся функции и возможности, чтобы заполнить этот пробел.

Как отмечают многие пользователи:

  • избегать использования / usr
  • пока вы не настроите PATH, пакеты из разных каталогов не будут найдены.
Джереми Л
источник
Спасибо за ответ. Это довольно обидно. Почему они не могут предложить правильного менеджера пакетов? :-(
Дехманн
5
Их целевая аудитория не знает, что делать. Остальные из нас заставляют это работать :-)
Джереми Л
Я выбрал это как принятый ответ, но я бы добавил, что на самом деле хорошо использовать несколько менеджеров. По крайней мере, Fink и MacPorts могут сосуществовать, поскольку они устанавливаются в разные каталоги.
Дехманн
7

Хотя нет официального менеджера пакетов Unix / FOSS для Mac OS X, следует отметить, что MacPorts был создан и до сих пор поддерживается в основном инженерами Apple Mac OS X / Darwin. Веб-сайт macports.org размещается на серверах Apple в рамках проекта Apple «MacOSForge.com». Поскольку Mac OS X / Darwin основана на * BSD, многие разработчики программного обеспечения на уровне Unix от Apple исходят из традиций * BSD, поэтому они смоделировали MacPorts по модели * BSD «порты».

Fink был первоначальным менеджером пакетов с открытым исходным кодом для Mac OS X, но у него нет тесных организационных связей с Apple, и он решил следовать традиции Debian Linux apt-get.

Я не уверен, что какой-либо из вышеперечисленных деталей достаточно, чтобы рекомендовать одну над другой. Я бы сказал, что все зависит от того, с какой моделью вы уже знакомы. Если вы более знакомы с apt-get, переходите к Fink. Если вы более знакомы с «портами» BSD, переходите на MacPorts.

Как уже говорили другие, лучше всего оставить инструменты Unix по умолчанию для Mac OS X. Fink и MacPorts уже усвоили этот урок и устанавливают свои собственные копии вещей в своих собственных иерархиях каталогов (/ sw для Fink, / opt для MacPorts). Homebrew еще не полностью усвоил этот урок, но он будет, как только некоторые пользователи используют Homebrew для обновления встроенной копии, скажем, Perl или Python, и у него возникла непредвиденная проблема совместимости, которая ломает встроенные части Mac OS X, например пакеты установки (файлы пакета Mac OS X .pkg), которые используют сценарии Perl для выполнения некоторых задач установки.

Spiff
источник
5
Насколько я понимаю, Homebrew устанавливается в / usr / local / и, таким образом, никогда не будет перезаписывать системный Python.
Пепейн
4
Было бы невозможно использовать Homebrew для перезаписи существующих компонентов. OSX поставляется без / usr / local по умолчанию.
Пол Робинсон
5

Нет официального менеджера пакетов для OS X.

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

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

Джош К
источник
3

Версия svn, которую вы видите, поставляется с Mac OS X, а не от Fink или любого другого источника.

Вы можете определить разные версии, используя typeкоманду bash . Например, я использую MacPorts и установил более новую версию sqlite3:

$ type -a sqlite3
sqlite3 is /opt/local/bin/sqlite3
sqlite3 is /usr/bin/sqlite3

Версия в / opt / local / bin пришла от MacPorts, версия в / usr / bin шла с Mac OS X.

Я рекомендую не устанавливать двоичные файлы Fink или MacPorts в / usr - оставьте их в покое. Позвольте Fink установить в / sw или MacPorts установить в / opt / local. Настройте свой, PATHчтобы найти версии Fink / MacPorts перед стандартными версиями

Даг Харрис
источник
Используя похожие флаги, вы можете использоватьwhich -a sqlite3
Джереми Л