1 votos

Macports fuerza la activación de todos los puertos

Al intentar instalar SciTE

sudo port install scite

el puerto se detiene en

Error: org.macports.activate para el puerto gettext devuelto: Error de imagen: /opt/local/bin/autopoint ya existe y no pertenece a un puerto registrado. No se puede activar el puerto gettext. Utilice 'port -f activate gettext ' para forzar la activación.

pero si corro sudo port -f activate gettext y vuelva a intentar instalar scite Termino con el mismo mensaje de error, esta vez con /opt/local/lib/libffi.6.dylib y libffi y así sucesivamente...

¿Cómo puedo decirle a Macports que fuerce la activación de todos los puertos que se interponen en su camino para completar la instalación de SciTE, sin tener que volver a ejecutar manualmente la instalación del paquete que realmente quiero y sin tener que copiar y pegar cada comando de activación?

3voto

qubodup Puntos 111

Pude instalar el puerto deseado automatizando el proceso de activación. La aplicación no se ejecuta debido a algunos problemas de la versión de la biblioteca y parece que no puedo arreglar esos pero eso es una historia para otra respuesta u otra pregunta.

  1. Crea un script que intente instalar continuamente el puerto y que automáticamente active a la fuerza el puerto descubierto que lo está bloqueando. Copia y pega lo siguiente en un archivo y llámalo port-instact.sh

    if [ "$EUID" -ne 0 ]
      then echo "Please run as root"
      exit
    fi
    target="$1"
    while [ 1 ]
    do
        echo trying to install "$target"
        if [[ $(port installed "$target" | grep "$target") ]]; then echo "$target" present; break; fi
        line=`port install "$target" 2>&1 > /dev/tty | grep "port -f activate"`
        package=$(echo $line | sed -e "s/^.*port -f activate //" -e "s/. .*//")
        if [ "$package" = "$oldpackage" ]; then echo double \""$package"\"; break; fi
        oldpackage="$package"
        echo activating "$package"
        port -f activate "$package"
    done
  2. Hacer que el archivo sea ejecutable a través de chmod +x port-instact.sh

  3. Ejecutarlo como Root sudo ./port-instact.sh scite y esperar

0voto

qubodup Puntos 111

Borrar todo el Macports y volver a instalarlo permite instalar normalmente los puertos.

Utilice el elaborado comando rm de Guía de Macports (desinstalación) :

sudo rm -rf \
        /opt/local \
        /Applications/DarwinPorts \
        /Applications/MacPorts \
        /Library/LaunchDaemons/org.macports.* \
        /Library/Receipts/DarwinPorts*.pkg \
        /Library/Receipts/MacPorts*.pkg \
        /Library/StartupItems/DarwinPortsStartup \
        /Library/Tcl/darwinports1.0 \
        /Library/Tcl/macports1.0 \
        ~/.macports

Gracias a Mark por la sugerencia.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X