Они не будут хорошо сосуществовать вместе. Apple gcc ищет в / usr / local некоторые вещи. Это означает, что компиляция macports может найти то, чего не ожидал портер. Посмотрите списки рассылки и ошибки macports для примеров того, что можно найти в / usr / local.
Безопасно ли устанавливать Homebrew и Macports на одну и ту же машину?
На моем iMac установлены MacPorts с достаточным количеством установленных портов.
Тем не менее, я заинтересован в том, чтобы попробовать Homebrew, поскольку слышал о нем много хорошего и потому, что заметил, что он содержит более свежие версии некоторых инструментов, которые я использую.
Но могут ли они сосуществовать на одном компьютере или мне нужно сначала полностью удалить MacPorts?
Кроме того, если они могут быть установлены одновременно, будут ли они полностью независимы друг от друга? Одной из особенностей Homebrew является то, что он не переустанавливает новые версии вещей, которые уже включены в систему (например, python). Это также распространяется на то, что он не устанавливает версии вещей, которые уже поддерживаются MacPorts?
Что произойдет, если я впоследствии удалю MacPorts?
6 ответов на вопрос
- Популярные
- Новые
- С комментариями
- Активные
Я дал другой ответ на аналогичный вопрос:
Homebrew вызовет проблемы при сборке программного обеспечения из исходного кода, если оно установлено в / usr / local. Это значение по умолчанию, что является плохим выбором, так как этот путь находится в пути поиска по умолчанию для компиляторов и других инструментов. Поэтому сборки из другого программного обеспечения для упаковки могут получить неправильную зависимость, используя версию Homebrew вместо своей собственной.
Несколько лет назад, в самом начале проекта, даже MacPorts использовал / usr / local. Но оказалось, что не сотрудничать с другими инструментами, как это задокументировано в их FAQ. К сожалению, разработчики Homebrew не хотели слышать о предыдущем опыте и игнорировали такие факты ...
Как правило, лучше всего придерживаться одного инструмента, чтобы избежать всех проблем. MacPorts делает все возможное, чтобы исправлять любые путевые пути, например, к / sw, который используется Fink. Так что обычно это работает, но установка чего-либо в / usr / local определенно вызовет проблемы.
[...]
Раньше я думал, что беспокойство по поводу того, из чего будут делать инструменты сборки Gnu, /usr/local
было на грани параноика. Инструменты сборки ожидают, что там будет много чего: в старые добрые времена перед менеджерами пакетов (я шучу) мы компилировали все, что угодно /usr/local
. Но в то время как Autoconf обычно обнаруживает проблемы, сложность сборки многих проектов с открытым исходным кодом действительно вызывает проблемы, и эти проблемы могут быть трудно устранить, когда вы сталкиваетесь с трудностями.
Но риск проблем с тем, что Autoconf найдет то, что ему не /usr/local
нужно, должен быть сбалансирован из-за неудобств, связанных с обслуживанием, имеющих две, три или четыре разные копии Perl, Tcl и Ruby, каждая из которых по-разному покрывает свои разные библиотеки пакетов. Неприятно.
Поскольку мой опыт работы с MacPorts и Fink, как правило, был раздражением, вызванным именно этим, и в какой-то момент переключился на компиляцию по старинке /usr/local
, я был рад видеть, что Homebrew не связывался с этим. Я попытался настроить MacPorts для установки /usr/local
, но MacPorts делает все возможное, чтобы сделать это трудным. Я понимаю, что мотивация состоит в том, чтобы облегчить себе жизнь, когда имеешь дело с криками о помощи в их списке рассылки и баг-трекере: имейте в виду, что, хотя мы должны уважать усилия сборщиков-добровольцев и относиться к их драгоценному времени, их удобство отладки - не единственный вид простоты, который влияет на вас как пользователя.
Homebrew, по крайней мере, в этом отношении, делает все так, как раньше, и MacPorts старается не вмешиваться. Если вы готовы задокументировать, какие пакеты вам нужны, с помощью Homebrew, а также очистить и переустановить / usr / local в случае затруднений, вы всегда можете вернуться в случае, если что-то пойдет не так. И как только вы поймете, что проблемы в / usr / local обычно не несут в себе риска нанести непоправимый ущерб вашим машинам, вы можете чувствовать себя более свободными, чтобы рисковать.
Я просто отмечу, насколько хуже упаковка в OSX, чем во FreeBSD: Apple, похоже, не особо заботится о удобстве использования своего подсистемы BSD, потому что это проблема, с которой они могут помочь.
Согласно MacPorts FAQ :
Обратите внимание, что начиная с 2.3.0, MacPorts может автоматически скрывать / usr / local (и все другие файлы, от которых порт не зависит) от систем сборки портов. Эта функция называется режимом трассировки и активируется путем предоставления флага -t для порта, например
sudo port -t install <portname>
Это актуально, потому что согласно странице установки Homebrew:
Одна из причин, по которой Homebrew работает по отношению к конкурентам, заключается в том, что мы рекомендуем установить в / usr / local. Выберите другой префикс на свой страх и риск!
Поэтому, имея небольшой личный опыт, я предполагаю, что всегда использование флага -t для установок MacPort должно предотвратить большинство проблем, связанных с сосуществованием MacPorts и Homebrew в одной и той же системе. Чтобы ответить на ваш последний вопрос: я не вижу причин, по которым удаление MacPorts могло бы вызвать проблемы.
При установке homebrew на компьютер, где я годами использую порты, вот что я могу прочитать:
Warning: You have MacPorts or Fink installed: /opt/local/bin/port This can cause trouble. You don't have to uninstall them, but you may want to temporarily move them out of the way, e.g. sudo mv /opt/local ~/macports
Быть осторожен!
webappzero's sudo port -t ...
solution should help. To be honest, I run with Fink, MacPorts and Homebrew all at once, with deference to MacPorts (for now anyway), and only using either of the other two to install things I can't get from MacPorts. I've run into very few difficulties this way, even before learning the port -t
trick. If you're trying to use multiple package managers to maintain complex development and server environments, though, you're probably in a for a world of discomfort at least. Pick one, and avoid the others but for something you desperately need from them, and put the main one earlier in the path.
If what I'm hearing is true about Apple going to forbid things to install into /usr/ other than Apple's own (or maybe they're already doing that in El Crapitan, which I'm avoiding "up"grading to until after more problems with it are resolved), I suppose that will mitigate the issue after Homebrew defaults to using something else – whether we agree with Apple's heavy-handed approach or not.
In the end, I like the idea of confining Apple's own ports to its own tree, I just wish it wasn't /usr/. I'd rather they'd used /System/bin/, etc., etc., to isolate their own stuff, so I could bypass it with up-to-date, community-maintained software more easily.
Похожие вопросы
-
3
Ускорение загрузки OS X на годичной MBP
-
3
Как повторно связать резервную копию Airport Time Machine после перехода на новый Mac?
-
6
Как вы отключите звук запуска на Mac?
-
-
5
Почему мой Macbook сильно нагревается при использовании Boot Camp?
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Способ переноса данных Time Machine на новый диск
-
13
Сброс положения Mac OS X Windows после отсоединения внешнего монитора
-
10
Программное обеспечение для резервного копирования для Mac OS X
-
5
Как удалить и удалить .kext в Mac OS X?
-
4
Как переназначить клавишу извлечения на клавиатуре MacBook, чтобы «удалить»?