为什么我无法给这个文件添加写权限?

为什么我无法给这个文件添加写权限?

我在 OS X Mavericks 下运行 Homebrew 0.9.5。我的最终目标是编译依赖于 的程序(无法通过 Homebrew 获得)的源代码pkg-config。安装 Homebrew 后,我运行brew install pkg-config,出现“brew 链接错误”,然后运行brew link --overwrite pkg-config​​。这给了我一个不同的错误:Error: Could not symlink share/doc/pkg-config/pkg-config-guide.html /usr/local/share/doc/pkg-config is not writable.我似乎无法绕过这个错误。运行sudo chmod 666 /usr/local/share/doc/pkg-config不会更改 的文件权限-rw-r--r--。同样,我在这个网站上遇到了一个类似的问题,通过执行sudo chown -R $(whoami) /usr/local; 解决了这个问题,但这在我的情况下也不起作用。为什么我无法为此文件添加写权限?

更多细节

pkg-config我原本以为自己编译没什么大不了的,但是当我尝试这样做时,我发现自己陷入了依赖关系的迷宫中:pkg-config需要(并且需要)glib,它需要gettextlibffi。当我尝试编译时gettext,我能够运行makemake install但在此过程中出现了几个错误和“...未找到”消息。尽管如此,它似乎安装正确。获得gettextlibffi安装后,我尝试执行./configure glib并出现与 相关的错误gettext。那时我放弃了并安装了 homebrew。安装后,我收到消息建议我删除一些文件,然后照做了。我还得到了这个:Warning: Some directories in /usr/local/share/locale aren't writable. ... You should probablychown them。我也这么做了。然后我尝试安装pkg-config并遇到了上面描述的问题。

答案1

根据错误消息,存在权限问题的目录是/usr/local/share/doc/pkg-config,但您声称已运行,sudo chown -R $(whoami) /usr/local这只会更改目录的所有权/usr/local,而不会影响任何子目录。您应该运行

sudo chown -R $(whoami) /usr/local/share/doc/pkg-config

看看结果如何。如果没有帮助,请将输出添加ls -l /usr/local/share/doc/pkg-config到您的帖子中,以清楚说明发生了什么。

附注:子目录/usr归 root 所有,普通用户无法写入,这很正常。与其更改权限/所有权,不如以 root 身份运行这些目录中的命令,例如

sudo brew install pkg-config

答案2

可能你之前安装过 pkg-config。你可以卸载并重新安装。

brew 卸载 pkg-config

相关内容