转 FreeBSD 8下如何最有效率的安装软件 freebsd ports 安装
【51CTO独家特稿】FreeBSD的默认下载工具是fetch,既慢又不好用。在FreeBSD下安装软件有一些很有效率的方式,下面就给大家介绍一下。
51CTO编辑推荐:FreeBSD入门专题
Ports机制
首先,FreeBSD下最有特色的软件安装和升级机制就是ports,既方便又高效。下面我们从ports套件的安装开始讲起,让你细致的了解有关ports的每一个细节
一、ports套件的安装
①我的FreeBSD 8.0-release是最小化安装,所以既没有ports,也没有/usr/ports目录。选择启用ports的话,需要在root下输入"sysinstall"来安装它:
输入sysinstall --> 选择Configure --> Distributions --> ports,然后安装即可。
②ports的默认路径是/usr/ports。这个ports的根目录下面有很多的文件夹及子文件夹,组成一个树状目录,包含大量ports下的软件。比如mail是邮件服务软件,games是游戏,www代表web服务软件,databases则是数据库软件。
[root@bsd01 /usr/ports]# cd www[root@bsd01 /usr/ports/www]# ls -d apache*apache-contrib apache13 apache13-modssl+ipv6apache-forrest apache13+ipv6 apache13-sslapache-jserv apache13-modperl apache20apache-mode.el apache13-modssl apache22
如果你需要安装什么软件,只要进入当前目录,然后“make install clean”即可。
[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22] make install clean
/usr/ports/distfiles是存放软件包的文件夹。ports会先检查/usr/ports/distfiles目录内有没有这个软件包,如果没有它就会自动从网上下载安装。
二、加速ports的升级速度
ports从网上下载软件包自动安装,那么从那里下载呢?首先,我们需要安装axel来取代默认的下载工具fetch,这样可以提高ports的安装速度:
cd /usr/ports/ftp/axelmake install
然后,我们需要一个源地址管理。跟ubuntu上的/etc/source.list文件一样,freebsd用的文件是/etc/make.conf,我们可以修改其文件,达到加速下载的目的。
#修改 /et/make.confvi /etc/make.conf#加入以下内容FETCH_CMD=axelFETCH_BEFORE_ARGS= -n 10 -aFETCH_AFTER_ARGS=DISABLE_SIZE=yesMASTER_SITE_OVERRIDE?=/http://ports.hshh.org/${DIST_SUBDIR}//http://ports.cn.freebsd.org/${DIST_SUBDIR}//ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
这样处理后,在公司的网络环境下,FreeBSD的下载速度明显提高了,有时居然能达到1M/s,这样升级及安装软件方便极了;呵呵,终于可以摆脱fetch的龟速了。
三、更新ports目录树
既然ports的树目录全部下载到本地,那么即使FreeBSD有新的软件包或者添置了新的软件,本地目录树也不会更新。所以,我们每隔一段时间需要更新本地目录树。我来介绍一种在FreeBSD中方便、快捷的更新ports的方法:使用portsnap来更新ports目录树。
①配置portsnap:
我们使用portsnap,首先要设置一下它的配置文件,位于/etc/portsnap.conf:
[root@bsd01 /usr/ports]# vi /etc/portsnap.conf
把
SERVERNAME=portsnap.freebsd.org
修改成:
SERVERNAME=portsnap.hshh.org
这个是他的更新服务器。另外还有几个国内比较快的portsnap服务器:
portsnap.hshh.org
portsnap2.hshh.org
portsnap3.hshh.org (网通)
portsnap4.hshh.org
②首次使用portsnap:
在你的FreeBSD首次使用portsnap必须执行下面2步:
[root@bsd01 ~]# portsnap fetch[root@bsd01 ~]# portsnap extract
portsnap fecth是从网上获取portsnap快照的最新压缩包,听闻这个压缩包官方没小时更新一次。
portsnap extract 则是把这个压缩包创立到/usr/ports。哪怕你以前已经手工安装了ports,他也会重新创立一次。
(注:这2步可以合成使用,指令为 [root@bsd01 ~]# portsnap fetch extract)
③以后使用portsnap更新,只需要执行下面2步:
[root@bsd01 ~]# portsnap fetch[root@bsd01 ~]# portsnap update
同样,这2步可以合成使用:[root@bsd01 ~]# portsnap fetch update
portsnap第一次运行extract命令时,可能需要一段时间,以后更新使用update的时候,速度就快很多了。
四、ports管理软件常用命令
①安装软件
下面以安装rpm为例:
[root@bsd01 ~]# cd /usr/ports/archivers/rpm[root@bsd01 /usr/ports/archivers/rpm]# make install clean
软件安装的过程中会生成大量的暂存文件。这些暂存文件建议保留,但是有时候,比如使用测试服务器的时候,可以通过清除暂存文件来节约磁盘空间。如果想清除www内所有的暂存文件,就cd到/usr/ports/www内。如果想清除所有的暂存文件,就cd到/usr/ports根目录:
[root@bsd01 ~]# cd /usr/ports[root@bsd01 /usr/ports]# make clean
make clean只是清除暂存文件,并不是清除该文件夹里面的软件包。什么是暂存文件?其实主要是编译过程产生的一些临时文件,其实也是软件目录内的work文件夹,而执行make clean会把当前软件目录内的work文件夹删除。
如果想删除文件夹内中的软件包该怎么做呢?
[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22]# make distclean
make distclean不但会清除软件包,而且也包含了make clean命令的效果。这样就会清除apache22的软件包,以及apache22目录内的work文件夹。
同理,如果想清除所有www内的软件包及暂存文件,就cd到/usr/ports/www;如果像清除所有的包及暂存文件,就cd到ports根目录。
②卸载软件
卸载软件用make deinstall:
[root@bsd01 ~]# cd /usr/ports/www/apache22[root@bsd01 /usr/ports/www/apache22]# make deinstall
③查询可用ports安装的软件
我一直想,FreeBSD的ports直接在系统内占用资源空间组成树目录是好还是不好呢?如果要是从能查询这一点讲就比apt-get好一些了,以前用apt-get安装软件的时候,要是遇到一些稍微不规范一点的软件,就很难知道名字了,经常要用正则表达式来测试软件名是什么。
而现在在FreeBSD里面可以直接在ports树目录内查询可用的软件了。
[root@bsd01 ~]# cd /usr/ports[root@bsd01 /usr/ports]# make search key=apache
不过这种会找出很多,看的眼花,但是我们注意到有一个细节,就是Port和Path这两个关键字,一个代表名字,一个代表路径,我们就可以改善+过滤:
[root@bsd01 /usr/ports]# make search key=^apache-2 | grep -E "Port:|Path:|Info:"
Port: apache-2.0.61_2
Path: /usr/ports/www/apache20
Info: Version 2 of Apache web server with prefork MPM.
Port: apache-2.1.9_7
Path: /usr/ports/www/apache21
Info: Version 2.1 of Apache web server with prefork MPM.
Port: apache-2.2.6_2
Path: /usr/ports/www/apache22
Info: Version 2.2 of Apache web server with prefork MPM.
④查询已安装的软件
怎么像Linux中用“rpm -qa | grep samba”来查询某个软件是否安装了呢(这里以samba为例),ports用“pkg_info”:
[root@bsd01 ~]# pkg_info | grep sambasamba-3.0.32_1,1 A free SMB and CIFS client and server for UNIXsamba-libsmbclient-3.0.28 Shared libs from the samba package[root@bsd01 ~]# pkg_info | grep nfs
五、安装示例
在FreeBSD 8下采用ports安装现在最流行的FAMP及FNMP架构都是很容易和方便的事情,网上的文章也很多,我这里就不一详细说明了。我这里以安装Nginx和Git-Server来说明下,安装步骤如下:
①安装 Nginx
首先安装 pcre8.00(pcre 是Nginx所需的Perl兼容正则表达式库)
cd /usr/ports/devel/pcremake install
安装 Nginx0.7.65
cd /usr/ports/www/nginxmake install
配置编译参数
[ ] DEBUG Enable nginx debugging[ ] IPV6 Enable IPv6[ ] GOOGLE_PERFTOOLS Enable google perftools module[X] HTTP_MODULE Enable HTTP module[ ] HTTP_ADDITION_MODULE Enable http_addition module[X] HTTP_CACHE_MODULE Enable http_cache module[ ] HTTP_DAV_MODULE Enable http_webdav module[ ] HTTP_FLV_MODULE Enable http_flv module[X] HTTP_GZIP_STATIC_MODULE Enable http_gzip_static module[ ] HTTP_IMAGE_FILTER_MODULE Enable http_image_filter module[ ] HTTP_PERL_MODULE Enable http_perl module[ ] HTTP_RANDOM_INDEX_MODULE Enable http_random_index module[ ] HTTP_REALIP_MODULE Enable http_realip module[X] HTTP_REWRITE_MODULE Enable http_rewrite module[ ] HTTP_SECURE_LINK_MODULE Enable http_secure_link module[ ] HTTP_SSL_MODULE Enable http_ssl module[X] HTTP_STATUS_MODULE Enable http_stub_status module[ ] HTTP_SUB_MODULE Enable http_sub module[ ] HTTP_XSLT_MODULE Enable http_xslt module[ ] MAIL_MODULE Enable IMAP4/POP3/SMTP proxy module[ ] MAIL_IMAP_MODULE Enable IMAP4 proxy module[ ] MAIL_POP3_MODULE Enable POP3 proxy module[ ] MAIL_SMTP_MODULE Enable SMTP proxy module[ ] MAIL_SSL_MODULE Enable mail_ssl module[ ] WWW Enable html sample files[ ] HTTP_ACCESSKEY_MODULE 3rd party http_accesskey module[ ] HTTP_EVAL_MODULE 3rd party eval module[ ] HTTP_FANCYINDEX_MODULE 3rd party http_fancyindex module[ ] HTTP_MOGILEFS_MODULE 3rd party mogilefs module[ ] HTTP_MP4_H264_MODULE 3rd party mp4/h264 module[ ] HTTP_NOTICE_MODULE 3rd party notice module[ ] HTTP_REDIS_MODULE 3rd party http_redis module[ ] HTTP_RESPONSE_MODULE 3rd party http_response module[ ] HTTP_UPLOAD_MODULE 3rd party upload module[ ] HTTP_UPLOAD_PROGRESS 3rd party upload_progress module[ ] HTTP_UPSTREAM_FAIR 3rd party upstream fair module[ ] HTTP_UPSTREAM_KEEPALIVE 3rd party upstream keepalive module[ ] HTTP_ZIP_MODULE 3rd party http_zip module[ ] PASSENGER_MODULE 3rd party passenger modulepkg_add -r -v vim-litepkg_add -r -v vim-lite
启动nginx
/usr/local/sbin/nginx
查看端口号及使用进程等
lsof -i:80mail# lsof -i:80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 2799 root 6u IPv4 0xc2f34278 0t0 TCP *:http (LISTEN)nginx 2800 www 6u IPv4 0xc2f34278 0t0 TCP *:http (LISTEN)
②安装Git-Server
源码安装Git-Server还是很麻烦的,不过好在FreeBSD下的ports里直接有git,呵呵。
1、用ports安装:
cd /usr/ports/devel/git ; make install clean
2、修改/etc/r c.conf
git_daemon_enable=”YES”
3、新增使用者
git pw useradd git
4、启用git daemon
/usr/local/etc/rc.d/git_daemon start
5、安装lsof命令来验证其端口9418
pkg_add –r –v lsof ; lsof –i:9418
其他升级机制
除了ports之外,还要推荐下Freebsd中用得多的pkg_add,其特色是简单和方便,用ports安装vim老爱出问题,所以我一般直接
pkg_add -r -v vim-lite
发现Freebsd8默认居然没有安装nmap,呵呵,搞定它
pkg_add –r –v nmap
最后,源码安装在FreeBSD下也是可以的,特别适合编译安装一些有特殊参数要求的软件,基本跟在centos上没什么变化,这个就不多说了。希望大家能从此篇文章熟练掌握到ports的安装技巧,达到简化工作的目的。
更多阅读
win7下如何合并分区的方法 win7合并磁盘分区
合并分区的方法实际上就是划分新分区的逆操作。例如我们准备把T盘合并到D盘,看图解如下图解一 右击不想保留的分区选择“删除卷” 右击要删除的盘右击选择“删除卷”; 图解二选择想要扩展的分区图解三扩展后的D盘已经增加了容量 到此
应交税费下如何设置增值税的明细科目?_ 应交税费的明细科目
一、增值税分为一般纳税人和小规模纳税人。1、如果是小规模纳税人,在应交税费科目下设置一个“应交增值税”二级明细科目就行了。2、如果是一般纳税人,在“应交税费”科目下设置“应交增值税”二级明细科目,在“应交增值税”二级科目下
如何运用量比指标和换手率选股 一招最绝的选股技巧
成交量分析对于股价技术分析而言有很重要的意义,而分析成交量最重要的工具,莫过于对量比和换手率数据的分析,这是研究成交量最有效率的重要秘密武器。下面我们就来详细介绍一下量比和换手率。量比不论哪一种看盘软件,当你查阅个股时,除了
8家北京最好吃的烤鸭店 北京烤鸭哪家最好吃
(2014-03-27 16:33:18) 转载▼又到了“春江水暖鸭先知”的时节,有没有勾起你吃烤鸭的欲望?身为北京人,如果你还去全聚德、便宜坊吃烤鸭,那你就OUT了。今天,我们就介绍8家京城最牛、最好吃的烤鸭店,全部良心推荐!1、大董烤鸭店大董的烤
转 写给我曾经最爱的人,希望你能看到。我懂了,也决定了,是时 写给我最爱的人
写给我曾经最爱的人,希望你能看到。我懂了,也决定了,是时候放弃了…再见,我走了…对不起,一直以来的打扰,对不起…你要幸福…一定!我真的喜欢你,忍不住眼泪始终会掉下来。哭,并不代表我输了,不管你对我怎样,我还是一直这样爱着你。喜欢上你,是多