Unix – ports 和 package

這裡討論的內容以 FreeBSD 為主,可能會與 linux 系的不同。

剛灌好的 FreeBSD 裡頭什麼也沒有,什麼事都不能做, 也因此我們必須透過一些手段來安裝好用的工具來使用。就像是 Windows 灌完後, 我們可能會需利用隨身碟灌防毒軟體、利用光碟安裝無蝦米、或是利用 IE 灌新的瀏覽器等。 而 FreeBSD 也是一樣,除了上述的方式,FreeBSD 也提供了更好的方法來取得所需要的軟體工具。

方法很簡單,就和 App Store 一樣,FreeBSD 整合了許多實用的軟體,讓我們可以統一由一個地方取得軟體, 而且這些軟體都是經過優化,適合 FreeBSD 使用,所以幾乎不會出現相容性的問題, 而最重要的是,裡面的軟體幾乎都是開源免費的!

而這個地方就是 /usr/ports 這個資料夾,裡面有所有可用軟體的安裝資訊, 我們就可以利用這些安裝資訊下載並安裝我們所需要的軟體。 而這些軟體都已經分門別類好了,所以可以很輕易的找到我們要的軟體。

當然,若還是找不到,我們可以在 /usr/ports 這個資料夾中輸入下面的指令搜尋

make search key=vim # 意思是搜尋 vim 這個軟體的位置
Code language: PHP (php)

找到這個所需要的軟體的目錄後,我們在這個目錄中再輸入下列指令

make install clean # 要有管理員權限
Code language: PHP (php)

就可以安裝了,安裝完就能立刻使用,非常方便。不需要自己去找軟體、不需要自己檢查相容性 不需要自己找地方下載,FreeBSD 都可以幫忙搞定整個過程。

搜尋軟體的方法很多,不限一種,像我通常會用一個叫 psearch 的工具來搜尋

再來解釋一下這個指令的運作,其實這個指令可以拆分成四個指令,我會一一解是這四個指令的意義:

make fetch make make install make clean

首先是

make fetch

這個指令的意思是根據這個資料夾(現在已經在要安裝軟體的資料夾)提供的軟體資訊, 下載軟體所需要的原始碼

會下載到 /usr/ports/distfiles 這個資料夾

make

然後這個指令就是編譯成執行檔

make install

最後則是安裝編譯完的執行檔。由於前三個指令都是相依的,所以我們可以單純只下最後這個指令, FreeBSD 會自動完成前面兩個指令,才開始安裝。

最後是

make clean

裝完了以後,由於編譯過程的檔案不需要了,為了減少浪費空間,所以這個指令就是把這些檔案清掉的意思。

由這個過程,我們也可以知道 /usr/ports 裡面其實並沒有任何軟體的原始碼,只有一些軟體的訊息而已, 所以這個資料夾本身並不會佔太多空間。而所謂的更新 ports 也只是更新軟體的資訊而已,並沒有更新原始碼, 因為本來就沒有原始碼在其中。

更新的方式是透過 CVS 來搞定,不過之後會全改成 SVN

除了這種安裝方式,我們也可以直接下載安裝執行檔。相比起來,剛剛提的方法是比較好的方式, 無論是大小、效率都可能會比較好,因為如果是自行編譯的話,我們就可以自由設定我們所需要的功能,把不要的功能去掉來節省空間, 而另一方面,由於下載的安裝檔為了要相容所有機器,所以常常會在效能上做出妥協,增加一些不必要的內容。

不過話說回來,前者因為要自行編譯,可能要花許多時間來完成,而後者就快得多,所以如果不介意運行的效果, 而且為了節省時間,使用後者也是不錯的選擇。

這個方法可以用下面這個指令直接下載並安裝所需要的檔案。

pkg_add -r vim

當然,不是只能用這兩種方式下載,比如說像在 Windows 上操作的那樣, 從網路上下載軟體來使用,只是這兩種方式是最方便,而且主要的下載方式而已。

發表迴響