Installed, just not linked

元气小坏坏 提交于 2020-05-21 08:17:38

问题


Note: I'm not so good at using shell.

I was trying to install Valgrind using brew on Yosemite.

brew install --HEAD valgrind

Towards the end, I got an error having to do with linking so when I tried to reinstall, I got:

Warning: valgrind-HEAD already installed, it's just not linked

So apparently I've already installed it. Then based on other SO questions and answers, I tried:

brew link valgrind

This seemed to solve other people's problems with linking an already installed software but this gave me an error:

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

I also tried to update brew but it didn't solve the issue. If it is not writable, maybe sudo would give me permission but I don't want to use sudo without knowing exactly what I am doing.

What is happening and how to I fix it?


回答1:


Looks like a permission issue. I would try doing this

chmod 755 /usr/local/lib/pkgconfig

This should make that available, then try

brew link valgrind

If that doesn't work I would try doing a check on it

brew doctor



回答2:


First run

brew link <package>

If it gives an error, try for an automated diagnosis

brew doctor

brew doctor gives a list of problems that could be leading to errors in installation process.

To fix problems in case of conflicting files, run to get a list of all actions which will be performed by overwrite without actually performing them.

To list all files that would be deleted:

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

followed by this run which will execute the overwrite, assuming you feel that the actions performed by overwrite will take your system to a more stable state.

To force the link and overwrite all conflicting files:

 brew link --overwrite <package>



回答3:


If none of above the solution works, try this.

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



回答4:


In my case, brew doctor got it right. At some point /usr/local/lib/pkgconfig was set to be owned by root rather than my account. The prescribed remedy worked -

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



回答5:


I had same problem and i resolved with next solution: Run brew doctor from Terminal to check all your errors

then run next command:

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

after run:

brew link <package_name>



回答6:


Type

link valgrind

It will show an error that it can't be linked because such-and-such directory is not writable. Cool, we make it writable now. Type

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

If the directory is not writable, you wont be able to change its permission and make it writable either. Sudo will make this operation possible. chmod will change the mode and will make all(a) users be able to write(w) it.

Next you will be prompted to type your system's password. After this, again type

link valgrind

and it will work this time.




回答7:


Here is what I tried and it worked:

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

Looked for pkgconfig: (after chmod 750)

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

I tried chown as below:

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

it should look like as below:

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

After I tried it:

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



回答8:


I got a similar problem,

$ brew install sqlite Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/core). No changes to formulae.

Warning: sqlite-3.17.0 already installed, it's just not linked.

I tried to link it,

$ brew link sqlite Warning: sqlite is keg-only and must be linked with --force Note that doing so can interfere with building software.

Then do it by force,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0... 8 symlinks created




回答9:


I had same a problem about permission, but after I give my permission, still error permission. And here I do, first:

brew unlink valgrind

and then,

brew link valgrind

hope this help.



来源:https://stackoverflow.com/questions/29422345/installed-just-not-linked

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!