代码之家  ›  专栏  ›  技术社区  ›  Seva Alekseyev

Linux中的硬编码路径

  •  5
  • Seva Alekseyev  · 技术社区  · 14 年前

    GUI-Linux应用程序在硬编码位置(例如/etc/myapp/stuff)存储数据文件(不是特定于用户的)是可以接受的做法吗?我找不到任何会返回应用程序数据首选目录的系统调用。有没有一个关于什么去哪里的惯例?

    6 回复  |  直到 14 年前
        1
  •  4
  •   ssahmed555    14 年前

    一般来说,是的,有一个惯例。在大多数Linux系统上,应用程序配置文件 典型的 位于 /etc/appname/ . 你会想咨询 LSB (Linux Standard Base) 以及 Linux FHS (Filesystem Hierarchy Standard)

    另外,如果您的应用程序针对的是一个特定的Linux发行版,那么该发行版供应商可能有自己的具体建议,包括打包和相关约定。您需要查看发行版供应商的开发人员页面以获取更多信息。

        2
  •  5
  •   Joe Koberg    14 年前

    /opt/appname/stuff 根据 Linux Filesystem Hierarchy Standard

        3
  •  3
  •   VxJasonxV    14 年前

    /etc . 具有提升权限的进程(Web服务器、邮件服务器、聊天服务器等)的数据文件通常存储在 /var . 这就是一致性的终点。有些人说你从存放它们的地点开始( /等等 /变量 )那就来一杯吧 appname 应用程序的子文件夹,然后根据需要继续。

    XDG ~/.config 对于每用户配置,以及 ~/.cache 对于需要保存的可替换静态和/或生成的数据。

    查看我的主目录,我有几个关键点目录: ~/.缓存 ~/.irssi ~/.maildir ~/.mozilla ~/.kde ~/.ssh ~/.vnc


    http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

        4
  •  2
  •   caf    14 年前

    有一些惯例。

    • 可读/可编辑 (基于文本的)配置文件进入 /etc/appname/
    • 系统范围内,每台机器二进制数据文件的变化(如二进制数据库)进入 /var/*/appname/ - /var/cache/appname/ /var/spool/appname/ /var/lib/appname/ 是最常见的。
    • /usr/share/appname/ .
        5
  •  2
  •   camh    14 年前

    strings(1) 在一些现有的可执行文件上)。

    也就是说,这些类型的路径是构建时可配置的,而不是运行时可配置的 默认情况下 . 许多应用程序都支持命令行选项来指定配置文件的位置,并且该配置文件通常包含其他应用程序资源的路径。这允许应用程序以最小的配置(内置路径)运行,但也允许站点完全自定义路径。

        6
  •  0
  •   Community CDub    7 年前

    在Linux下,系统调用只提供基本服务(打开文件、联网、进程间通信等)。其余的是使用库完成的。

    如果您正在编写一个GUI应用程序,您应该查看工具箱的文档,看看它是否提供了一种管理默认值的机制。两者 KDE Gnome 举个例子。