Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在规范文件中覆盖配置_站点(最佳实践)_Linux_Autoconf_Rpm_Rpm Spec - Fatal编程技术网

Linux 如何在规范文件中覆盖配置_站点(最佳实践)

Linux 如何在规范文件中覆盖配置_站点(最佳实践),linux,autoconf,rpm,rpm-spec,Linux,Autoconf,Rpm,Rpm Spec,如果试图从specfile生成rpm的用户在运行rpmbuild时在环境中设置了CONFIG_站点,并且specfile生成时带有“/configure--prefix=/usr&&make”,则用户在CONFIG_站点中的设置可能会完全破坏生成。(作为一个具体的例子,假设/usr/share/config.site有一行“prefix=/bar”。那么spec文件的文件清单将完全错误,rpmbuild将失败。) 处理这个问题的最佳做法是什么?通常的做法似乎是忽略它。我决定在specfile中设

如果试图从specfile生成rpm的用户在运行rpmbuild时在环境中设置了CONFIG_站点,并且specfile生成时带有“/configure--prefix=/usr&&make”,则用户在CONFIG_站点中的设置可能会完全破坏生成。(作为一个具体的例子,假设/usr/share/config.site有一行“prefix=/bar”。那么spec文件的文件清单将完全错误,rpmbuild将失败。)

处理这个问题的最佳做法是什么?通常的做法似乎是忽略它。我决定在specfile中设置CONFIG_SITE=true:

CONFIG_SITE=true ./configure --prefix=/usr ... CONFIG_SITE=true./configure--prefix=/usr。。。
在调用rpmbuild时,假设环境是原始的,并且没有像在/usr/share/config.site中重置前缀那样愚蠢,这更常见吗?还是维护人员负责确保规范文件按照预期构建rpm?

我认为如果用户设置了一个愚蠢的
配置站点
文件,那是他们自己的错。当然,除此之外,还有无数其他方法可以削弱一个系统;我不会担心的。我从未见过rpm或deb构建脚本对此感到担忧。所以这也许是你的“最佳实践”


你偶尔会看到一个包带来了它自己的
config.site
文件,但是它通常是由包商提供的,以覆盖原始包中可能被破坏的配置检查所产生的内容。

我认为如果用户设置了一个愚蠢的
config.site
文件,那是他们自己的错。当然,除此之外,还有无数其他方法可以削弱一个系统;我不会担心的。我从未见过rpm或deb构建脚本对此感到担忧。所以这也许是你的“最佳实践”

您偶尔可以看到,一个包带来了它自己的
config.site
文件,但它通常由包商提供,以覆盖原始包中可能已损坏的配置检查所产生的内容。

“这是他们自己的错”…问题的根源是my$HOME/config.site中的语法错误,导致前缀始终设置为$HOME的子级。当然是我自己的错,但是让我的构建失败是非常令人困惑的。“这是他们自己的错”……问题的根源是我的$HOME/config.site中的语法错误,导致前缀总是设置为$HOME的子级。当然是我自己的错,但是让我的构建失败是非常令人困惑的。