我们使用的转速部署我们的网络应用程序内部。Rpm安装的文件、配置apache,cron、记录等等。

我想建立一个测试版本的转用于安装在一个不同的位置不同的配置for apache,cron和记录。它应该有可能同时安装的生产和测试rpm在同一台机器上。

与这两个rpm装我会喜欢的东西

/opt/app/www/...
/opt/app-test/www/...
/etc/httpd/conf.d/app.conf
/etc/httpd/conf.d/app-test.conf
/etc/cron.d/app
/etc/cron.d/app-test
/etc/init.d/app
/etc/init.d/app-test

是什么将是一个很好的方式来实现这一目标?

  • 复制规范,并重新命名的一切"测试"?
  • 创建不同的子包,用于生产/测试?
  • 使用转宏的改变位置的名称和在规格?
  • 使用rpm--搬迁?

是否有任何现有的转试图这样做,我可以看看?

有帮助吗?

解决方案

在我的规格文件的,我用的 建立宏 然后,有一个测试帐户(不根)和一个自定义~/.rpmmacros,我改变default prefix:

%_prefix %{_home}

工作正常。

你甚至可以创建一个测试转数据库:

$ rpmdb --initdb --dbpath /home/test/var/lib/rpm

并把这个放在你的.rpmmacros:

%_dbpath /home/test/var/lib/rpm
%_rpmlock_path %{_dbpath}/__db.000

其他提示

虽然你有不同的解决办法,我决定建议另一种方式来实现这一点。没有什么是错误的虚拟化。可能一个更好的解决方案无论如何因为在运行测试环境,在同一台机器上的生产是不安全/安全,我猜。那所说的...

我可能会使用一个规格文件作为一个模板,然后这一点:

...
# somwwhere in the beginning of spec
%global testrel test

#rest of document
Source0: tarball-with-things%{?testrel}.tar.bz
...
%if ${?testrel:1}${!?testrel:0}
# this will execute only in test rpm
%endif
...

注意这一问题完全没有字幕的 %{?testrel} 宏观是件有趣的事情。它可以更新的东西,同时对这两个版本,但是如果你想要保留一些具体的一个版本或其他的你还是可以的。它也不需要任何更改数据库,定义中的宏~/.rpmmacros(这将改变,取决于系统是建立在)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top