同步 ports tree 有很多种方法。与一些其他操作系统不同,FreeBSD目前并不维护多个不同的 [[http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/ports-using.html|ports]] 分支,也就是说,只有“最新”的ports tree是有保障的。
推荐的同步 ports 的方式是使用 portsnap。portsnap的下载和更新是两个分开的步骤,在下载时,它会更新本地的 portsnap snapshot;而更新步骤则将这些更新应用到 /usr/ports/。
更新本地 portsnap snapshot 的方法是:
portsnap fetch
除了这种方法之外,也可以配置 [[http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-cron.html|crontab]] 使其自动进行:
vi /etc/crontab
在其中加入:
0 3 * * * root /usr/sbin/portsnap cron
首次使用 portsnap 时,必须将 snapshot 释放到 /usr/ports/;如果不小心在本地 ports tree 上做了一些不适当的改动,也可以采用这个步骤将其恢复原状:
portsnap extract
此后在更新时,只需执行:
portsnap update
通常我们会希望将这两步操作一次完成:
portsnap fetch update