Gentoo Logo

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


5. 改造Portage树

内容:

5.a. 使用Portage树的一个子集

排除软件包/类别

你可以有选择地更新特定的类别/软件包并且忽略其他类别/软件包。我们通过让emerge --sync在执行rsync的时候排除个别类别/软件包来实现这个功能。

你需要在/etc/make.conf中赋予--exclude-from变量一个文件名,该文件应包含你想要排除的软件包。

代码 1.1: 在/etc/make.conf中指定包含排除软件包条目的文件

PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"

代码 1.2: 在/etc/portage/rsync_excludes中设定排除所有游戏

games-*/*

然而要注意的是这可能导致依赖性问题,因为新的、允许安装的软件包可能依赖于那些新的、但被排除的软件包。

5.b. 添加非官方Ebuild

定义一个Portage Overlay目录

可以让你的Portage使用官方Portage树里面没有的ebuild。创建一个新的目录(比如/usr/local/portage)用以存放第三方ebuild。请在新目录中使用跟官方Portage树一样的目录结构!

然后在/etc/make.conf中定义PORTDIR_OVERLAY变量,使它指向刚才创建的目录。现在,每当你用到Portage的时候,这些ebuilds也会被同时计算在内,并且当你下次运行emerge --sync时,不会删除/覆盖这些ebuild。

使用多个Overlay仓库

对于开发多个Overlay的许多高级用户而言,他们会在更新Portage树之前测试软件包或是想使用来源广泛的非官方ebuild。app-portage/gentoolkit-dev软件包提供了gensync工具,帮助你的overlay仓库时时都处于最新的状态。

可以用gensync一次更新所有的仓库,也可以选择更新其中的几个。每个仓库会有一个.syncsource文件于/etc/gensync/配置目录下,其内容包含仓库的存放位置、名字、ID等。

假设你有两个额外的仓库,分别名为java(存放开发中的java ebuild)和entapps(存放在家中为你给公司开发的应用程序)。那么可以通过以下命令来更新这些仓库:

代码 2.1: 使用gensync更新仓库

# gensync java entapps

5.c. 非Portage维护的软件

Portage环境下使用自己维护的软件

尽管Portage已经提供了某些软件,但是某些情况下你还是想自己配置、安装和维护这些软件,而不是希望Portage为你自动完成这些过程。典型的例子是内核源码和nvidia驱动程序。你可以配置一下Portage让它知道某个软件包已经通过手动安装到系统中了。这个过程叫做注入”,Portage是通过/etc/portage/profile/package.provided文件来实现这个功能的。

举个例子,如果你想告诉Portage已经手动安装了gentoo-sources-2.6.11.6,那么把下面一行添加到/etc/portage/profile/package.provided文件里:

代码 3.1: package.provided范例

sys-kernel/gentoo-sources-2.6.11.6

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2008年 5月 4日

总结: “改造Portage树”提供给你一些关于如何使用你自己的Portage树,如何只同步你想要的分类,加入自己的软件包等等的心得技巧。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

Mike Frysinger
Gentoo * 开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Stuart Longland
编辑

Tobias Scherbaum
编辑

Xavier Neys
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

张乐
译者

叶宝泰
译者

杨珂
译者

杨小广
译者

vivian.ye
译者

余雷
译者

陈永骥
译者

王国辉
译者

娄东斌
译者

贾震
译者

余鈺炜
译者

陈代焱
译者

范华
译者

沈辰俊
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.