如何更正CPackDeb目录的权限?

问题描述 投票:0回答:1

鉴于CMakeLists.txt喜欢:

PROJECT(asdf NONE)
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)

INSTALL(FILES CMakeLists.txt DESTINATION share/doc/asdf/whatever)

SET(CPACK_GENERATOR "DEB")
SET(CPACK_PACKAGE_CONTACT "[email protected]")
INCLUDE(CPack)

make package生成的软件包包含以下内容:

$ dpkg-deb --contents asdf-0.1.1-Linux.deb 
drwx------ root/root         0 2017-12-20 10:50 ./usr/
drwx------ root/root         0 2017-12-20 10:50 ./usr/share/
drwx------ root/root         0 2017-12-20 10:50 ./usr/share/doc/
drwx------ root/root         0 2017-12-20 10:50 ./usr/share/doc/asdf/
drwx------ root/root         0 2017-12-20 10:50 ./usr/share/doc/asdf/whatever/
-rw-r--r-- root/root       235 2017-12-20 10:50 ./usr/share/doc/asdf/whatever/CMakeLists.txt

父目录只有所有者的权限位。如何更正这些以便世界可以读取我安装的文件,例如这些是像drwxr-xr-x而不是?

cmake file-permissions packaging deb cpack
1个回答
1
投票

在与CMake开发人员Nils Gladitz的讨论中,我们能够在影响此问题的环境中跟踪此问题。如果环境中的umask设置为0022而不是0077,则make package会生成具有不同权限的包:

$ dpkg-deb --contents asdf-0.1.1-Linux.deb 
drwxr-xr-x root/root         0 2017-12-20 11:17 ./usr/
drwxr-xr-x root/root         0 2017-12-20 11:17 ./usr/share/
drwxr-xr-x root/root         0 2017-12-20 11:17 ./usr/share/doc/
drwxr-xr-x root/root         0 2017-12-20 11:17 ./usr/share/doc/asdf/
drwxr-xr-x root/root         0 2017-12-20 11:17 ./usr/share/doc/asdf/whatever/
-rw-r--r-- root/root       235 2017-12-20 10:50 ./usr/share/doc/asdf/whatever/CMakeLists.txt

尼尔斯指出,这显然是一个古老的未定期问题[1][2]

谢谢你,尼尔斯! =)

© www.soinside.com 2019 - 2024. All rights reserved.