Linux 中多个 lib 文件夹之间的区别

Linux 中多个 lib 文件夹之间的区别

Linux 系统中众多的库有什么区别? (/lib、/usr/lib、/var/lib、/usr/share/lib 等等)。

我知道每当我安装应用程序时它都会由 synaptic 自动处理,但如果我想成为一名 Linux 开发人员,我肯定需要知道将我的应用程序库放在系统中的什么位置。

答案1

通常,您的软件将安装在 /、/usr 或 /usr/local 下。这称为“前缀”。/ 通常为最关键的操作系统程序保留。/usr/ 为软件包管理器保留。因此,当您编写软件时,最礼貌的做法是将其设置为前缀为 /usr/local。这样,当有人将其打包用于发行版时,就可以覆盖此前缀。

请注意,我并不是专门谈论“lib”。前缀下有几个常见的子目录,lib 只是其中之一。“bin”用于可执行文件,“share”用于数据文件,“lib”用于共享库等等。因此,如果您的程序是一个库,您可以默认将其安装到 /usr/local/lib。如果它是一个普通程序,您可以将其安装到 /usr/local/bin,而数据文件位于 /usr/local/share。重要的是,您要使前缀在编译时是可选的。有些人可能更喜欢安装到 /usr 而不是 /usr/local,反之亦然。

答案2

还有一个描述 Linux/Unix 文件系统层次结构的标准。可以在以下位置找到:http://www.pathname.com/fhs/。这主要针对发行版开发人员,但我认为用户/开发人员没有理由不知道这一点。

答案3

/bin 和 /sbin

  • 用于系统管理的二进制文件,也用于单用户模式。它们的库文件位于 /lib 中。

/usr/bin 和 /usr/sbin

  • 包含所有用户使用的非必要二进制文件以及用于网络服务的二进制文件和所有二进制文件。它们的库放在 /usr/lib 中。

/var/lib

  • 包含保存有关正在运行的程序或程序实例的状态信息的文件。用户不需要更改这一点。

/usr/共享/lib

  • 包含与架构无关的数据文件。

相关内容