1

我正在尝试按照他们网站上的说明构建和安装 libYAML > http://pyyaml.org/wiki/LibYAML

  • ./configure > 成功
  • 使 > 成功
  • 安装 > 失败

我收到以下错误“无法创建目录'/usr/local/include':权限被拒绝。” 见下文:

PS我以管理员身份运行。

JetBlue@JetBlue-Laptop ~/yaml-0.1.4
$ make install
Making install in include
make[1]: Entering directory `/home/JetBlue/yaml-0.1.4/include'
make[2]: Entering directory `/home/JetBlue/yaml-0.1.4/include'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/include" || /usr/bin/mkdir -p "/usr/local/include"
/usr/bin/mkdir: cannot create directory `/usr/local/include': Permission denied
Makefile:235: recipe for target `install-nobase_includeHEADERS' failed
make[2]: *** [install-nobase_includeHEADERS] Error 1
make[2]: Leaving directory `/home/JetBlue/yaml-0.1.4/include'
Makefile:356: recipe for target `install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/JetBlue/yaml-0.1.4/include'
Makefile:343: recipe for target `install-recursive' failed
make: *** [install-recursive] Error 1

如何解决这个“权限被拒绝”错误

谢谢你的时间。

更新 -> 解决方案

看来要绕过这个“permission denied”错误,你不仅需要是管理员,还需要原来安装Cygwin的管理员。(他们是唯一可以自由编辑 Cygwin 的 /usr/local/ 目录中的文件的人)。

因此我的问题。尽管我是管理员,但我仍然没有该目录的编辑权限。

所以......我现在只是使用该帐户来开发 -_- (目前工作太多,无法开始使用 sudos 等)

PS我不确定这是否是Yaakov所说的......

4

2 回答 2

1

检查您对 /usr/local 的权限,或使用另一个具有写入权限的 --prefix 重新编译。

但是你应该知道这个库已经在 Cygwin 发行版中可用了。安装 libyaml-devel 及其依赖项以使用它。

于 2013-05-19T23:06:24.867 回答
1

如果您使用“所有用户”选项安装 CygWin,那么 /usr/local 将是一个系统文件夹。所以普通用户不能简单地写入它(通过make install)。

解决方案

作为普通用户拥有一个 cycgwin shell。你在那里

。/配置

制作

密码

以管理员身份启动另一个 cygwin shell(单击图标)。在那里你cd进入你称为 make 的文件夹(参见它的pwd命令的输出)。

进行安装

这将具有写入 /usr/local 的管理员权限。

当然,您当然也可以将安装目标重定向到普通用户的位置

./configure --prefix=users_own_cygwin_installation_destination_folder

(但后者对于 cygwin 初学者来说几乎总是一个坏主意——只有在你知道自己在做什么的情况下才应该这样做,尤其是采用你的环境/PATH 设置)

于 2015-08-11T07:17:43.703 回答