FreeBSD 更新 ports

来源:互联网 发布:破解路由登录linux 编辑:程序博客网 时间:2024/05/25 20:00

初次:
portsnap fetch extract

以后:
portsnap fetch update

 

更新Ports Tree的方法有很多,例如匿名CVS、CVSup和CTM。


CVSup是采用pull的方式来更新源码的。以CVSup为例,当用户(或cron)运行CVSup程序时,它会和远程的CVSupd服务器取得联系,然后更新文件。用户取回的更新文件是最新的,而且随时可以拿到这些文件。用户还可以限制更新动作,只更新自己感兴趣的某个文件或目录。更新动作由服务端根据用户的设定完成。


CTM有一个脚本文件专门用来辨别修改过的文件。这个脚本文件是由主CTM服务器来执行,每天比较几次,并把两次执行时间内修改过的文件加以压缩、编号,然后加以编码(以可打印的ASCⅡ字符为主),最后以E-mail的方式寄出。当用户收到的时候,这些“CTMdeltas”由ctm.rmail程序来处理。它可以自动解码和进行确认,并在用户的源代码上使用这些修改。如果用户不小心把部分程序清除掉了,CVSup会扫描出来,并自动为用户把不足的部分补齐。


更新Ports Tree

Ports Tree基本上是每天都在更新的,而且各种软件每天都有新的版本会推出,所以要及时更新Ports Tree。另外,一些Ports Tree有问题的地方也需要通过CVSup取得新的版本文件来修正。下面给出更新Ports Tree的方法。


如果用户系统中并没有安装Ports,那么请把光盘放入光驱中,用“/stand/sysinstall”命令,进入“Configure”中的“Distributions”,选择Ports来安装。具体更新操作如下:


一.)这种方式使用 sysinstall 手动安装Ports Collection。

   1.以 root 用户身份, 运行 sysinstall (对于 FreeBSD 5.2 之前的版本, 应该是 /stand/sysinstall),如下所示:
      # sysinstall
   2. 选择 Configure, 按 Enter。
   3. 选择 Distributions, 按 Enter。
   4. 选择 ports, 按 Space。
   5. 选择 Exit, 按 Enter。
   6. 选择您的安装介质,就像CDROM,FTP,等等
   7. 选择 Exit 并按 Enter。
   8. 按 X 键退出 sysinstall。

二.)先安装 CVSup,输入下面的命令。
先在#后输入cd /usr/ports/net/cvsup-without-gui/
再在#后输入make install clean


三.)通过下面的命令在/etc中新增一个make.conf (其实有一个sample在/etc/default中,但现在不用它)文件。


% touch /etc/make.conf


3.参照下面的内容编辑make.conf
SUPHOST=ftp.freebsdchina.org


SUPFILE=        /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=   /root/ports-supfile
DOCSUPFILE=     /usr/share/examples/cvsup/doc-supfile


MASTER_SITE_BACKUP?=/
ftp://ftp.freebsd.org.cn/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}//
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}//
ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/


4.接着从/usr/share/examples/cvsup中复制一份ports-supfile到/usr中。这是为了日后使用方便,且维持原有范例不变。

% cp /usr/share/examples/cvsup/ports-supfile /usr

5.编辑ports-supfile。

6.把*default host=CHANGE_THIS.FreeBSD.org改为*default host=cvsup.cn.freebsd.org

7.把ports-all注释掉。

8.把下面需要的Ports组件打开(把#号去掉)。

ports-base 基本的工具。

ports-archivers 关于文件压缩及解压缩的程序。

ports-astro 与天文学相关的程序。

......

ports-X11-servers X-Window系统服务器。

ports-X11-toolkits 以X-Window系统为基础的开发工具。

ports-X11-wm X-Window系统的管理工具。

9.因为刚安装好cvsup-without-gui-16.1g.tgz,所以必须先输入下面的命令,重新载入环境配置文件,才能让程序路径生效。不然在运行时会提示找不到文件。
% source ~/.cshrc

10.最后用下面的命令更新Ports-Tree。


% cvsup -g -L 2 /usr/ports-supfile

 

但是又出现新问题了
我配置好了ports-supfile之后
运行
cvsup -g -L 2 /usr/cvsup/ports-supfile
得到提示
www# cvsup -g -L 2 /usr/cvsup/ports-supfile
cvsup: Command not found.

(解决办法#rehash)


只要看到如下的结果,就表示Ports Tree更新成功了。


……
Shutting down connection to server
Finished successfully

结论

其实,并不是每个系统非得一定要对Ports Tree进行更新。但是为了使系统更加稳定地运行,减少系统自身的安全性带来的危害,建议还是更新FreeBSD系统的Ports Tree。

 

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

portupgrade 是一个软件,用于快捷便利地升级软件

cd /usr/ports/sysutils/portupgrade
make install clean

安装上它

然后用cvsup更新ports树

然后运行

升级单个软件和与其相关的
其中 pkg_name 是 pkg_info 中显示的名字

portupgrade -ar 就会自动更新全部了。
如果加上 P 参数,则先看是否有已经编译好的 pkg 下载,直接从 pkg 升级,省去自己编译。
下载站点可以通过修改 /usr/local/etc/pkgtools.conf 更改

portupgrade -arR 升级所有已经安装的软件,并且检查依赖关系

 

 

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

 

 

#cd /usr/ports/security/freebsd-update
#make install ; make clean
#cd /usr/local/etc
#cp freebsd-update.conf.sample freebsd-update.conf
#rehash
#freebsd-update fetch
#freebsd-update install

 


原创粉丝点击