在FreeBSD下提供了兩套包管理工個,Ports Collection和Packages Collection分別用來管理源碼軟件包和二進制軟件包,Ports Collection可以用來下載軟件,配置,編譯,安裝全自動完,Ports在本地並沒有可存二進制代碼和源碼包,而是在本地提供一個下載軟件的地址或者找到軟件的方法。
Ports使用的源碼包是以tar.gz結尾的包,Packages使用二進制包是以.tgz結尾,在FreeBSD 的安裝盤中所提供的軟件包大多使用.tgz文件格式。可以方便的使用pkg_add 來進行安裝。
如果使用MINI安裝默認是不安裝Ports樹的,需要使用管理員進行安裝Ports:
sysinstall-->Configure-->Distributions--> X ports -->OK -->CD/DVD 等一會就會安裝好的。
Ports默認的安裝目錄是在/usr/ports在這個目錄在各個軟件分類在不同的目錄裡。/usr/ports就被稱為Ports樹。
如果只想安裝某一個軟件的ports可以不執行上面操作,直接在光盤裡的/cdrom/packages/裡面找到需要的文件解壓過/usr/ports相應的目錄裡就可以了。
我使用的安裝盤是FreeBSD 7.0-RELEASE,光盤上所帶的包基本上都是最新的,因為本地存儲的是描述文件,時間長了以後會和ftp.freebsd.org的port源碼不一樣,比如某個版本更新了。如要更新本地版式本,只要下載更新的ports包下來解壓一下就好了。當然也可使用cvsup來同步全部的源碼樹,對整個Ports Collection進行更新。
在7.0-RELEASE中共包含了17742個軟件包,找起來很麻煩。我們可以在/usr/ports目錄下使用make print-index 來生成一個包索引,把輸出內容重定向到一個文件,就可以方便的查詢了。
make readme 生成當前目錄下所有目錄的一個描述索引(README.html)。
make readmes 會生成當前目錄下所有子目錄的描述索引(README.html)。可以做一個目錄到apache下,很方便的浏覽文件。
make search key=apache2 可以列出所有和apache2相關的軟件包。這也是一種查找軟件包的方法。
whereis ssh
ssh: /usr/bin/ssh /usr/share/man/man1/ssh.1.gz /usr/ports/security/ssh
從返回的信息裡也可以看到ssh所在的ports樹的位置。
找到軟件包的位置了就可以進行安了,安裝十分簡單,比如安裝ssh吧
#cd /usr/ports/security/ssh
#make install
下面的事情就是等待了,ports會先去/usr/ports/distfiles目錄裡找一下有沒有找一下有沒有ssh的碼包,如果沒有話就去網上找,編譯的時候如果需要別的支持文件的話也會自動去網上下載下來進行編譯安裝。同樣下載下來的tar.gz文件包存放在/usr/ports/distfiles裡面,備份這個目錄是一個好主意,這樣在你的機器沒有網絡環境的時候也可以使用ports進行包安裝,只要把備份起來的文件恢復到/usr/ports/distfiles裡面。安裝完成後會在/var/db/pkg目錄裡面寫入一個package安裝記錄,從而使兩個包管理軟件相互同步。
make也有其它的一些參數,比如make fetch這個命令所做的只是把要安裝包的從網上拿下來,而不進行編譯安裝。
make 不帶任何參數的情況下,只對軟件包過行編譯,而不安裝。這個命令會在目錄下生成一個work的目錄,裡面包括了,編譯參數,補丁信息,編譯步驟,及一個解壓出來的原碼文件。
make package可以在安裝完成之後生成了一個按make install參數安裝的二進制安裝包。
不帶任何參數的mail install通常會把軟件安裝在/usr/local下面,執行程序放在/usr/local/bin中,配置文件放在/usr/local/etc中,啟動文件會放在/var/local/etc/rc.d中。
刪除安裝的軟件可以使用make deinstall也是非常簡單的,只有幾個提示。
ports還支持對全系統升級那個又可以寫一個東西來單獨說一下了。
pkg包管理主要是用來安裝光盤上的二進制包
pkg_add pkname 以這樣的格式進行去安裝就可以了
usage: pkg_add [-vInfFrRMSK] [-t template] [-p prefix] [-P prefix] [-C chrootdir] pkg-name [pkg-name ...]
pkg_info可以用來查看已經安裝上去的軟件包,包括使用ports安裝上去的也可以查到,這個命令所讀取的是/var/db/pkg這目錄裡的信息。
usage: pkg_info [-bcdDEfgGiIjkKLmopPqQrRsvVxX] [-e package] [-l prefix]
[-t template] -a | pkg-name ...
pkg_info [-qQ] -W filename
pkg_info [-qQ] -O origin
pkg_info
pkg_delete刪除一個包
pkg_version為把本地已經安裝的包和遠程服務器上進行比較,看是否已經有更新的了
FreeBSD 8上的Rsync同步簡易教程 http://www.linuxidc.com/Linux/2013-07/86849.htm
FreeBSD8.2系統安裝Salt http://www.linuxidc.com/Linux/2013-02/80024.htm
制作FreeBSD系統定制安裝ISO http://www.linuxidc.com/Linux/2012-12/76350.htm
FreeBSD搭建NAT並在單網卡上配置多個VLAN http://www.linuxidc.com/Linux/2012-12/75507.htm