《NetBSD Pkgsrc指南》中文版-Chapter 1. 什么是pkgsrc?

NetBSD用户指南中文版、NetBSD pkgsrc指南中文版...

版主: lionux

主题已锁定
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

《NetBSD Pkgsrc指南》中文版-Chapter 1. 什么是pkgsrc?

帖子 leo » 2010-05-19 9:59

--------------------------------------------------------------------------------

Chapter 1. 什么是 pkgsrc?
目录

1.1. 介绍
1.1.1. 为什么要用pkgsrc?
1.1.2. 支持的平台
1.2. 概述
1.3. 术语
1.3.1. pkgsrc内的角色
1.4. 术语
1.1. 介绍
基于Unix的系统有很多可自由获取的软件, 这些软件通常以源代码的形式分发. 在使用这样的软件之前, 需要先对其进行配置以适应本地系统、然后编译和安装, 这些工作正是由NetBSD的Packages集合(pkgsrc)完成的。 pkgsrc还有一些处理二进制packages的基本命令, 所以用户不必自己完成构建packages这项很耗时的工作。

pkgsrc当前包含了数千个packages, 包括:

www/apache - Apache网页服务器

www/firefox - Firefox网页浏览器

meta-pkgs/gnome - GNOME桌面环境

meta-pkgs/kde3 - KDE桌面环境

...这里仅仅列出了很小的一部分。

pkgsrc内嵌了变更依赖包的处理支持, 例如pthreads和X11, 和一些外部特性,诸如在一系列平台上对IPV6的支持。

1.1.1. 为什么要用pkgsrc?
pkgsrc具有下列重要特性:

可以很方便地从源代码构建软件并创建和安装二进制packages。 源代码及最新的补丁可以从主力或镜像下载站点获取, 可以通过checksum校验, 然后在你的系统上构建。 无论在本地平台和 NetBSD模拟平台全提供了对仅以二进制形式分发软件的支持。

所有的packages被安装到一个不变的目录树内, 包括二进制文件, 库文件, 用户手册和其它文档。

Package的依赖包, 包括运行的pakcage更新都自动被处理。在更新过程中可自动处理各种packages的配置文件, 所以本地变化被保存下来。

像NetBSD, pkgsrc秉承了可移植性的设计理念并且由高可移植性的代码编写。这样可以最快速地移植到一个新平台上。 这种可移植性也确保了pkgsrc在所有平台间始终不变的特性.

installation prefix可用来书写软件许可、国际通用加密需求, 而build-time选项可以为大量的packages设置一个简单、全局控制的配置文件。

所有的代码(不包括分发的文件) 全可以在BSD许可下自由获取, 所以你可以按自己的需求扩展或改编pkgsrc。 支持本地packages和补丁应用于其它的计算机上, 所以你可以配置它以适应你的环境。

使用pkgsrc有下列基本原则:

“只在代码正确时才能正常工作。” —这意味着, 如果一个package包含bugs, 你最好找出这些bugs并提交给开发者,而不是先凑合着安装在你的系统上,并指望它可以正确的工作, 在pkgsec内有很多方法用于这类检查: 稳定性分析工具 (pkgtools/pkglint), build-time 检查(可移植的shell脚本), 以及post-installation检查 (安装的文件, 参考的共享库, 脚本翻译)。

“如果它可以工作,它就应该可以在任何地方正常工作” — 就像NetBSD已经被移植到很多硬件构架上, pkgsrc也已被移植到很多操作系统上。packages的表现会在所有的平台上被关注。

1.1.2. 支持的平台
pkgsrc包含了对这些操作系统的源代码分发和二进制分发。获取到所需的源代码或二进制包后, 你可以通过pkgsrc在几分钟内让程序运行起来!

pkgsrc衍生于FreeBSD的ports系统, 而且最初仅为NetBSD开发。从那时起, pkgsrc得到了长足的发展, 目前它支持下列平台:

表 1.1. pkgsrc支持的平台

平台 支持日期
NetBSD Aug 1997
Solaris Mar 1999
Linux Jun 1999
Darwin (Mac OS X) Oct 2001
FreeBSD Nov 2002
OpenBSD Nov 2002
IRIX Dec 2002
BSD/OS Dec 2003
AIX Dec 2003
Interix (Microsoft Windows Services for Unix) Mar 2004
DragonFlyBSD Oct 2004
OSF/1 Nov 2004
HP-UX Apr 2007



1.2. 概述
这篇文档分为三部分。 第一部分, pkgsrc用户指南, 描述了用户如何使用一个软件和其预编译的二进制package, 或者使用NetBSD的package系统构建你自己版本的软件。 第二部分, pkgsrc开发者指南, 解释了如何准备一个package以便可以让其他的NetBSD用户不必掌握package的构建细节就可以轻松地构建它。第三部分, pkgsrc的内部基础结构 是为了满足那些想了解pkgsrc的实施机制的人准备的。

本文档有以下不同的格式: HTML, PDF, PS, TXT.

1.3. 术语
有很多术语是关于ports”, “packages”等等。这里有一个到目前为止本文档内使用术语的描述。

Package
一组文件以及使用pkgsec构建软件特定部分的说明。Packages一般存放于/usr/pkgsrc。

The NetBSD package system
这是“pkgsrc的正式名称。它是NetBSD操作系统的一部分,并且可被引导在非NetBSD系统上运行。 它可处理构建(编译)、安装、以及删除packages.

Distfile
这个术语描述了由软件作者提供的一个或多个文件。所有在NetBSD上构建所需的变化都被反映在相应的package上。 通常distfile是压缩的tar文档,但是也有可能是其它类型。Distfiles通常储存在 /usr/pkgsrc/distfiles 下.

Port
FreeBSD和OpenBSD的用户使用术语, port我们称之为一个package. 在NetBSD的术语里, “port” 指一个不同的构架平台。

Precompiled/binary package
一组用pkgsrc从distfile和构建的二进制文件,将这些文件合并为一个单独的 .tgz文件以便它可以被安装在相同构建的机器上而 无需再次编译。 Packages通常生成在/usr/pkgsrc/packages 目录下; 这里还有一篇文档 ftp://ftp.netbsd.org/pub/NetBSD/packages/.

有时, 这个术语也指术语“package” , 特别是预编译的packages内容。

Program
被安装的软件,是指由相应的package包含在distfile里的全部文件用定义的动作所构建的。

1.3.1. pkgsrc里的角色
pkgsrc用户
pkgsrc用户是指使用pkgsrc提供的packages的人. 一般来说他们是系统管理员。 使用packages内部软件的用户(也许该称为 “end users”) 不在本指南讨论的范畴内。

有两类pkgsrc用户: 一类用户只想安装预编译的二进制packages, 另一类从源码构建, 前者细化你直接安装package, 后者喜欢自己构建二进制packages.对于pkgsrc用户,Part I, “pkgsrc用户指南” 应该提供了所有所需文档。

package维护人员
package维护者如何创建packages在Part II, “pkgsrc开发者指南里”里有说明。

基础设施开发人员
这些人员参与所有 mk/ 目录下文件的开发工作。只有这些人员应该通读 Part III, “pkgsrc基础设施内部开发人员”, 尽管其他人可能也有兴趣。

1.4. 印刷
当给出命令实例时, shell提示符用于显示哪些命令应该/必须以root的身份运行, 或者只用 “普通” 用户的权限就足矣了。 我们用一个 # 表示必须以root身份运行的命令, 而 % 表示仅以普通用户身份就可以运行该命令, 这里假设用户使用的是C-shell或者tcsh。

主题已锁定

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客