分享到plurk 分享到twitter 分享到facebook

FreeBSD

FreeBSD 為一個 Unix-Like 作業系統,由 BSD 衍生出來的一個版本,受到不少人喜愛。後來由 FreeBSD 延伸出其他發行版,如 PC-BSD、Desktop-BSD、FreeNAS 等。

安裝

舊版的 FreeBSD 對電腦硬體支援較少,但現在常見的硬體驅動都已支援,也可以在虛擬機器上安裝。

以下安裝步驟以 FreeBSD 9.0 為主:

  1. 由光碟開機,出現開機選單時選擇第一個選項「1. Boot [Enter]」。
  2. 歡迎畫面可以選擇要安裝、使用 Shell 或是使用 LiveCD 方式操作。安裝作業系統選擇「Install」即可。
  3. 選擇鍵盤對應,一般情況不需要更改。
    之後的安裝介面均使用鍵盤操作,Tab 切換按鈕選擇、空白鍵核取選項、Enter 表示按下按鈕或下一個步驟。
  4. 設定網域名稱,沒有則留空。
  5. 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
  6. Partition 選單:做磁碟分割定掛載分割區。
  7. 安裝系統至硬碟上。
  8. 設定 root 密碼。
  9. 網路設定。
  10. 設定系統時間。
  11. 啟動系統服務。
  12. 選擇是否需要使用匯出系統錯誤資訊。
  13. 建立新使用者,在此可以新增一個非 root 帳號。注意:在 FreeBSD 系統中,使用者必須在 wheel 群組當中,才能夠使用 su 切換身份至 root,管理員帳號應該在「Invite into another group」中輸入「wheel」。
  14. Final configuration 選單中,可讓使用者在重新開機之前做最後的調整。
  15. 移除光碟片,重新開機。

套件管理

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

Reference