Macports forzar-activar todos los puertos

0

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. Use 'puerto -f active gettext ' para forzar la activación.

pero si ejecuto sudo port -f activate gettext y vuelvo 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 y así sucesivamente ...

¿Cómo puedo decirle a Macports que fuerce la activación de todos los puertos que están a su paso 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?

    
pregunta qubodup 04.04.2016 - 16:40

2 respuestas

1

Pude instalar el puerto deseado al automatizar el proceso de activación. La aplicación no se ejecuta debido a algunos problemas con la versión de la biblioteca y parece que no puedo solucionarlos, pero esa es una historia para otra respuesta u otra pregunta.

  1. Cree un script que intente instalar el puerto continuamente y active de forma automática el puerto descubierto que lo está bloqueando. Copie y pegue lo siguiente en un archivo y llámelo 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. Haga que el archivo sea ejecutable a través de chmod +x port-instact.sh

  3. Ejecutalo como root sudo ./port-instact.sh scite y espera

respondido por el qubodup 05.04.2016 - 00:44
0

Eliminar todo Macports y reinstalarlo te permite instalar puertos normalmente.

Utilice el comando rm elaborado desde 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.

    
respondido por el qubodup 05.04.2016 - 01:19

Lea otras preguntas en las etiquetas