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 CHOST="i686-pc-linux-gnu"
CFLAGS=-O2 -pipe -march=nocona -msse3 -fomit-frame-pointer
CXXFLAGS=${CFLAGS}

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 CHOST="x86_64-pc-linux-gnu"
CFLAGS=-march=nocona -O2 -msse3 -pipe
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培训招生简章
FreeBSD | 评论(0) | 引用(0) | 阅读(14796)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]