分页: 1 / 1

《NetBSD pkgsrc指南》中文版-Chapter 8. 已安装文件的目录结构

发表于 : 2010-05-19 10:11
leo
Chapter 8. 已安装文件的目录结构
目录
8.1. ${LOCALBASE}里的文件系统布局
8.2. ${VARBASE}里的文件系统布局
pkgsrc安装的文件的组织结构很像基本系统 /usr 目录,但是有些细节略有差异。这是因为最初pkgsrc源于FreeBSD并采用它的文件系统结构层次。后来受到NetBSD的很大影响。但是不管你在哪个系统上使用pkgsrc, 你都可能希望pkgsrc 具有一样的文件布局。

pkgsrc有个主要的根目录, 这4个目录都可以在bootstrap/bootstrap 脚本里进行配置。当使用root身份进行安装时, 默认的位置在:

代码: 全选

LOCALBASE= /usr/pkg
PKG_SYSCONFBASE= /usr/pkg/etc
VARBASE= /var
PKG_DBDIR= /var/db/pkg

在无特权模式下(由其他用户安装pkgsrc), 默认的位置为:

代码: 全选

LOCALBASE= ${HOME}/pkg
PKG_SYSCONFBASE= ${HOME}/pkg/etc
VARBASE= ${HOME}/pkg/var
PKG_DBDIR= ${HOME}/pkg/var/db/pkg

下面解释一下这四个目录的作用及它们是什么样的。

LOCALBASE 相当于进本系统内的 /usr 目录。它是一个 “主要” 目录,文件被安装在这里,并且这里包含有大家熟悉的 子目录,像 bin, include, lib, share 和 sbin.

VARBASE 相当于基本系统内的 /var 。 一些程序(特别是 games, network daemons) 在正常运行时需要对这个目录有写权限。

PKG_SYSCONFDIR 相当于基本系统内的/etc。 包含了packages的配置文件, 同样,pkgsrc的mk.conf 自己也在里面。

8.1. ${LOCALBASE}内的文件系统布局
一个典型的pkgsrc安装在${LOCALBASE}目录下存在下列目录。

bin
包含可运行程序,它们是给最终用户直接使用的。

emul
包含了为各种其它操作系统的模拟层的文件,特别是为了NetBSD。

etc (通常的位置在${PKG_SYSCONFDIR})
包含了配置文件。

include
包含了C 和C++编程语言的头文件。

info
包含了各个packages的GNU信息文件。

lib
包含了共享和静态库。

libdata
包含了安装后不再改变的数据文件。其它的数据文件属于${VARBASE}.

libexec
包含了不打算给最终用户使用的程序, 例如helper programs 或 network daemons.

libexec/cgi-bin
包含了那些打算由web服务器作为CGI脚本运行的程序。

man (the usual value of ${PKGMANDIR})
包含了用户手册格式的简要文档。

sbin
包含了那些打算只留给超级用户使用的程序。

share
包含了独立平台的数据文件,这些文件在安装后不会变化。

share/doc
包含了由packages提供的文档文件。

share/examples
包含了packages提供的样本文件。值得一提的是, 在安装时除了这里保存这些原始的 配置文件意外,这些配置范例文件的一份副本也被拷贝到 ${PKG_SYSCONFDIR}。

share/examples/rc.d
包含了针对rc.d文件的原始脚本。

var (${VARBASE}的默认位置。)
包含了安装后可能被修改的文件。

8.2. ${VARBASE}里的文件系统布局
db/pkg (${PKG_DBDIR}的默认位置)
包含了当前安装的packages的信息。

games
包含了highscore文件。

log
包含了log文件。

run
包含了当前正在运行进程的信息文件。