在 Linux 中,安装能与 Docker 内部和外部“良好配合”的软件的最佳位置是哪里?

在 Linux 中,安装能与 Docker 内部和外部“良好配合”的软件的最佳位置是哪里?

在 Linux 系统中,安装自己的软件的最佳位置是哪里,该软件可以在 Docker 容器内部和外部正常运行?

例如,如果想要安装一个名为的软件:

name="com.hovio.birds.happybirds"

最好将其安装在:

/hovio/birds/happybirds

或者

/opt/hovio/birds/happybirds

我认为在 Docker 之外,/opt在没有 root 访问权限的 Linux 系统中效果会更好,就像这里解释的那样

有任何想法吗?

答案1

一般来说,在 Linux/Unix 中,人们不会在文件系统的根级别随意放置目录。关于根文件系统级别通常被接受的部分的良好概述 ( /)可以在这里找到大致如下,变化不大:

/bin       Essential command binaries
/boot      Static files of the boot loader
/dev       Device files
/etc       Host-specific system configuration
/lib       Essential shared libraries and kernel modules
/media     Mount point for removeable media
/mnt       Mount point for mounting a filesystem temporarily
/opt       Add-on application software packages
/sbin      Essential system binaries
/srv       Data for services provided by this system
/tmp       Temporary files
/usr       Secondary hierarchy
/var       Variable data

虽然没有明确说明一个结构不能将自己的目录放在该级别,默示结构基本上表明,“嘿,除了适合已建立的父目录结构的内容外,不要在这里放置任何东西。”

因此,了解了这一点,看到了你问题中关于结构的想法:

/hovio/birds/happybirds

好吧,这让我这个系统管理员感到恶心。你不这样做的原因是根文件系统级别 ( /) 应该只用于目录父层次结构。如果你对安装的每个软件都这样做,很快就会变得太混乱了。即使你“保证小心谨慎”,随着时间的推移,这样做也会破坏某些东西。

现在将内容放入/opt目录中已得到充分尊重和理解。因此这样做没问题:

/opt/hovio/birds/happybirds

而且它不一定与根系统访问有关。将不适合其他地方的系统软件放入 中只是一种公认​​的惯例/opt。正如这里解释清楚

此目录保留用于所有不属于默认安装的软件和附加软件包。例如,StarOffice、Kylix、Netscape Communicator 和 WordPerfect 软件包通常都在此处。为了符合 FSSTND,所有第三方应用程序都应安装在此目录中。

如果出于任何原因,其他人(不是您)稍后需要评估系统,那么这也将变得更加容易。他们不必费尽心思去思考/hovio目录的作用,只要看到其中的内容,他们就会知道/opt这是有用/重要的。

相关内容