Instalado, mas não vinculado

86

Observação: não sou muito bom em usar shell.

Eu estava tentando instalar Valgrindusando brewno Yosemite.

brew install --HEAD valgrind

No final, recebi um erro relacionado à vinculação, então, quando tentei reinstalar, recebi:

Aviso: valgrind-HEAD já instalado, só não está vinculado

Então, aparentemente, já o instalei. Então, com base em outras perguntas e respostas do SO, tentei:

brew link valgrind

Isso pareceu resolver os problemas de outras pessoas ao vincular um software já instalado, mas me deu um erro:

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

Também tentei atualizar, brewmas não resolveu o problema. Se não for gravável, talvez sudome dê permissão, mas não quero usar sudosem saber exatamente o que estou fazendo.

O que está acontecendo e como conserto?

aanrv
fonte

Respostas:

103

Parece um problema de permissão. Eu tentaria fazer isso

chmod 755 /usr/local/lib/pkgconfig

Isso deve torná-lo disponível, então tente

brew link valgrind

Se isso não funcionar, eu tentaria fazer uma verificação

brew doctor
Gann14
fonte
5
Eu uso brew doctor, e pelas instruções, então uso chownduas vezes para resolver o problema.
yanzi1225627
2
@ yanzi1225627 por que duas vezes?
Greg Hilston
31

Primeira corrida

brew link <package>

Se der um erro, tente um diagnóstico automatizado

brew doctor

brew doctor fornece uma lista de problemas que podem levar a erros no processo de instalação.

Para corrigir problemas em caso de arquivos conflitantes, execute para obter uma lista de todas as ações que serão executadas por substituição sem realmente executá-las.

Para listar todos os arquivos que seriam excluídos:

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

seguido por esta execução que executará a sobregravação, supondo que você sinta que as ações executadas pela sobregravação levarão seu sistema a um estado mais estável .

Para forçar o link e substituir todos os arquivos conflitantes:

 brew link --overwrite <package>
Vinay Vemula
fonte
13

Se nenhuma das opções acima funcionar, tente isso.

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

No meu caso, o médico cervejeiro acertou. Em algum ponto / usr / local / lib / pkgconfig foi definido como propriedade do root em vez de minha conta. O remédio prescrito funcionou -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig
Pedro Jiménez
fonte
2

Eu tive o mesmo problema e resolvi com a próxima solução: Execute o brew doctor do Terminal para verificar todos os seus erros

em seguida, execute o próximo comando:

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

depois da corrida:

brew link <package_name>
B.Kleo
fonte
1

Tipo

link valgrind

Ele mostrará um erro de que não pode ser vinculado porque tal e tal diretório não é gravável. Legal, nós o tornamos gravável agora. Tipo

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

Se o diretório não for gravável, você também não poderá alterar sua permissão e torná-lo gravável. Sudo tornará essa operação possível. chmod mudará o modo e fará com que todos (a) os usuários possam escrever (w) nele.

Em seguida, você será solicitado a digitar a senha do seu sistema. Depois disso, digite novamente

link valgrind

e funcionará desta vez.

monkSinha
fonte
1

Aqui está o que eu tentei e funcionou:

$ 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.

Procurado por pkgconfig: (depois chmod 750)

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

Tentei chowno seguinte:

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

deve ter a seguinte aparência:

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

Depois de experimentar:

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

Eu tenho um problema parecido,

$ brew install sqlite Atualizando Homebrew ... ==> Homebrew atualizado automaticamente! Atualizado 1 torneira (homebrew / core). Sem alterações nas fórmulas.

Aviso: sqlite-3.17.0 já instalado, apenas não está vinculado.

Eu tentei vinculá-lo,

$ brew link sqlite Aviso: sqlite é apenas barril e deve estar vinculado a --force Observe que fazer isso pode interferir na construção do software.

Então faça isso à força,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... 8 links simbólicos criados

X. L
fonte
0

Eu tive o mesmo problema com a permissão, mas depois de dar minha permissão, ainda erro a permissão. E aqui eu faço, primeiro:

brew unlink valgrind

e depois,

brew link valgrind

espero que esta ajuda.

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

Os únicos comandos que funcionaram para mim após a atualização para o MAC OS Mojave 10.14.6

Naishta
fonte