2007-02-07

從套件庫中下載 source 安裝

由於 UBUNTU 的套件邏輯觀念,對於一些諸如 universe 類的套件更新的速度並不是很熱衷,因此碰到一些新版的軟體,可能在你目前使用的版本中並不是最新的。

舉個例子來說,像是 inkscape、basket(一個好用的筆記軟體),就是如此。

在新版的 UBUNTU 中不同的發表版本(如 edgy vs feisty)可能會有相關軟體的最新版,我們可在以下的網址中查詢(參照 figure 1),只要輸入軟體的關鍵字及版本,就可得知軟體在不同的 UBUNTU 中的版本資料,在 figure 2 中,顯示出查詢 basket 的相關版本資料。

Ubuntu packages

figure 1


figure 2


由 figure 2 中看出,在 feisty 中的 basket 版本是目前最新版的,我們可安裝這個版本,但問題來了,我目前還是使用 edgy 的版本,要如何更新呢,難道要將整個系統更新到 feisty?

其實,一般在套件庫除了提供二進制的安裝外(已編譯好的套件),尚有提供 source 下載、自行編譯。了解了這項,我們可在 /etc/apt/sources.list 中動些手腳,由 figure 2 中,我們可看出 basket 這個軟體是放在 universe 分類中,那麼只要將 source 的套件指向 feisty 就可下載到 basket 的最新版 source 了,將 /etc/apt/sources.list 改成如下的內容:

figure 3


以下不妨使用以下兩個指令來看看其間的差異:

# apt-cache show basket
# apt-cache showsrc basket

為了作業方便,不妨在 ~/ 下建立一個 temp 的目錄,用來下載 source 及編譯。

# mkdir ~/temp
# cd ~/temp

● 下載 source

由於更改過 sources.list 所以先更新一下
# sudo apt-get update

安裝相關的依附套件
# sudo apt-get build-dep basket

下載 source、編譯
# apt-get -b source basket

source 表示下載 source,而 -b 代表下載完 source 後直接編譯,由於編譯需要一段時間,所以請耐心等候。

● 編譯完後安裝

等編譯完後,是否在你編譯的目錄下有以下的檔案(以 basket 軟體為例):

figure 4


我們可使用以下指令來裝這個套件。

# sudo dpkg -i basket_0.6.0-0ubuntu2_i386.deb

● 結論

由 UBUNTU 中套件庫中下載 source 編譯安裝,其實和自行下載 tarball 有異曲同功之妙,如果 UBUNTU 的套件庫和該官方軟體的 tarball 版本一致,那麼不妨使用這個方式安裝比較方便,同時又可納入 apt 的管理。

另外:

./configure 是否和 sudo apt-get build-dep [軟體名稱] 類似?
make 和 apt-get -b source basket 呢?
又 sudo dpkg -i [deb 包] 和 sudo make install 如何?
sudo apt-get build-dep [軟體名稱],無法通過時,如何處理呢?

還有要注意的是,更改了套件庫(sources.list)中的 source 來源,對於像 apt-build 之類的東東,也會有影響哦,因為 apt-build 也是下載 source 自裝的。所以如果怕不方便,可事後再將 source 的設定改回來。

參考資料
apt-get --help
basket 官方網址:
http://basket.kde.org/index.php
basket 的一些 screenshots:
http://basket.kde.org/screenshots.php

沒有留言 :

張貼留言