Fink

打包 - 4. 文件系统布局

下述的文件系统布局指南是 Fink 打包规则的一部分。

4.1 文件系统层次结构标准

Fink 遵循《文件系统层次结构标准》(Filesystem Hierarchy Standard),简称 FHS 的精神。 我们只能说遵循它的精神,是因为 FHS 是为操作系统提供者所涉及的,因此它是在 //usr 层次级别上来控制。而 Fink 只是一个附加的系统,它指控制它自己的安装目录(或安装前缀指定的目录)。 本章的例子使用默认的前缀 /sw

4.2 目录

文件应该分类存放在层次结构中下列子目录中:

FieldValue
/sw/bin

这个目录存放通常的可执行程序。里面没有子目录。

/sw/sbin

这个目录存放那些应该只由系统管理员使用的命令。 后台守护进程程序会放在这里。 里面没有子目录。

/sw/include

这个目录存放 C 和 C++ 头文件。 如果需要的话,可以创建子目录。 如果软件包安装的头文件可能与标准的 C 头文件发生混淆的话,这些头文件必须放到子目录中。

/sw/lib

这个目录存放那些系统架构相关的数据文件和函数库。 除非有特别的理由,否则静态和动态连接库应该直接保存在 /sw/lib。 这里通常还保存那些不应该由用户直接运行的可执行程序(否则的话,应该放在 libexec)。

软件包可以创建子目录来存放私有数据或可加载模块。 请确定使用那些对保持兼容性有利的目录名。 在目录名或目录层次中使用主版本号是个好办法,例如:/sw/lib/perl5/sw/lib/apache/1.3。 Care should be taken when the host type is used to create directories. powerpc-apple-darwin1.3.3 这样的目录对兼容性是不利的,powerpc-apple-darwin1.3 或仅仅是 powerpc-apple-darwin 是个好些的选择。

/sw/lib/ppc64 /sw/lib/x86_64

This directory is for 64-bit libraries, with /sw/lib/ppc64 being used under powerpc architecture, and /sw/lib/x86_64 being used under i386 architecture. Libraries which have been built 'fat' should be stored in /sw/lib instead.

/sw/share

这个目录是存放那些系统体系架构无关的数据文件。 那些 /sw/lib 中的规则也适用于这里。 下面描述一些通常的子目录。

/sw/share/man

这些目录中包括帮助页。它按照通常的分类方法进行组织。 在 /sw/bin/sw/sbin 中的每个程序都应该有一个对应的帮助页。

/sw/share/info

这个目录包含 Info 格式(从 Texinfo 源文件产生)的文档。 dir 文件的维护是通过 Debian 版本的 install-info (dpkg 软件包的一部分) 来自动进行的。 适用 InfoDocs 描述字段来自动生成 postinstprerm 软件包脚本的合适代码。 Fink 确保不会有软件包会安装它自己的 dir 文件。 这里不会有子目录。

/sw/share/doc

这个目录包括那些既不是帮助页,也不是 Info 的文档。 例如 README,LICENSE 和 COPYING 文件等。 每个软件包必须在这里创建一个子目录,以软件包的名字命名。 目录名不能包括版本号(除非它正好是软件包名的一部分)。 提示:使用 %n 就好了。

/sw/share/locale

这个目录包含国际化所需要的信息目录。

/sw/var

var 目录保存可变数据。 它包括队列目录,访问锁文件,状态数据库,游戏最高分和日志文件。

/sw/etc

这个目录保存配置文件。 对于那些需要在这里保存比较多文件(比方超过一两个的数目)的软件包,应该建立一个子目录。 子目录应该和软件包或者里面的程序同名,以方便识别。

/sw/src

这个目录用于保存和构建源代码。 软件包不应该在这个目录里面安装任何东西。

/sw/Applications

This directory is for storing OS X-style applications which are launched by double-clicking rather than from the command line.

/sw/Library/Frameworks

This directory is for storing OS X-style frameworks, sometimes used by OS X-style applications.

4.3 应该避免的事情

除了上面提到的以外,在 /sw 中不应该有其它的目录。 特别地,不应该使用下面这些目录: /sw/man/sw/info/sw/doc/sw/libexec/sw/lib/locale

Next: 5. Compilers