【发布时间】:2017-10-18 15:36:22
【问题描述】:
我的项目应该在其目录中有一个规范文件(因此它不在SPECS 目录中),该文件可用于从带有make rpm 的包中构建一个rpm 包。
项目本身是一个 Symfony 应用程序。因此,在安装包时应该发生 3 件事:
- 将应用程序复制到其目的地(最好是正确的 apache2 目录)
- 将配置文件复制到
/etc/appname/ - 为
/var/log/appname中的日志文件创建一个目录
可以使用make dist 构建应用程序,它会构建应用程序并在之后创建一个dist.tar.gz 文件。
据我了解rpmbuild 应该足以实现我的规范文件的%install 部分。但我的问题是,在本节中,我位于~/rpmbuild 目录中,我的压缩应用程序和源代码都不存在于该目录中。只需 cd 到另一个目录是行不通的,因为我不知道规范文件的调用位置(以及项目的其余部分)。
我想要的是这样的:
Name: appname
# rest of the header (group, summary, ...)
Source: dist.tar.gz
Requires: php >= 7.0, apache2
%description
important words
%install
cp * /var/www/appname # copy the application to its destination
cp docs/config/example /etc/appname/ # copy config to its destination
mkdir -p /var/log/appname # create log directory
此外,我不确定我的%files 在这种情况下应该是什么以及权限。
【问题讨论】: