Linux目录

Linux目录,linux,unix,installation,packaging,directory,Linux,Unix,Installation,Packaging,Directory,我正在为我的程序编写安装脚本,该程序应该运行在Linux/Unix操作系统上。以下文件的默认目录是什么: 可执行文件(程序)。程序应该通过在命令行中键入其名称来执行 共享库 第三方共享库(该程序不是开源的,所以我需要重新分发第三方库) 所有用户的只读程序配置文件 可供所有用户进行读/写访问的配置数据 可执行文件(二进制): /垃圾箱/ /usr/bin/ /home/~用户/bin/ 共享: /usr/股份/ 其他: /等/ 如果您不知道*nix操作系统的文件结构,我不确定编写安装脚

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

  • 可执行文件(程序)。程序应该通过在命令行中键入其名称来执行
  • 共享库
  • 第三方共享库(该程序不是开源的,所以我需要重新分发第三方库)
  • 所有用户的只读程序配置文件
  • 可供所有用户进行读/写访问的配置数据
  • 可执行文件(二进制):

    • /垃圾箱/
    • /usr/bin/
    • /home/~用户/bin/
    共享:

    • /usr/股份/
    其他:

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

    我建议你读一下:


    ^.^

    列表因Linux文件系统而异

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

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

    三,<代码>/usr/share/lib

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

    5)
    /usr/local/etc
    或通常位于dot目录名下的
    /home
    目录中,如果配置文件允许bin目录位于
    /home/user\u id/bin
    下,其中“user\u id”是相关的登录id。。例如,用户“jdoe”的配置可以写入
    /home/jdoe/.configs
    ~/.configs

    不要依赖于此,在大多数情况下,LSB文件系统要求至少有:
    /bin
    /etc
    /usr
    /lib
    /home

    例如,
    /usr
    可以位于不同的分区上,对于
    /home


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

    查看。

    最简单的方法是为你的应用程序制作一个
    .rpm
    ,然后使用例如
    alien
    来制作一个
    deb
    。上次我做了一个deb,非常非常简单。如果您想启用它,打包还允许您进行某种自动更新,并且您无需考虑太多卸载过程

  • $PREFIX/bin
  • $PREFIX/lib
  • $PREFIX/lib
  • /etc
  • $HOME/.config
  • 其中,
    $HOME
    是运行应用程序的用户的主目录,在运行时确定<代码>$PREFIX取决于分发方法:

    • 如果作为源代码分发,
      $PREFIX
      应该是可配置的,但默认为
      /usr/local
    • 如果作为二进制tarball分发,
      $PREFIX
      通常应该是
      /usr/local
      (但
      /opt
      也很常见)
    • 如果作为分发包(如RPM或DPKG)分发,
      $PREFIX
      应为
      /usr

    文档和其他独立于体系结构的文件应放入
    $PREFIX/share/doc
    ;实例之间共享的程序生成的文件应该放在
    /var/run
    (如锁文件、pidfiles和套接字)或
    /var/lib
    (如共享二进制数据库)中。

    有用:,@Migrators:这似乎不适合超级用户,因为它是关于如何编写安装程序的。不/usr/share适用于可由多个体系结构(i686、amd64、ppc、armel…)共享的文件,如图像或文档。它不适用于共享库,应该是2)。/etc在我的Ubuntu计算机上是只读的,所有用户都可以读/写哪个目录,像文档和设置\ Win XP中的所有用户?@Alex:另一个点可以是/usr/local/etc@Alex:一般来说,如果一个用户可以任意影响另一个用户的程序运行方式,这被认为是一个坏主意(特殊情况下,如游戏中的高分表通常使用setgid可执行文件处理)。如果确实需要,您可以(在安装时)为您的应用程序创建一个
    /etc/
    目录,以及一个
    /etc//all users
    目录或配置文件,该目录或配置文件是世界可写的。不过这似乎仍然是个坏主意(在XP上,“所有用户”文件夹默认只能由管理员和超级用户写入)。不/usr/share适用于可由多个体系结构(i686、amd64、ppc、armel…)共享的文件,如图像或文档。对于共享库,不应使用2)。+1作为链接,但您应该提到,用户程序不得全面进入/binApologies,早上的第一个答案-请原谅我:'(-为+1干杯!Neurofluxation,感谢您提供有用的链接。/etc在我的Ubuntu计算机上是只读的,那么所有用户的读/写访问权限呢?对。关于OPs评论,如果您没有root权限,请在$HOME中安装并更新各种路径变量以反映这一点。