标题:跟着ArthurXF学FreeBSD3——用ftp.cn.FreeBSD.org更新ports 出处:BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 时间:Thu, 18 Jan 2007 18:04:24 +0000 作者:ArthurXF 地址:http://www.bizeway.net/read.php/13.htm 内容:   FreeBSD的Packages和Ports是应用程序的安装和配置及反安装的解决方案,基本上类似RedHat的RPM方案,再说的通俗一点就是windows的installer,这个还不知道啊?setup.exe总知道了吧?就是类似安装程序,只是FreeBSD把很多软件安装的接口都做到Ports里面去了,那么我们很多时候就想知道软件是不是有更新啦,我们要用新的软件,那么怎么办?那么我们就要更新Ports了。现在看看我们如何更新Ports的。   本文由ArthurXF倾情奉献,谢谢大家支持。 我们发现更新ports是一件痛苦的事情,主要的原因是很多软件都来自国外的服务器,那个下载速度只有几K,更新一次就要好几个小时。我们直接把下载服务器改成国内的服务器不是很好吗?网上虽然有很多教程说如何将MASTER_SITE_FREEBSD_ORG改成ftp.cn.FreeBSD.org,因为FreeBSD版本问题,很多方法都有些牛头不对马嘴了。这里ArthurXF直接奉献精华方法给大家。 引用 最近国内的服务器镜像的文件竟然不全,只有一部分,我找了半天,发现韩国的服务器是全的。 大家可以把下面的ftp.cn.FreeBSD.org替换成ftp.kr.FreeBSD.org即可 引用 cd /etc/ vi make.conf 加入下面的内容: MASTER_SITE_FREEBSD_ORG= ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/%SUBDIR%/ MASTER_SITE_GNOME=  http://mirrors.geekbone.org/gnome/%SUBDIR%/ MASTER_SITE_LOCAL=  ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/%SUBDIR%/ MASTER_SITE_OVERRIDE=ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ 大功告成,这样更新ports,就直接从中国的服务器下载了。这个速度就别提了,就是一个字,“快”! 1、安装cvsup 如果还没安装过cvsup,那么请执行以下命令安装: cd /usr/ports/net/cvsup make install clean 2、然后拷贝ports的配置文件到/etc/ports-supfile cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile ee /etc/ports-supfile 将其中的# host=CHANGE_THIS.FreeBSD.org一行改为host=cvsup.cn.freebsd.org cvsup.freebsdchina.org这个是中国的镜像服务器执行速度很快,不会连接过多 其他镜像站可以到http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS查找 3、更新ports /usr/local/bin/cvsup -g -L 2 /etc/ports-supfile 4、修改/etc/make.conf文件 如果不存在则可以参考,/usr/share/examples/etc/make.conf文件新建一个,该文件主要是编译的时候需要用到。 如果要中文支持,就要加入这一段在make.conf中 下面是我的make.conf文件内容 引用 SUP_UPDATE= yes SUP=  /usr/local/bin/cvsup SUPFLAGS= -g -L 2 SUPHOST= cvsup.cn.FreeBSD.org PORTSUPFILE= /etc/ports-supfile WITH_CJK= yes 好了,这样Ports就更新完了。想测试一下吗?赶快去安装一个软件试试吧。 我们以后要用ports方式安装软件,这些软件都是以源码形式安装的, 所以我们这里得做两方面的优化工作,第一是优化编译器,也就是GCC的编译指令,这样可以提高软件的效率,第二就是为ports下载软件加速了。 首先检查GCC的版本是否大于3.0 #gcc --version 接着我们调整一下GCC的编译参数。 # ee /etc/make.conf 加入: CFLAGS= -march=prescott -O2 -pipe -msse2 -mmmx -mfpmath=sse CXXFLAGS= ${CFLAGS} 其中-march是指你机器的CPU,不知道CPU型号可以用下面的方法来查,我的是Intel志强,结果如下: # sysctl hw.model hw.model: Genuine Intel(R) CPU 3.20GHz 以下是对照表,按照你的CPU型号改就OK了(参考金步国的《GCC编译优化指南》)。 i386 (Intel) CFLAGS= -march=i386 CXXFLAGS+= -march=i386 i486 (Intel) CFLAGS= -march=i486 CXXFLAGS+= -march=i486 Pentium 1 (Intel) CFLAGS= -march=pentium CXXFLAGS+= -march=pentium Pentium MMX (Intel) CFLAGS= -march=pentium-mmx CXXFLAGS+= -march=pentium-mmx Pentium PRO (Intel) CFLAGS= -march=pentiumpro CXXFLAGS+= -march=pentiumpro Pentium II (Intel) CFLAGS= -march=pentium2 CXXFLAGS+= -march=pentium2 Celeron (Mendocino), aka Celeron1 (Intel) CFLAGS= -march=pentium2 CXXFLAGS+= -march=pentium2 Pentium III (Intel) CFLAGS= -march=pentium3 CXXFLAGS+= -march=pentium3 Celeron (Coppermine) aka Celeron2 (Intel) CFLAGS= -march=pentium3 CXXFLAGS+= -march=pentium3 Celeron (Willamette?) (Intel) CFLAGS= -march=pentium4 CXXFLAGS+= -march=pentium4 Pentium 4 (Intel) CFLAGS= -march=pentium4 CXXFLAGS+= -march=pentium4 Intel Core Solo/Duo(Intel) model name   : Genuine Intel(R) CPU TXXXX @ XXXGHz CFLAGS= -march=prescott CXXFLAGS+= -march=prescott Eden C3/Ezra (Via) CFLAGS= -march=i586 -m3dnow CXXFLAGS+= -march=i586 -m3dnow Core i7 and Core i5, Xeon 55xx 32 bit profile (x86) - for =sys-devel/gcc-4.3: CHOST="i686-pc-linux-gnu" CFLAGS=-O2 -pipe -march=core2 -msse4 -mcx16 -msahf -fomit-frame-pointer CXXFLAGS=${CFLAGS} 64 bit profile (amd64) - for =sys-devel/gcc-4.3 CHOST="x86_64-pc-linux-gnu" CFLAGS=-march=core2 -msse4 -mcx16 -msahf -O2 -pipe CXXFLAGS=${CFLAGS} K6 (AMD) CFLAGS= -march=k6 CXXFLAGS+= -march=k6 K6-2 (AMD) CFLAGS= -march=k6-2 CXXFLAGS+= -march=k6-2 K6-3 (AMD) CFLAGS= -march=k6-3 CXXFLAGS+= -march=k6-3 Athlon (AMD) CFLAGS= -march=athlon CXXFLAGS+= -march=athlon Athlon-tbird, aka K7 (AMD) CFLAGS= -march=athlon-tbird CXXFLAGS+= -march=athlon-tbird Athlon-tbird XP (AMD) CFLAGS= -march=athlon-xp CXXFLAGS+= -march=athlon-xp Athlon 4(AMD) CFLAGS= -march=athlon-4 CXXFLAGS+= -march=athlon-4 Athlon XP (AMD) CFLAGS= -march=athlon-xp CXXFLAGS+= -march=athlon-xp Athlon MP (AMD) CFLAGS= -march=athlon-mp CXXFLAGS+= -march=athlon-mp 更多类型请查阅http://en.gentoo-wiki.com/wiki/Safe_Cflags 最后我们的ports使用axel来多线程下载,不知道axel在ports的那个位置,可以用下面指令找找: # cd /usr/ports # make search key=axel Port:   axel-1.0b Path:   /usr/ports/ftp/axel Info:   A download accelerator Maint: ports@FreeBSD.org B-deps: gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2 R-deps: gettext-0.14.5_2 libiconv-1.9.2_2 WWW:    http://wilmer.gaast.net/main.php/axel.html 其实还有一个更方便的方法就是whereis # whereis axel axel: /usr/ports/ftp/axel 直接开始安装 # cd /usr/ports/ftp/axel # make install clean 安装完成以后,我们到make.conf进行设置,axel才能工作。 # ee /etc/make.conf 加入: FETCH_CMD=axel FETCH_BEFORE_ARGS= -n 10 -a FETCH_AFTER_ARGS= DISABLE_SIZE=yes 这样编译出来的程序执行效率明显提高,呵呵。ArthurXF倾情奉献! 现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。 PHP培训招生简章 Generated by Bo-blog 2.0.3 sp1