Cygwin(在Windows上) - 权限被拒绝 - 无法编译

时间:2013-05-19 13:20:38

标签: ruby-on-rails cygwin permission-denied libyaml

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

  • ./ configure >成功
  • 制作>成功
  • make install >失败

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

P.S。我是以管理员身份运行的。

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

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

感谢您的时间。

更新 - >溶液

似乎要绕过此“权限被拒绝”错误,您不仅需要成为管理员,还需要最初安装Cygwin的管理员。 (他们是唯一可以在Cygwin的/ usr / local /目录中自由编辑文件的人。)

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

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

P.S。我不确定这是否是Yaakov所说的......

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果您使用“for all users”选项安装CygWin,那么/ usr / local将是一个系统文件夹。因此普通用户不能简单地写入(通过Id SKU QtyRec QtyDispatch 1 001A 5 0 2 001B 5 0 3 001C 10 0 4 001A 8 0 5 001G 5 0 6 001A 6 0 7 001F 5 0 8 001A 25 0 9 001A 9 0 )。

解决方案

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

  

./配置

     

     

PWD

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

  

make install

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

当然,您也可以使用

将安装目标重定向到普通用户的位置
  

./ configure --prefix = users_own_cygwin_installation_destination_folder

(但后者对于cygwin初学者几乎总是一个坏主意 - 如果你知道自己在做什么,你应该这样做,尤其是采用你的环境/ PATH设置)