文件权限在构建过程中改变,编译终止,因为访问被拒绝(Windows, Cygwin)



我正在尝试使用官方构建脚本并遵循官方Windows构建说明构建ArangoDB。

构建过程中的多个步骤似乎与文件权限混淆,因此编译失败,因为无法再访问所需的文件。我也不能在任何程序中打开它们(访问被拒绝,无法加载,…),即使作为管理员用户并具有提升的权限

到目前为止,我的解决方案是在例如V8-4.3.61build上运行takeown /F . /Ricacls . /T /C /Q /reset以拥有文件并从管理shell重置权限。但是在最终的make pack-win64期间,它不再工作以解决权限问题。

我想知道为什么首先要更改权限。ArangoDB团队提供的脚本似乎并没有改变这些设置。所以必须是在进程中调用的第三方构建脚本(gyp ?!), cygwin环境(bash, make,…)或编译器(msbuild ?)。我不认为这与gitcmake有关,但它们也有关系。

  • Windows 7 64bit
  • Visual Studio 2013 Ultimate
  • Cygwin 2.2.0
  • cmake 3.3.1

在cygwin的所有挂载中关闭ACL (noacl)可以明显修复权限问题:

# /etc/fstab
#
#    This file is read once by the first process in a Cygwin process tree.
#    To pick up changes, restart all Cygwin processes.  For a description
#    see https://cygwin.com/cygwin-ug-net/using.html#mount-table
# noacl = Ignore Access Control List and let Windows handle permissions
C:/cygwin64/bin  /usr/bin   ntfs      binary,auto,noacl           0  0
C:/cygwin64/lib  /usr/lib   ntfs      binary,auto,noacl           0  0
C:/cygwin64      /          ntfs      override,binary,auto,noacl  0  0
none             /cygdrive  cygdrive  binary,posix=0,user,noacl   0  0

你跑了吗

mkpasswd > /etc/passwd
mkgroup > /etc/group

在某个时候吗?因为这也可以设置适当的权限(如果cygwin首先知道映射)

相关内容

  • 没有找到相关文章