目录
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
然后, 用下面的命令释放提取:
代码: 全选
$ tar -xzf pkgsrc-20xxQy.tar.gz -C /usr
要下载当前版的pkgsrc, 运行:
代码: 全选
$ ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz
另一个获取tar文件的可选方式是你可以通过Software Update Protocol(软件升级协议,SUP)获取pkgsec, 要这样, 请确认你的supfile文件有一行
代码: 全选
release=pkgsrc
请参阅/usr/share/examples/supfiles里的例子, 并且要确保 /usr/pkgsrc 目录存在。 然后, 仅需运行:
代码: 全选
$ sup -v /path/to/your/supfile
第一次提取(全部)pkgsrc, 你首先需要设置一些环境变量。对C-Shell来说, 输入:
代码: 全选
% setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot
% setenv CVS_RSH ssh
或者, 同样对bourne shell:
代码: 全选
$ export CVSROOT="anoncvs@anoncvs.NetBSD.org:/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
这将在你的/usr/目录下创建一个pkgsrc/目录,并且所有的package源代码将被储存在/usr/pkgsrc/目录下。
要提取pkgsrc当前分支, 运行:
代码: 全选
$ cd /usr
$ cvs checkout -P 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
当更新pkgsrc时, CVS程序根据你选择的分支工作。但是不管因什么原因, 假设你想从稳定分支切换到当前分支, 你可以通过在update选项后面添加 -A 选项实现。要从当前分支切换回稳定分支, 增加类似 -rpkgsrc-2009Q3 的选项。
2.2.2.2. 更新时我的修改会怎样?
当你更新pkgsrc时, CVS程序仅会覆盖在CVS仓库里注册的文件。这意味着你创建的任何packages将保留下来不会被修改。如果你修改的文件由CVS管理, 稍后更新进程将尝试将你的修改与代码库内的文件整合在一起。请参阅CVS手册, chapter update 以获取更多的细节。