版本 b4b50d88d06cc2dbfbd3143a8b8cd65fe0989d6b
FreeBSD
FreeBSD 為一個 Unix-Like 作業系統,由 BSD 衍生出來的一個版本,受到不少人喜愛。後來由 FreeBSD 延伸出其他發行版,如 PC-BSD、Desktop-BSD、FreeNAS 等。
安裝
舊版的 FreeBSD 對電腦硬體支援較少,但現在常見的硬體驅動都已支援,也可以在虛擬機器上安裝。
以下安裝步驟以 FreeBSD 9.0 為主:
- 由光碟開機,出現開機選單時選擇第一個選項「1. Boot [Enter]」。
- 歡迎畫面可以選擇要安裝、使用 Shell 或是使用 LiveCD 方式操作。安裝作業系統選擇「Install」即可。
- 選擇鍵盤對應,一般情況不需要更改。
之後的安裝介面均使用鍵盤操作,Tab 切換按鈕選擇、空白鍵核取選項、Enter 表示按下按鈕或下一個步驟。 - 設定網域名稱,沒有則留空。
- Distribution Select 選單中,可選擇欲安裝的項目:
- doc: 手冊、說明文件
- games: 遊戲,通常 server 不需要安裝。
- lib32: 給 32bit 所使用的 binary。
- ports: Ports collection 為 FreeBSD 的套件庫,之後搜尋、安裝套件較簡單方便。Ports colection 會使用相當大的硬碟空間,可視情況安裝,或是之後需要再由 syssintall 安裝。
- src: FreeBSD kernel srouce code,若有需要自行編譯核心可安裝。
- 若沒有安裝 src 且使用 sysinstall 也無法安裝可以參考 http://forums.freebsd.org/showthread.php?t=29172 使用 svn checkout
- Partition 選單:做磁碟分割定掛載分割區。
- 安裝系統至硬碟上。
- 設定 root 密碼。
- 網路設定。
- 設定系統時間。
- 啟動系統服務。
- 選擇是否需要使用匯出系統錯誤資訊。
- 建立新使用者,在此可以新增一個非 root 帳號。注意:在 FreeBSD 系統中,使用者必須在 wheel 群組當中,才能夠使用 su 切換身份至 root,管理員帳號應該在「Invite into another group」中輸入「wheel」。
- Final configuration 選單中,可讓使用者在重新開機之前做最後的調整。
- 移除光碟片,重新開機。
套件管理
FreeBSD 上的套件可以透過 packages 以及 ports 安裝。packages 可以輕鬆的從網路下載套件執行檔、設定、文件,ports 則是下載 source code 依照需求編譯,需要客製化軟體以及安裝較新的版本軟體可透過 ports 安裝。
使用 packages 安裝套件
packages 提供 pkg_add、pkg_delete、pkg_info 等指令讓使用者可以管理系統上的套件庫。
FreeBSD 官方網站以及其他使用者提供不少可直接安裝的套件,下載後可以直接用 pkg_add 安裝:
.. code-block:: pretty-print
$ fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/games/sl-3.03.tbz
sl-3.03.tbz 100% of 7670 B 19 kBps
$ pkg_add sl-3.03.tbz
$ rehash # sh 重新搜尋可執行指令
$ sl
pkg_add 提供 -r
參數,讓 pkg_add 自動從網路套件列表搜尋符合的套件下載安裝,並自動解決相依性問題:
.. code-block:: pretty-print
$ pkg_add -r bash
Fetching bash.tbz... Done.
Fetching libiconv-1.13.1_1.tbz... Done. # 因相依性而自動下載、安裝的套件
Fetching gettext-0.18.1.1.tbz... Done.
$ rehash
$ bash
使用 ports 安裝套件
FreeBSD 的 ports 系統整理了成千上萬的套件,可以輕鬆的透過搜尋找到需要的套件,並客製化套件設定與安裝。
搜尋 ~~~~
先切換至 /usr/ports 目錄下,接著使用 make search 搜尋欲安裝之套件:
.. code-block:: pretty-print
$ cd /usr/ports
$ make search name=git
若 ports 中有符合的項目,則會列出以下資訊:
- Port:套件名稱
- Path:套件所在路徑
- Info:套件簡述
- Maint:套件維護人員
- B-deps、R-deps:相依性
- WWW:套件網站
設定與安裝 ~~~~~~~~~~
安裝套件,只需要切換到套件所在路徑,設定 (config)、編譯 (make)、安裝 (install) 並清除 (clean) 暫存檔。
.. code-block:: pretty-print
$ cd /usr/ports/devel/git # 切換至 git 所在目錄
$ make config # 套件設定
make config 可看到許多能客製化的項目,使用 tab、空白鍵來移動選取項目,設定完畢後,系統會自動編譯所需要的套件來滿足相依性。
接下來就可以輸入 make 進行編譯,系統會自動從網路下載所需的原始碼編譯。編譯完成後,輸入 make install 安裝,最後再 make clean 清除不再使用的檔案。
懶人筆記:若只要預設值,輸入「make install clean」即可。
套件管理 ~~~~~~~~ FreeBSD 套件管理指令均以「pkg_」開頭,如:pkg_info、pkg_delete、pkg_create 等。
pkg_info ^^^^^^^^
pkg_info 用於檢視套件資訊:
.. code-block:: pretty-print
$ pkg_info
johnroyer@bsd:~$ pkg_info
ImageMagick-nox11-6.7.9.4 Image processing tools
apache22-2.2.23_2 Version 2.2.x of Apache web server with prefork MPM.
autoconf-2.69 Automatically configure source code on many Un*x platforms
automake-1.12.4 GNU Standards-compliant Makefile generator
bash-4.2.37 The GNU Project's Bourne Again SHell
....
若在後方加上套件名稱,則會顯示該套件的詳細資訊:
.. code-block:: pretty-print
$ pkg_info bash-4.2.37
Information for bash-4.2.37:
Comment:
The GNU Project's Bourne Again SHell
Required by:
bash-completion-2.0,1
注意:套件名稱必須是完整的名稱,「bash-4.2.37」而不是「bash」。
使用 -L
可以顯示該套件安裝了哪些檔案:
.. code-block:: pretty-print
$ pkg_info -L bash-4.2.37
Information for bash-4.2.37:
Files:
/usr/local/man/man1/bash.1.gz
/usr/local/man/man1/bashbug.1.gz
/usr/local/bin/bash
/usr/local/bin/rbash
/usr/local/bin/bashbug
.......
使用 -W
可以查詢該檔案被是屬於哪一個套件的:
.. code-block:: pretty-print
$ pkg_info -W /usr/local/bin/bash
/usr/local/bin/bash was installed by package bash-4.2.37