Makefile 文件权限在生成过程中更改,编译中止,因为访问被拒绝(Windows,Cygwin)
我正在尝试使用官方软件并遵循官方软件 构建过程中的多个步骤似乎会干扰文件权限,因此编译失败,因为所需的文件无法再访问。我也不能在任何程序中打开它们(访问被拒绝,,无法加载,…),即使是管理员用户和权限提升的用户 到目前为止,我的解决办法是运行Makefile 文件权限在生成过程中更改,编译中止,因为访问被拒绝(Windows,Cygwin),makefile,cygwin,build-process,file-permissions,arangodb,Makefile,Cygwin,Build Process,File Permissions,Arangodb,我正在尝试使用官方软件并遵循官方软件 构建过程中的多个步骤似乎会干扰文件权限,因此编译失败,因为所需的文件无法再访问。我也不能在任何程序中打开它们(访问被拒绝,,无法加载,…),即使是管理员用户和权限提升的用户 到目前为止,我的解决办法是运行takeown/F/R和icacls/例如,V8-4.3.61\build上的T/C/Q/reset,以拥有文件并从管理员shell重置权限。但是在最后的make pack-win64过程中,解决权限问题不再有效 我想知道为什么权限会被更改。ArangoDB
takeown/F/R
和icacls/例如,V8-4.3.61\build上的T/C/Q/reset
,以拥有文件并从管理员shell重置权限。但是在最后的make pack-win64
过程中,解决权限问题不再有效
我想知道为什么权限会被更改。ArangoDB团队提供的脚本似乎没有改变这些设置。因此,必须是在流程(gyp
?!),cygwin环境(bash
,make
,…)或编译器(msbuild
?)中调用的第三方构建脚本。我不认为它与git
或cmake
有关,但它们也涉及其中
- Windows 7 64位
- Visual Studio 2013终极版
- Cygwin2.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
什么时候?因为这也可以设置propper权限(如果cygwin首先知道映射)不,我没有。Cygwin似乎误解了Windows ACL,通常对权限要求过于严格。在一些web文章中提到,通过cygwin环境创建的文件被分配了一个权限集的新实例,这造成了所有的麻烦。noacl显然是唯一(简单?)的解决方案,参见。