《NetBSD pkgsrc指南》中文版-Chapter 2. 从那里获取pkgsrc并使其保持最新

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

版主: lionux

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

《NetBSD pkgsrc指南》中文版-Chapter 2. 从那里获取pkgsrc并使其保持最新

帖子 leo » 2010-05-28 12:36

Chapter 2. 从那里获取pkgsrc并使其保持最新
目录

2.1. 第一次获取pkgsrc
2.1.1. tar文件
2.1.2. 通过SUP
2.1.3. 通过匿名CVS
2.2. 保持pkgsrc更新
2.2.1. tar文件
2.2.2. 通过CVS
在你下载和提取文件前, 你必须先确定在哪里提取它们。当以root身份运行pkgsrc时, pkgsrc 通常被安装在/usr/pkgsrc. 尽管你可以在文件系统内随意选择安装源代码和二进制文件的位置,但你必须确保路径名称中不包含可能引起shell或其它程序错误解释的空格或其它字符。 一个安全的方式是仅用字母、数字、_、-。

2.1. 第一次获取pkgsrc
在你下载任何pkgsrc文件前, 必须先确定你是要当前 分支或者 稳定 分支。后者是由当前分支按季度派生出的另一个分叉,它仅获取安全更新方面的修正。稳定分支的名称由年度和季度构成,例如2009Q1.

第二步是决定 如何 下载pkgsrc。你可以通过获取tar文件, 通过SUP, 或者通过CVS. 这解释一下这三种方式。

2.1.1. tar文件
下载pkgsrc文件的首选位置在ftp://ftp.NetBSD.org/pub/pkgsrc/ 。它里面包含了不同用途的子目录, 有关这些子目录的详细描述在 Appendix C, FTP服务器的目录结构.

当前分支的tar文件在目录 current 里,它被命名为 pkgsrc.tar.gz. 它每天自动生成。

稳定分支的tar文件是2009Q1,它位于目录 pkgsrc-2009Q1 下,同样这个文件命名为 pkgsrc-2009Q1.tar.gz。

下载pkgsrc稳定版tarball, 运行:

代码: 全选

$ ftp ftp://ftp.NetBSD.org/pub/pkgsrc/pkgsrc-20xxQy/pkgsrc-20xxQy.tar.gz
这里的 pkgsrc-20xxQy 是要被下载的稳定分支文件, 例如, “pkgsrc-2009Q1”。

然后, 用下面的命令释放提取:

代码: 全选

$ tar -xzf pkgsrc-20xxQy.tar.gz -C /usr
这将在 /usr/ 目录下创建一个pkgsrc/ 目录,而所有的package源代码将储存在目录/usr/pkgsrc/下面。

要下载当前版的pkgsrc, 运行:

代码: 全选

$ ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz
2.1.2. 通过SUP
另一个获取tar文件的可选方式是你可以通过Software Update Protocol(软件升级协议,SUP)获取pkgsec, 要这样, 请确认你的supfile文件有一行

代码: 全选

release=pkgsrc

请参阅/usr/share/examples/supfiles里的例子, 并且要确保 /usr/pkgsrc 目录存在。 然后, 仅需运行:

代码: 全选

$ sup -v /path/to/your/supfile
2.1.3. 通过匿名的CVS
第一次提取(全部)pkgsrc, 你首先需要设置一些环境变量。对C-Shell来说, 输入:

代码: 全选

% setenv CVSROOT [email protected]:/cvsroot
% setenv CVS_RSH ssh

或者, 同样对bourne shell:

代码: 全选

$ export CVSROOT="[email protected]:/cvsroot"
$ export CVS_RSH="ssh"

默认情况下CVS不会按照用户希望的运行。但是有一个简单的方式是在你的home目录下创建一个 .cvsrc 文件,将下面几行保存在里面,这个文件可以节省你的时间和减少你的bug提交, 所以我们强烈推荐你这样做。你可以在CVS的文档中找到有关这个文件的解释。

代码: 全选

# recommended CVS configuration file from the pkgsrc guide
checkout -P
update -dP
release -d
diff -upN
cvs -q -z3
rdiff -u

第一次获取特定的pkgsrc稳定分支, 运行:

代码: 全选

$ cd /usr
$ cvs checkout -r pkgsrc-20xxQy -P pkgsrc
这里 pkgsrc-20xxQy 是要提取的稳定分支, 例如, “pkgsrc-2009Q1”

这将在你的/usr/目录下创建一个pkgsrc/目录,并且所有的package源代码将被储存在/usr/pkgsrc/目录下。

要提取pkgsrc当前分支, 运行:

代码: 全选

$ cd /usr
$ cvs checkout -P pkgsrc
2.2. 保持pkgsrc更新
比较好的保持pkgsrc更新的方式是通过CVS (即便你第一次使用tar文件获取源代码它也可以正常工作)。和再次下载tar文件相比,CVS可以节省带宽和减少硬盘活动。

2.2.1. 通过tar文件
警告
当使用tar文件更新时, 你首先需要完全删除老的pkgsrc目录,否则已经在pkgsrc服务器上不存在的文件不会在你的硬盘上消失, 它们会导致源代码树的不一致。当你删除旧的文件时,你对pkgsrc文件所做的任何修改将在更新后遗失。 因此我们强烈推荐通过CVS。

注意:默认情况下distfiles和二进制packages保存在你的pkgsrc树内, 所以请别忘记更新前将它们拷贝出来。你也可以通过修改变量DISTDIR 和 PACKAGES将pkgsrc的位置设置为另一个目录而不是默认的目录。 请参阅 Chapter 5, 配置pkgsrc 以获取更多细节。

要从一个tar文件更新pkgsrc, 按照上面的描述下载tar文件。然后, 确保你没有对本地的pkgsrc目录做任何修改。删除pkgsrc目录并释放新的tar文件。

2.2.2. 通过CVS
要通过CVS更新pkgsrc, 请确保环境变量 CVS_RSH 如上面的设置。然后, 进入目录 pkgsrc 运行cvs:

代码: 全选

$ cd /usr/pkgsrc
$ cvs update -dP
2.2.2.1. 在不同的pkgsrc分支间切换
当更新pkgsrc时, CVS程序根据你选择的分支工作。但是不管因什么原因, 假设你想从稳定分支切换到当前分支, 你可以通过在update选项后面”添加 “-A” 选项实现。要从当前分支切换回稳定分支, 增加类似 “-rpkgsrc-2009Q3” 的选项。

2.2.2.2. 更新时我的修改会怎样?
当你更新pkgsrc时, CVS程序仅会覆盖在CVS仓库里注册的文件。这意味着你创建的任何packages将保留下来不会被修改。如果你修改的文件由CVS管理, 稍后更新进程将尝试将你的修改与代码库内的文件整合在一起。请参阅CVS手册, chapter “update” 以获取更多的细节。

主题已锁定

在线用户

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