如何在gradle ospackage插件中使用目录结构?
我正在使用Netflix()提供的gradle ospackage插件,它让我可以轻松创建包含项目输出的RPM包 我希望我的RPM在安装时创建几个空目录。在老式的rpm规范中,我会这样做:如何在gradle ospackage插件中使用目录结构?,gradle,rpm,Gradle,Rpm,我正在使用Netflix()提供的gradle ospackage插件,它让我可以轻松创建包含项目输出的RPM包 我希望我的RPM在安装时创建几个空目录。在老式的rpm规范中,我会这样做: %dir /var/opt/myapp/data 我试着用这个: ospackage { packageName = 'foo' } buildRpm { directory('/var/opt/myapp/data', 640) } “gradlew buildRpm”做得很好。调用r
%dir /var/opt/myapp/data
我试着用这个:
ospackage {
packageName = 'foo'
}
buildRpm {
directory('/var/opt/myapp/data', 640)
}
“gradlew buildRpm”做得很好。调用rpm-q-filesbypkg-p
时,我得到了这个看似正确的输出:
foo /var/opt/myapp/data
但是,在安装时,它会失败:
[vagrant@guest1 share]$ sudo rpm -i foo-0.0.1.noarch.rpm
error: unpacking of archive failed on file ./var/opt/myapp/data: cpio: Archive file not in header
我不明白:
任何提示都是非常受欢迎的,因为Plugin-Rpm.md文件在目录问题上不是很好用。createDirectoryEntry和
addParentDirs
标志控制这一点
into('/mydir/'){
fileMode 0550
from ( 'src/mydir'){
addParentDirs false
createDirectoryEntry true
}
}
手动创建如下目录:
directory( '/space/tmpdir' ,0775);
你看,那个网站上有很多关于这个问题的问答
注意:存在缺陷和解决方法注释
目录语句本身对我来说很好,可能在您发布之后就已经修复了。您可能更想在插件的GitHub页面上问这个问题。我问了,但没有得到回应,所以几周后我决定在这里碰碰运气。祈祷有人尝试过这个我可以在本周晚些时候看一看。感谢您的报道。对于GitHub或Google group上的问题仍然没有答复…我自己也不知道答案,但作为替代方案,您可以执行安装前或安装后脚本,创建您想要的空目录。例如:postInstall文件('postInstall.sh')