Installato, solo non collegato


86

Nota: non sono così bravo a usare shell.

Stavo cercando di installare Valgrindutilizzando brewsu Yosemite.

brew install --HEAD valgrind

Verso la fine, ho ricevuto un errore relativo al collegamento, quindi quando ho provato a reinstallare, ho ottenuto:

Attenzione: valgrind-HEAD è già installato, semplicemente non è collegato

Quindi a quanto pare l'ho già installato. Quindi, sulla base di altre domande e risposte SO, ho provato:

brew link valgrind

Questo sembrava risolvere i problemi di altre persone con il collegamento di un software già installato, ma questo mi ha dato un errore:

Linking /usr/local/Cellar/valgrind/HEAD... 
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.

Ho anche provato ad aggiornare brewma non ha risolto il problema. Se non è scrivibile, forse sudomi darebbe il permesso ma non voglio usarlosudo senza sapere esattamente cosa sto facendo.

Cosa sta succedendo e come risolverlo?

Risposte:


103

Sembra un problema di autorizzazione. Proverei a farlo

chmod 755 /usr/local/lib/pkgconfig

Questo dovrebbe renderlo disponibile, quindi prova

brew link valgrind

Se non funziona, proverei a controllarlo

brew doctor

5
Io uso brew doctor, e secondo le istruzioni, quindi uso chowndue volte per risolvere il problema.
yanzi1225627

2
@ yanzi1225627 perché due volte?
Greg Hilston,

31

Prima corsa

brew link <package>

Se dà un errore, prova una diagnosi automatica

brew doctor

brew doctor fornisce un elenco di problemi che potrebbero causare errori nel processo di installazione.

Per risolvere i problemi in caso di file in conflitto, eseguire per ottenere un elenco di tutte le azioni che verranno eseguite mediante sovrascrittura senza eseguirle effettivamente.

Per elencare tutti i file che verrebbero eliminati:

  brew link --overwrite --dry-run <package>

seguito da questa esecuzione che eseguirà la sovrascrittura, assumendo che tu ritenga che le azioni eseguite dalla sovrascrittura porteranno il tuo sistema a uno stato più stabile .

Per forzare il collegamento e sovrascrivere tutti i file in conflitto:

 brew link --overwrite <package>

13

Se nessuna delle soluzioni precedenti funziona, prova questo.

sudo chown -R $USER:admin /usr/local
brew link <package-name>

3

Nel mio caso, il dottore della birra ha capito bene. Ad un certo punto / usr / local / lib / pkgconfig è stato impostato per essere di proprietà di root piuttosto che del mio account. Il rimedio prescritto ha funzionato -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig

2

Ho avuto lo stesso problema e l'ho risolto con la soluzione successiva: Esegui brew doctor da Terminal per controllare tutti i tuoi errori

quindi esegui il comando successivo:

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share

dopo la corsa:

brew link <package_name>

1

genere

link valgrind

Mostrerà un errore che non può essere collegato perché la directory tal dei tali non è scrivibile. Bene, ora lo rendiamo scrivibile. genere

sudo chmod a+w the/directory/shown/as/error

Se la directory non è scrivibile, non sarai in grado di cambiarne i permessi e nemmeno di renderla scrivibile. Sudo renderà possibile questa operazione. chmod cambierà la modalità e renderà tutti (a) gli utenti in grado di scriverlo (w).

Successivamente ti verrà chiesto di digitare la password del tuo sistema. Dopodiché, digita di nuovo

link valgrind

e questa volta funzionerà.


1

Ecco cosa ho provato e ha funzionato:

$ brew link --overwrite sdl
Linking /usr/local/Cellar/sdl/1.2.15...
Error: Could not symlink lib/pkgconfig/sdl.pc
/usr/local/lib/pkgconfig is not writable.

Cercato pkgconfig: (dopo chmod 750)

drwxr-xr-x   4 root           wheel   136B Mar 30  2013 pkgconfig

Ho provato chowncome di seguito:

$ sudo chown -R  avkashchauhan:admin /usr/local/lib/pkgconfig

dovrebbe apparire come di seguito:

drwxr-xr-x   4 avkashchauhan  admin   136B Mar 30  2013 pkgconfig

Dopo averlo provato:

$ brew link sdl                                                                                                                                                                                                                    
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created

0

Ho un problema simile

$ brew install sqlite Aggiornamento Homebrew ... ==> Homebrew aggiornato automaticamente! Aggiornato 1 tocco (homebrew / core). Nessuna modifica alle formule.

Attenzione: sqlite-3.17.0 è già installato, semplicemente non è collegato.

Ho provato a collegarlo,

$ brew link sqlite Avvertenza: sqlite è solo keg e deve essere collegato con --force Nota che così facendo può interferire con la creazione del software.

Quindi fallo con la forza,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... 8 collegamenti simbolici creati


0

Ho avuto lo stesso problema con il permesso, ma dopo aver dato il mio permesso, ancora permesso di errore. Ed eccomi qui, prima:

brew unlink valgrind

e poi,

brew link valgrind

spero che questo aiuto.


0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Gli unici comandi che hanno funzionato per me dopo l'aggiornamento a MAC OS Mojave 10.14.6

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.