我们有一些内部编写的数据导入工具,我需要在新的 Linux 机器上设置它们。
这些是用 Java 和 .NET(在 Mono 上运行)编写的,它们包含二进制文件、配置文件、资源/资产(如图像和模板)。它们还会写入日志并查找一些特殊文件夹以查找要导入的数据。
我是 Linux 新手。目前,它们位于类似 的文件夹中/data/importer.java/
,/data/importManager.net/
这些文件夹包含运行它们所需的所有内容。
但是我看到的/data/
是一个非标准文件夹。所以我想知道是否有合适的地方来设置它们,但是似乎在 Linux 上有很多文件夹,每个文件夹都有特定用途,用于只读/读写数据。
这几乎就像我需要将我的应用程序拆分到一堆文件夹中才能正确执行此操作,并且某些文件夹名称听起来bin
正确,但我该如何处理非二进制/编译文件?
除了二进制文件之外,配置和其他所有内容经常被人修改。
类似于(现在只关注 Java 部分):
/opt/importer.java/
对于二进制文件、配置和资源/var/importer.java/data-in/
用于放入要导入的数据/var/importer.java/logs
对于写入的日志
或者我应该使用/srv/
文件夹?或者也许/usr/bin/
。也许应该将日志写入/home/
正在运行的用户的文件夹中?
一切都太复杂了。每当我读到任何 Linux 文档时,我都会后悔。我是否应该直接将所有内容从另一台机器上原封不动地复制过来,然后忘记我曾经尝试过?
谢谢
路加
答案1
这是一个没有正确答案的问题,而且有点令人感兴趣Unix 历史。
我以前的雇主遵循的规则是,安装非开箱即用的软件,/opt/PackageName-VersionNumber
并且有一个从/opt/PackageName-VersionNumber
到 的符号链接/opt/PackageName
。
配置进入/opt/PackageName/etc
日志进入/opt/PackageName/logs
二进制文件进入/opt/PackageName/bin
数据进入/opt/PackageName/data
对于要分发到我们商店之外的应用程序,我们将其编写为可通过包管理器重新定位。这种情况很少发生,而且并不“有趣”。
答案2
据我所知,本机 Linux 应用程序的二进制文件位于 中[/usr]/bin
,日志位于 中/var
,配置位于 中/etc
,等等。另一方面,旨在全系统使用的非本机应用程序或软件包组合(例如 lampp/xampp)默认安装在 中/opt
,配置通常也位于该文件夹中。如果软件旨在按用户运行,则通常会在其主目录中放置一个文件夹。