![¿Obligar a Homebrew y Macports a coexistir?](https://rvso.com/image/1303084/%C2%BFObligar%20a%20Homebrew%20y%20Macports%20a%20coexistir%3F.png)
Tengo un sistema MacOSX que he estado usando durante varios años y durante este tiempo instalé bastantes paquetes a través de Macports.
Ahora quiero probar Homebrew, pero por lo que he leído aquí y en otros lugares está claro que las instalaciones predeterminadas de Homebrew y Macports no pueden coexistir fácilmente.
Para mí no es una opción viable desinstalar Macports, ya que gran parte de mi trabajo diario en MacOSX implica el uso de varias utilidades instaladas en Macports. Además, muchas de mis propias utilidades locales ahora son interdependientes de Macports. Y finalmente, muchos ejecutables y bibliotecas compartidas que uso habitualmente ahora están instalados en /usr/local, y mi sistema rápidamente quedaría inutilizable si borrara ese árbol de directorios.
Entonces mi pregunta es la siguiente: ¿a alguien se le ha ocurrido una forma alternativa de instalar Homebrew que pueda coexistir con Macports? Específicamente, ¿alguien ha descubierto cómo hacer que Homebrew utilice un árbol de directorios como /usr/local/homebrew en lugar de /usr/local?
Gracias de antemano por cualquier sugerencia o sugerencia sobre documentos.
Respuesta1
Puede decirle a Homebrew que use su propio directorio y luego agregarlo a la ruta. Aunque no tiene el mismo propósito, este extracto de la guía de instalación lo dice:
Múltiples instalaciones
Cree una instalación Homebrew dondequiera que extraiga el tarball. Cualquiera que sea el comando brew que se llame es donde se instalarán los paquetes. Puede usar esto como mejor le parezca, por ejemplo, un conjunto de bibliotecas del sistema en /usr/local y fórmulas modificadas para el desarrollo en ~/homebrew.
Respuesta2
Mi forma de forzarlos a coexistir es hacer que MacPorts no sea visible de forma predeterminada, pero sí al invocar cualquier programa MacPorts. Es decir, envuelva los programas MacPorts con algún script como:
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 $*
Si nombra este script como macports.sh
, puede realizar el ajuste mediante macports.sh macports_bin
, de modo que macports.sh port
se ejecutará port
envuelto.
Para mayor comodidad, puede macports.sh something
incluir algunos scripts con el mismo nombre que los comandos y colocarlos en su directorio INICIO, como ~/bin
, ~/.local/bin
etc.
He escritouna publicación de blogsobre esto hace un mes. Puede leerlo si necesita ver los detalles.