Homebrew mi ha chiesto di spostare macports ora non funziona

0

Sto usando HomeBrew per la mia solita roba mac, ma ho bisogno di fare alcuni esperimenti con altri gestori di pacchetti. Così ho installato MacPorts. tutto sembra a posto ma il medico mi chiede di spostarlo:

warning: You have MacPorts or Fink installed:

This can cause trouble. You don't have to uninstall them, but you may want to

temporarily move them out of the way, e.g. sudo mv /opt/local ~/macports

Quindi l'ho ascoltato e spostato. E poi nel mio profilo di bash ho cambiato

export PATH="/opt/local/bin:/opt/local/sbin:$PATH"

a

export PATH="~/macports/bin:~/macports/sbin:$PATH"

e ora quando I esegue port ... mi dà questo errore:

-bash: /Users/foobar/macports/bin/port: /opt/local/libexec/macports/bin/tclsh8.5: bad interpreter: No such file or directory

Che cosa sto facendo male e come posso risolverlo?

P.S.1.

Ho modificato il file /Users/foobar/macports/bin/port come amministratore e ho modificato la prima riga da #!/opt/local/libexec/macports/bin/tclsh8.5

a

#!/Users/foobar/macports/libexec/macports/bin/tclsh8.5

ora ricevo questo nuovo errore:

sources_conf must be set in /opt/local/etc/macports/macports.conf or in your /Users/foobar/.macports/macports.conf file while executing "mportinit ui_options global_options global_variations" Error: /Users/foobar/macports/bin/port: Failed to initialize MacPorts, sources_conf must be set in /opt/local/etc/macports/macports.conf or in your /Users/foobar/.macports/macports.conf file

P.S.2.

ha modificato tutte le /opt/local s in ~/macports s in

/Users/foobar/macports/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_ci/bootstrap.sh

e

/Users/foobar/macports/etc/macports/macports.conf

nulla è cambiato!

P.S.3.

Vedo che alcuni dei ragazzi qui cercano di guidarmi verso la rimozione / disinstallazione di MacPorts o HomeBrew. Non è quello che sto chiedendo. Sono in grado di ripristinare tutto ciò che ho fatto e di far funzionare di nuovo MacPorts (infatti l'ho appena fatto). La mia domanda è: perché HomeBrew sta dicendo questo? cosa succede se non faccio quello che chiede? Cosa succede se voglio anche i MacPorts? e soprattutto come fanno i MacPorts a funzionare dopo lo spostamento?

    
posta Foad 08.07.2018 - 22:32
fonte

3 risposte

1

Distruggere i file di punti incasinati e le variabili e i percorsi di ambiente potrebbe essere molto impegnativo se non si seguissero con precisione i passaggi raccomandati o si apportassero modifiche successive. Che ne dici di fare una lista dei pacchetti homebrew che hai (se ce ne sono) e rimuoverli completamente. Lo stesso con Macport: non provare ad adattarlo per l'esecuzione in un nuovo posto: rimuovilo interamente dopo aver saputo quali pacchetti ti servono.

Quindi crea un nuovo account utente - installa homebrew in modo pulito con un percorso predefinito e dopo aver ripulito / opt prima di aver creato il nuovo account.

Questo ti permetterà di sapere se hai un problema di sistema o se è solo il peso di tutte le modifiche apportate per far funzionare il software precedente.

L'alternativa a questo sarà molto avanti e indietro e dovrai scaricare una tonnellata di dati nella domanda o organizzare l'accesso remoto con qualcuno esperto nel selezionare gli errori di bash / scripting e scavare nel codice e cosa brew doctor ha per dire sul tuo setup che è rotto.

    
risposta data 09.07.2018 - 02:34
fonte
1
-bash: /Users/foobar/macports/bin/port: /opt/local/libexec/macports/bin/tclsh8.5: bad interpreter: No such file or directory

Questo è il tuo problema proprio lì. Mentre hai spostato macport e aggiornato il tuo percorso, non hai modificato anche tutti i riferimenti interni al percorso originale.

Ho cercato in quel file e ho trovato un riferimento a:

/opt/local/libexec/macports/lib/libtcl8.5.dylib

In generale, qualsiasi pacchetto unix più grande di un singolo file NON può essere spostato in alcuna posizione casuale nel filesystem. Funzionerà da qualsiasi posizione casuale ma solo se lo costruisci lì.

Quando hai installato il primo programma che utilizzava la libreria tcl, veniva compilato / collegato al percorso completo di quella libreria, insieme a cose in / usr / lib e altre cose in / System / Library / Frameworks. Sposta uno di questi e molte cose non verranno più eseguite.

Quindi, le tue scelte sono:

  • Sposta MacPorts e reinstalla tutto
  • Sposta homebrew e reinstalla tutto

Perché l'homebrew ha spezzato i macport? Volevano utilizzare lo stesso percorso, qualcosa era già lì, e non è il loro lavoro affrontare il processo di qualcun altro.

Avrebbero dovuto fare 10 secondi di ricerca in più e hanno trovato un modo migliore, come un percorso non in conflitto.

    
risposta data 10.07.2018 - 02:17
fonte
0

Vai alla directory /Users/foobar/macports/var/macports/registry :

cd /Users/foobar/macports/var/macports/registry

Ora interroga il database del Registro di sistema per i programmi installati e crea un file con tutti i tuoi programmi installati con Macports sul desktop.

sqlite3 registry.db 'select name, requested from ports' | cut -d'|' -f1 > ~/Desktop/macports.txt

Ora rimuovi /Users/foobar/macports , quindi segui le istruzioni di disinstallazione nella guida MacPorts. A questo punto decidi se reinstallare MacPorts e rimuovere HomeBrew o semplicemente utilizzare HomeBrew.

    
risposta data 09.07.2018 - 18:12
fonte

Leggi altre domande sui tag