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安裝軟體的時候,要是遇到一些稍微不規範一點的軟體,就很難知道名字了,經常要用Regex來測試軟體名是什麼。
而現在在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