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 samba
samba-3.0.32_1,1 A free SMB and CIFS client and server for UNIX
samba-libsmbclient-3.0.28 Shared libs from the samba package
[root@bsd01 ~]# pkg_info | grep nfs