Portage用戶使用指南
Debentoo Gao譯 2002.12.16
1 初步認識
取得最新的Portage軟件包列表
在你安裝了Gentoo Linux,使用了一段時間以後,發現一些軟件有著這樣那樣的bugs,覺得不滿意,或是想升級到最新的Gentoo Linux所帶的軟件包時,你需要下載我們的Portage樹。我提供了一些匿名的rsync服務器以供您升級到最新的Portage樹。下面我將告訴您如何使用它。
使用以下命令同步更新你的Portage樹
#emerge rsync
請注意emerge rsync;命令會自動附帶—clean參數,清除你在/usr/portage裡做的個人設置。如果你想保存你的主Portage樹個人設置不變的話,請使用PORTDIR_OVERLAY選項:
把下面一行加入/etc/make.conf
PORTDIR_OVERLAY="/dir/where/your/ebuilds/are"
如果你已經動手修改ebuilds,修正bugs。你可以考慮加入Gentoo Linux開發團隊,成為我們的一員。具體事項可以和Daniel Robbins或Seemant Kulleen聯系。
升級Portage
在使用我們的Portage樹前,升級它是一件很重要的工作。你可以這麼做:
#emerge -up system *它會告訴你要升級哪些包
#emerge -u system *開始升級你的所需要的包
現在你的Portage升級到了最新版本,接下去你就可以隨心所欲用我們的ebuild系統升級你所需的軟件了。
2 emerge命令的介紹
emerge ?pretend
在安裝一個軟件包前,看看它和其他包的倚賴關系或哪些包會被升級是個不錯的主意。你可以使用emerge ?pretend或emerge -p命令來察看。
比如說:# emerge -p xchat
These are the packages that I would merge, in order.
Calculating dependencies......... done!
[ebuild U] sys-libs/zlib-1.1.3-r2 to /
[ebuild U] dev-libs/glib-1.2.10 to /
[ebuild N ] media-libs/jpeg-6b-r2 to /
[ebuild N ] x11-base/xfree-4.0.3-r3 to /
[ebuild N ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N ] media-libs/giflib-4.1.0-r3 to /
[ebuild N ] media-libs/tiff-3.5.6_beta to /
[ebuild N ] media-libs/imlib-1.9.10 to /
[ebuild N ] net-irc/xchat-1.4.3 to /
如上所示,我們試著在一台沒有安裝X的機器上emerge xchat.emerge ?pretend正確的列出了所必需滿足的倚賴關系。並明確的指出了sys-libs/zlib和dev-libs/glib需要升級,emerge xchat時,這些所倚賴的包(當然包括x11-base/xfree會被一同安裝。
USE和emerge
以上,我在一個/etc/make.conf文件USE環境變量沒有定義gnome的系統上執行了emerge ?pretend命令。就是說GNOME支持是可選項,一般是不打開的。那既然有這個選項,那我們就試著打開它,在執行emerge ?pretend命令看看輸出有什麼不同。
# emerge -p xchat
These are the packages that I would merge, in order.
Calculating dependencies............................ done!
[ebuild N ] media-libs/jpeg-6b-r2 to /
[ebuild N ] gnome-base/libghttp-1.0.9 to /
[ebuild N ] media-libs/audiofile-0.2.1 to /
[ebuild N ] media-sound/esound-0.2.22-r2 to /
[ebuild N ] gnome-base/gnome-env-1.0 to /
[ebuild N ] gnome-base/libXML-1.8.11 to /
[ebuild N ] gnome-base/ORBit-0.5.8 to /
[ebuild N ] gnome-base/oaf-0.6.5 to /
[ebuild U] dev-libs/glib-1.2.10 to /
[ebuild N ] net-libs/libwww-5.3.2-r1 to /
[ebuild N ] media-libs/giflib-4.1.0-r3 to /
[ebuild N ] dev-util/guile-1.4-r3 to /
[ebuild U] sys-libs/zlib-1.1.3-r2 to /
[ebuild N ] x11-base/xfree-4.0.3-r3 to /
[ebuild N ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N ] media-libs/tiff-3.5.6_beta to /
[ebuild N ] media-libs/imlib-1.9.10 to /
[ebuild N ] gnome-base/gnome-libs-1.2.13 to /
[ebuild N ] gnome-base/glibwww-0.2-r1 to /
[ebuild N ] gnome-base/gdk-pixbuf-0.11.0 to /
[ebuild N ] gnome-base/gconf-1.0.0 to /
[ebuild N ] gnome-base/gnome-vfs-1.0.1 to /
[ebuild N ] gnome-base/control-center-1.4.0.1 to /
[ebuild N ] gnome-base/scrollkeeper-0.2 to /
[ebuild N ] dev-util/xml-i18n-tools-0.8.1 to /
[ebuild N ] gnome-base/libglade-0.16-r1 to /
[ebuild N ] gnome-base/gnome-core-1.4.0.4 to /
[ebuild N ] net-irc/xchat-1.4.3 to /
很清楚地,在USE變量中加入gnome,emerge很快的知道安裝xchat要加入對gnome的支持。當然為了GNOME選項的正確編譯和運行, GNOME必需被首先安裝,emerge會計算GNOME 安裝所倚賴的包,並從它的ebuild列表中加入。當USE變量設置錯誤的時候,emerge命令很可能無法正確執行。那也是我們為什麼建議在實際 emerge軟件包,特別是比較新的,自己不熟悉的ebuild前先用emerge ?pretend命令察看一下的原因。接下去,你該知道怎麼做了吧:)。 一切順利的話,你可以撇開--pretend選項emerge了。
#emerge xchat
等滿足了所有的倚賴關系(如果這種關系存在,不是所有的包都有這種倚賴關系。),接著xchat源碼包會被下載(存儲到 /usr/portage/distfiles目錄),並在一個叫sandbox的零時目錄下校驗MD5,解壓,編譯和安裝。接著他們被合並到本地文件系統,在/var/db/pkg/net-irc/xchat-1.4.3/CONTENTS目錄下建立該包的數據庫,包括所有安裝的包和它們的 md5sum。
3 升級軟件包
一般的我們升級一個軟件包所用到的命令包括 emerge --update or emerge -u。
# emerge -u xchat
Portage使用一個被稱為“Safe”的umerge命令負責拆卸原來的文件。如果一個文件已經被手動復蓋或改寫,它會先被從系統中移出,(也許,你已經安裝了新版本的軟件。)。如此一來,當你merge了新版本的xchat後umerge一個舊的版本,xhchat可執行文件不會被你的系統刪除,因為它已有了新的時間信息和不同的md5sum。Safe unmerges 真得很棒,它可以在任何時候確認可用的軟件版本。如果你先執行了unmerge命令,那麼直到你下載安裝了新版本的xchat,它才可被繼續使用。
重點:
現在Portage加入了被稱為“配置文件保護”的新特性。設計這個新特性的目的是為了防止新裝的軟件破壞原有的配置文件。一般的,配置文件保護特性默認在/etc和KDE配置目錄下打開,將來會加入到更多其他的配置目錄中。詳情請執行emerge --help config命令察看。
#emerge xchat
等滿足了所有的倚賴關系(如果這種關系存在,不是所有的包都有這種倚賴關系。),接著xchat源碼包會被下載(存儲到 /usr/portage/distfiles目錄),並在一個叫sandbox的零時目錄下校驗MD5,解壓,編譯和安裝。接著他們被合並到本地文件系統,在/var/db/pkg/net-irc/xchat-1.4.3/CONTENTS目錄下建立該包的數據庫,包括所有安裝的包和它們的 md5sum。
3 升級軟件包
一般的我們升級一個軟件包所用到的命令包括 emerge --update or emerge -u。
# emerge -u xchat
Portage使用一個被稱為“Safe”的umerge命令負責拆卸原來的文件。如果一個文件已經被手動復蓋或改寫,它會先被從系統中移出,(也許,你已經安裝了新版本的軟件。)。如此一來,當你merge了新版本的xchat後umerge一個舊的版本,xhchat可執行文件不會被你的系統刪除,因為它已有了新的時間信息和不同的md5sum。Safe unmerges 真得很棒,它可以在任何時候確認可用的軟件版本。如果你先執行了unmerge命令,那麼直到你下載安裝了新版本的xchat,它才可被繼續使用。
重點:
現在Portage加入了被稱為“配置文件保護”的新特性。設計這個新特性的目的是為了防止新裝的軟件破壞原有的配置文件。一般的,配置文件保護特性默認在/etc和KDE配置目錄下打開,將來會加入到更多其他的配置目錄中。詳情請執行emerge --help config命令察看。