Linux目录

我正在编写我的程序的安装脚本,它应该在Linux / Unix操作系统上运行。 什么是以下文件的默认目录

  1. 可执行文件(程序)。 程序应该通过在命令行input它的名字来执行。
  2. 共享库。
  3. 第三方共享库(该程序不是开源的,所以我需要重新分配第三方库)。
  4. 所有用户的只读程序configuration文件。
  5. 可供所有用户读/写访问的configuration数据。

列表根据Linux文件系统而有所不同。

1) /bin/usr/bin/usr/local/bin

2/3) /lib/usr/lib/usr/local/lib

3. /usr/share/lib

4) /etc是配置数据的只读位置。

5) /usr/local/etc或通常位于/home目录下的目录名下,如果配置文件允许bin目录位于/home/user_id/bin下,其中'user_id'是相关的登录ID。对于用户'jdoe'的例子,他的配置可以被写入/home/jdoe/.configs~/.configs

不要依赖于这个,大部分LSB文件系统规定至少应该有: /bin/etc/usr/lib/home

例如, /usr可能位于不同的分区上,对于/home也是如此

编辑:感谢dtrosset指出我blooper ….

  1. $PREFIX/bin
  2. $PREFIX/lib
  3. $PREFIX/lib
  4. /etc
  5. $HOME/.config

$HOME是运行应用程序的用户的主目录,在运行时确定。 $PREFIX取决于分配的方法:

  • 如果作为源分配, $PREFIX应该是可配置的,但默认为/usr/local ;
  • 如果作为二进制压缩包发布, $PREFIX通常应该是/usr/local (但是/opt也是常见的)。
  • 如果作为分发包(例如RPM或DPKG)分发, $PREFIX应该是/usr

文档和其他独立于架构的文件应该放在$PREFIX/share/doc ; 实例之间共享的程序生成的文件应该放在/var/run (比如lockfiles,pidfiles和sockets)或者/var/lib (像共享二进制数据库之类的东西)。

检查文件系统层次结构标准 。

可执行(二进制):

  • /斌/
  • 在/ usr / bin中/
  • /家庭/〜用户/箱/

共享:

  • 的/ usr /共享/

其他:

  • /等等/

如果不知道* nix OS的文件结构,我不确定编写安装脚本是否明智。 除此之外,* nix的每个分布在存储数据的位置上都是略有不同的。

我建议你阅读这个: http : //www.comptechdoc.org/os/linux/commands/linux_crfilest.html

^。^

最简单的方法是制作一个.rpm的应用程序,然后使用例如alien来制作一个.deb 。 最后我做了一个deb,这真的很简单。 如果您希望启用它,打包还可以让您进行自动更新,您不需要考虑卸载过程。