鉴于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开发人员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
谢谢你,尼尔斯! =)