cmake:安装时如何更改文件权限?
Posted
技术标签:
【中文标题】cmake:安装时如何更改文件权限?【英文标题】:cmake : How to change file permissions when installing? 【发布时间】:2013-10-24 08:21:43 【问题描述】:我有一个设置了660
标志的文件,但我想安装它并设置700
标志。
我该怎么做?如何在不改变源文件权限的情况下改变文件权限?
我的安装命令是这样的:
install(
FILES common.sh
DESTINATION /rootfs/usr/bin
)
这是我尝试过的(但它不起作用):
install(
FILES common.sh
FILE_PERMISSIONS "600"
DESTINATION /rootfs/usr/bin
)
【问题讨论】:
看看umask
。
@fedorqui 你是什么意思?
例如superuser.com/questions/264383/…
@fedorqui 我知道如何设置权限,但是使用 cmake 安装时如何设置?
不熟悉,只是根据问题的第一个修订评论。我建议保存当前的 umask,但让我们看看其他人的建议。
【参考方案1】:
install(FILES ...)
中没有 FILE_PERMISSIONS
参数。请改用PERMISSIONS
:
install(
FILES common.sh
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
DESTINATION /rootfs/usr/bin
)
【讨论】:
谢谢,它有效。但是您链接的页面谈到了 FILE_PERMISSIONS。我刚刚注意到它不是用于 install(),而是用于 file() 命令。是否可以使用 file() 命令设置权限,因为它似乎提供了更好的控制? 嗯,他们做不同的事情。install(FILES ...)
中添加的文件在执行make install
时安装,并添加到您制作的任何安装包中。 file(INSTALL ...)
中添加的文件在 CMake 运行时安装,甚至在构建开始之前。
此解决方案是否交叉兼容?我在 linux 上尝试过,它可以工作,但我希望在所有三个主要的 pc 操作系统中都具有同等功能以上是关于cmake:安装时如何更改文件权限?的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2linux 如何修改只读文件 3ubuntu安装