在我看来,关于Linux / Unix的不同发行版之间不同文件系统的结构存在很多困惑(至少我是这样)。
可以认为,与其在每个系统中使用不同类型的软件包,不如使用指向单个文件系统结构中不同目录的环境变量,将更为有用。
例如:如果我想知道Windows系统上“程序文件”目录的位置,则可以使用环境变量%ProgramFiles%
或%ProgramFiles(x86)%
。Linux或Unix系统上有这样的设施吗?
Linux没有等效于Windows的%ProgramFiles%
变量,因为它不需要一个。在自己的目录中安装了程序的标准位置:/opt
。大多数程序没有安装在此处,因为它们是打包进来的,并且它们的文件位于其他程序可以找到的位置。Windows具有%ProgramFiles%
变量的原因实际上在很大程度上是历史悠久的:
\Program Files
是标准的位置,仍然会是它是否是问题c:\Program Files
,D:\Program Files
等等。因为Linux从来没有过这个问题符号链接允许目录出现在任何地方,无论哪个物理存储介质的它的上。(现代Windows不需要此功能,因为它们具有等效的功能,但该位置仍可修改,以实现向后兼容。)Linux确实具有指定路径的环境变量:PATH
用于可执行命令,LD_LIBRARY_PATH
用于共享库,MANPATH
用于手册页等。它们都是关于在哪里找到文件,而不是在哪里放置文件。程序不知道在哪里放置文件,而是程序包管理器知道的东西。程序包管理器有他们的数据文件,他们不需要环境变量来告诉他们事物在哪里。
Linux系统上的目录结构在“文件系统层次结构标准”中进行了标准化。其中大多数不需要环境变量,这是因为位置是标准位置,或者是因为不需要单个位置。
不同发行版具有不同的软件包系统的事实并不是由于具有不同的目录结构。这是发行版之间的主要区别之一。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句