特定于分发的路径的标准环境变量

启示的

在我看来,关于Linux / Unix的不同发行版之间不同文件系统的结构存在很多困惑(至少我是这样)。

可以认为,与其在每个系统中使用不同类型的软件包,不如使用指向单个文件系统结构中不同目录的环境变量,将更为有用。

例如:如果我想知道Windows系统上“程序文件”目录的位置,则可以使用环境变量%ProgramFiles%%ProgramFiles(x86)%Linux或Unix系统上有这样的设施吗?

吉勒斯“别再邪恶了”

Linux没有等效于Windows的%ProgramFiles%变量,因为它不需要一个。在自己的目录中安装了程序的标准位置:/opt大多数程序没有安装在此处,因为它们是打包进来的,并且它们的文件位于其他程序可以找到的位置。Windows具有%ProgramFiles%变量的原因实际上在很大程度上是历史悠久的:

  • Windows有驱动器号。即使\Program Files是标准的位置,仍然会是它是否是问题c:\Program FilesD:\Program Files等等。因为Linux从来没有过这个问题符号链接允许目录出现在任何地方,无论哪个物理存储介质的它的上。(现代Windows不需要此功能,因为它们具有等效的功能,但该位置仍可修改,以实现向后兼容。)
  • Windows使管理员可以选择系统目录的名称。Linux没有;没关系,因为它从来没有这样做过,而Windows必须容纳选择了不同位置以实现向后兼容性的管理员。
  • 每个Windows程序都有其自己的安装程序,因此没有真正的程序包管理机制,并且跟踪哪个文件属于哪个程序包的唯一方法是每个目录只有一个程序包。情况开始改变,但还没有完全改变。相比之下,Linux通常将文件存储在可以找到它们的位置,并让程序包管理器跟踪它们的归属。

Linux确实具有指定路径的环境变量:PATH用于可执行命令,LD_LIBRARY_PATH用于共享库,MANPATH用于手册页等。它们都是关于在哪里找到文件,而不是在哪里放置文件。程序不知道在哪里放置文件,而是程序包管理器知道的东西程序包管理器有他们的数据文件,他们不需要环境变量来告诉他们事物在哪里。

Linux系统上的目录结构在“文件系统层次结构标准”中进行了标准化其中大多数不需要环境变量,这是因为位置是标准位置,或者是因为不需要单个位置。

不同发行版具有不同的软件包系统的事实并不是由于具有不同的目录结构。这是发行版之间的主要区别之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章