¿Obligar a Homebrew y Macports a coexistir?

¿Obligar a Homebrew y Macports a coexistir?

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.

Fuente:https://github.com/mxcl/homebrew/wiki/installation

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 portse ejecutará portenvuelto.

Para mayor comodidad, puede macports.sh somethingincluir algunos scripts con el mismo nombre que los comandos y colocarlos en su directorio INICIO, como ~/bin, ~/.local/binetc.

He escritouna publicación de blogsobre esto hace un mes. Puede leerlo si necesita ver los detalles.

información relacionada