当前位置:操作系统 > Unix/Linux >>

Portage用户使用指南

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命令察看。
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,