linux - 配置文件中的文件名应该使用绝对路径还是相对路径?

标签 linux configuration-files autoconf

我正在用 C++ 编写一组程序,我想将其部署到多台机器上并分发给其他开发人员进行测试。如何在配置文件中指定文件路径以及如何在 cron 作业、命令行、示例 api 等中指定配置文件的位置?

我的意思是,我应该为我的应用程序使用 ROOT_DIR 并始终指定相对于该目录的文件路径吗?标准做法是什么?

我可以使用 autoconf 的配置脚本在我的应用程序配置文件中写入 ROOT_DIR 还是我应该统计配置文件以找到它在机器中的位置?谢谢。

最佳答案

对于 Autoconf,我相信您通常使用 --prefix 选项将应用程序安装到非默认位置。默认是系统范围的。

这是一些 Autoconf documentation .

这样,用户就可以决定他们是想要系统范围的还是特定于用户的(或其他)。

您可能想要使用操作系统提供的包管理器。例如,在 Debian 上你可能想要制作一个 deb 包——其他系统默认使用不同的包管理器。这将有助于解决您的应用程序的依赖关系。

例如:如果您的应用程序需要库 Foo 的 X.Y 版本,包管理器可以确保您的用户在安装您的包之前拥有该版本。

您还可以查看 RPM Package Manager ,已经存在了一段时间。

简而言之:没有一个答案。 Linux 中的常见比喻 (:

关于linux - 配置文件中的文件名应该使用绝对路径还是相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073213/

相关文章:

linux - grep 唯一出现

Linux原生配置文件格式读取效率

C++:如何从格式化的文本文件中读取大量数据到程序中?

compilation - 使用automake进行交叉编译时,重要的是什么?

autoconf - 使用 autoconf 进行库解析?

autotools - 在 Autoconf 测试中编译多个源文件

php - 如何在 PHP 中轻松简单地安排 cron 作业?

Python3.7 与 GNU/Linux 并使用 os.makedirs() - PermissionError : [Errno 13] Permission denied

php - 使用 PHP 查看域是否正在使用或注册的快速方法

apache - 如何从 httpd 2.2 迁移到 httpd 2.4 中的 conf.modules.d 目录?