10

У меня есть система MacOSX, которую я использую в течение нескольких лет, и за это время я установил довольно много пакетов через Macports.

Теперь я хочу попробовать Homebrew, но из того, что я читал здесь и в других местах, ясно, что стандартные установки Homebrew и Macports не могут легко сосуществовать.

Я не могу удалить Macports, так как большая часть моей ежедневной работы с MacOSX связана с использованием различных утилит, установленных на Macports. Кроме того, многие из моих собственных домашних утилит теперь взаимозависимы с Macports. И, наконец, многие исполняемые файлы и разделяемые библиотеки, которые я обычно использую, теперь устанавливаются в /usr /local, и моя система быстро станет непригодной для использования, если я очистлю это дерево каталогов.

Поэтому у меня такой вопрос: кто-нибудь придумал альтернативный способ установки Homebrew, который может сосуществовать с Macports? В частности, кто-нибудь выяснил, как заставить Homebrew использовать дерево каталогов, такое как /usr /local /homebrew вместо /usr /local?

Заранее спасибо за любые предложения или указатели на документы.

2 ответа2

2

Вы можете указать Homebrew использовать свой собственный каталог, а затем добавить его в путь. Хотя это не для той же цели, этот отрывок из руководства по установке говорит ему:

Несколько установок

Создайте установку Homebrew, где бы вы ни распаковали архив. В зависимости от того, какая команда brew вызвана, именно там будут установлены пакеты. Вы можете использовать это по своему усмотрению, например, системный набор библиотек в /usr /local и подправленные формулы для разработки в ~ /homebrew

Источник: https://github.com/mxcl/homebrew/wiki/installation

1

Мой способ заставить их сосуществовать - сделать MacPorts не видимыми по умолчанию, но видимыми при вызове любых программ MacPorts. То есть, оберните программы MacPorts таким скриптом, как:

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

Если назвать этот сценарий как macports.sh вы можете сделать обертывание с помощью macports.sh macports_bin такие как macports.sh port будет работать port намотан.

Для удобства вы можете поместить macports.sh something в некоторые сценарии с тем же именем, что и сами команды, и поместить их в каталог HOME, например ~/bin , ~/.local/bin и т.д.

Я написал пост в блоге об этом месяц назад. Вы можете прочитать его, если вам нужно изучить детали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .