新应用程序的数据文件的“/srv/stevedore/”与“/var/stevedore/”?

新应用程序的数据文件的“/srv/stevedore/”与“/var/stevedore/”?

我正在创建一个新的应用程序。目前,我的所有服务器代码、配置、日志和数据文件都位于不遵循任何标准的目录中。看着 维基百科关于文件系统层次结构标准的文章我想出了这个新的安排:

/opt/stevedore/                     Server Code
/etc/stevedore/steve_site_config.pl Server Configuration
/var/log/stevedore/                 Server Logs
/srv/stevedore/                     Server Site Data (Document tree)

使用过阿帕奇如果数据文件位于/var/www/模式中,则似乎表明数据文件应位于此处:

/var/stevedore/                     Server Site Data (Document tree)

此外,用户还可以查看位于以下目录中的文档的本地副本进行编辑:

~/MyStevedore/                      User - Editable files
~/MyStevedore/CheckOut/             User - Files to CheckOut
~/MyStevedore/CheckInToPublish/     User - Files to CheckIn To Publish
  1. 哪个对于默认值更好?为什么:/srv/stevedore/vs /var/stevedore/
  2. ~/MyStevedore/对于标准用户特定目录怎么样?

有关应用程序的更多详细信息,请参阅装卸商网站发布本文时的代码

答案1

  1. 如果您计划包含在发行版中,请使用标准存储桶(bin、sbin 等)并避免/opt*。

  2. 如果我的主目录中有强制文件夹,我真的会很生气。我刚刚把那些东西清理干净了! ;-) 您确定不想使用吗/srv/stevedore/users/(user)?这是一个文档服务器,对吧?

其他理由:

网络数据也可以放入/usr/share/stevedore/web。系统管理员可能有自定义的 Apache 设置,您最不想看到的就是/var/www/htdocs/appname.相反,只需确保它们可用(并且share非常适合该目的),以便管理员可以Alias在 Apache 中创建一个并将 Web 应用程序链接到正确的网站中。

您可以选择/var/stevedore、 或/srv/storedore,只要可配置就可以。您可以预期 Debian 用户会喜欢/var/*,SUSE 用户也会喜欢/srv/*。如果您选择该路线,请确保它可供打包商配置。

这同样适用于安装根目录。这可以是/usr、、/usr/local或管理员或打包者想要的其他内容,或者它必须是可配置的。

用于/var/log/stevedore日志非常有意义。

包装商希望您的包裹与其他包裹相匹配。打包程序还确保您的应用程序链接到其特定版本的库,因此您也不必发布这些库。


[*] 当您将软件放入 时/opt,我希望整个系统都在那里。例如,

/opt/stevedore/bin/
/opt/stevedore/doc/
/opt/stevedore/etc/
/opt/stevedore/lib/
/opt/stevedore/share/
/opt/stevedore/sbin/

这通常用于第三方安装程序或商业游戏。这些包通常仅以二进制格式提供,并附带所有所需的库。甚至配置文件也在该文件夹中提供。

答案2

最终,如果您计划让人们将其打包到他们的发行版中,那么您需要做的是为每个东西建立一个编译时或配置位置。例如,使用 autoconf/automake/configure 设置 --prefix、--bindir、--datadir 等宏。

一般来说,我认为大多数发行版不使用 /opt/ 来打包可执行文件(这些文件将根据需要进入 /usr/bin 或 /usr/sbin )。似乎用户应该定期使用 ~/MyStevedore/ 中的文件,因此不将其创建为 ~/.MyStevedore/ 是可以原谅的,但某些发行版可能使用需要 ~/MyDocuments/ 中的所有内容的文件管理器MyStevedore/ 或 ~/Desktop/MyStevedore/

答案3

/srv/stevedore/ 和 /var/stevedore/ 之间确实没有太大区别。它是什么样的数据?如果其数据文件通过网络服务器发送,/var/www 可能会更好。在这一点上,这三者之间主要是个人偏好。如果数据是程序的状态,那么 /var/lib/stevedore 就更好了;就像数据库将数据文件保存在那里一样。

至于用户目录,用户实际上是否获得了本地unix帐户?如果是这样,〜就可以了。如果不是,那么这不是一个好主意。有人很容易认为这些用户不再存在,因此可以删除他们的主目录。更好的地方是 /var/lib/stevedore/username。

相关内容