Нам нравится использовать brew
, но в нем не так много формул набора инструментов gnome
, и мы можем очень быстро установить gnome-terminal
с помощью FinkCommander
. Мы создали различные части gnome
с нуля, но создание формулы brew
только для того, чтобы gnome-terminal
казался излишним, когда он уже доступен.
Несмотря на это, у нас были проблемы с созданием gnome-terminal
с помощью FinkCommander
, то есть до тех пор, пока мы не удалили все ссылки на установленные компоненты brew
из переменных среды; мы, конечно, должны были извлечь /usr/local/bin
и /usr/local/opt/gnu-tar/libexec/gnubin
из $PATH
, и просто ради ударов мы убедились, что ${DY}LD_LIBRARY_PATH
не указывает на /usr/local/lib
и т. д. Это позволило gnome-terminal
успешно строить и устанавливать с FinkCommander
.
Кроме того, у нас есть программное обеспечение, которое мы хотим установить через brew
, fink
и port
но brew
плохо работает с другими. Это привело к более общему вопросу: достаточно ли просто переключать переменные пути и среды для переключения между средами и установками brew
и fink
/port
? Мы знаем, что нам нужно скрыть brew
от fink
через переменные окружения при сборке gnome-terminal
с помощью FinkCommander
, и предполагается, что для некоторой определенной формулы brew
обратное утверждение верно.
Что вообще мы должны сделать, чтобы иметь лучшее из всех трех миров? То есть, что нужно сделать, чтобы все три, brew
, fink
и port
, были построены и установлены параллельно? Поскольку все управляемые пакеты были созданы с нуля, каждый пакет должен знать, где находятся его собственные динамически связанные библиотеки. Достаточно ли смешивать переменные среды $PATH
, $MANPATH
и $DYLD_LIBRARY_PATH
на лету, чтобы поставить одну установку перед другой, чтобы использовать ее определенные инструменты? Мы что-то упустили?