Macports forza-attiva tutte le porte

0

Durante il tentativo di installare SciTE

sudo port install scite

la porta si ferma a

Error: org.macports.activate for port gettext returned: Image error: /opt/local/bin/autopoint already exists and does not belong to a registered port. Unable to activate port gettext. Use 'port -f activate gettext' to force the activation.

ma se eseguo sudo port -f activate gettext e riprovo a installare scite , finisco con lo stesso messaggio di errore, questa volta con /opt/local/lib/libffi.6.dylib e libffi e così via e così via ...

Come posso dire a Macports di forzare l'attivazione di tutte le porte che si bloccano dal completamento dell'installazione di SciTE, senza dover rieseguire manualmente l'installazione del pacchetto che effettivamente desidero e senza dover copiare e incollare ogni comando di attivazione?

    
posta qubodup 04.04.2016 - 16:40
fonte

2 risposte

1

Sono stato in grado di installare la porta desiderata automatizzando il processo di attivazione. L'app non riesce a funzionare a causa di alcuni problemi di versione della libreria e non riesco a correggerli, ma questa è una storia per un'altra risposta o un'altra domanda.

  1. Crea uno script che tenta continuamente di installare la porta e attiva automaticamente la porta scoperta che lo sta bloccando. Copia incolla quanto segue in un file e chiamalo 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. Rendi il file eseguibile tramite chmod +x port-instact.sh

  3. eseguilo come root sudo ./port-instact.sh scite e attendi

risposta data 05.04.2016 - 00:44
fonte
0

Cancellando tutto Macports e reinstallandolo, puoi normalmente installare le porte.

Utilizza l'elaborato comando rm da Guida Macports (disinstallazione) :

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

Grazie a Contrassegna per il suggerimento.

    
risposta data 05.04.2016 - 01:19
fonte

Leggi altre domande sui tag