Gentoo Logo

Portage-utils

内容:

1.  介绍

portage-utils是一套使用C写的非常快速的程序集,对于gentoolkit来说,它是意在提供一个快速但选择有限的副本。请记住portage-utils不是打算代替gentoolkit。虽然它的组件比同等的gentoolkit的组件更有效率,而且也许在需要重复地调用Portage时更适于用于脚本,但是portage-utils不提供同样的函数。它重来不考虑eclass,并且不提供像revdep-rebuildglsa-check之类的工具。

你可以在Gentoolkit指南里找到更多有关gentoolkit的信息。

你可以键入man q or q --help来得到portage-utils里的所有程序的列表。请阅读提到的所有的软件的man页,因为这个指南只是对这些最有用的函数进行一个简要的介绍,并且不包括每一个程序的所有信息。

使用portage-utils的第一步是安装包文件:

代码 1.1: 安装portage-utils

# emerge portage-utils

2.  使用

如何找到一个文件属于的包

qfile找一个文件属于的包:

代码 2.1: 找到一个文件属于的包

$ qfile /etc/fonts/fonts.conf
media-libs/fontconfig (/etc/fonts/fonts.conf)
$ qfile /usr/share/keymaps/atari/atari-uk-falcon.map.gz
sys-apps/kbd (/usr/share/keymaps/atari/atari-uk-falcon.map.gz)

验证包的完整性

如果你想要检查被某些包安装的文件的MD5或者是mtimes,你可以使用qcheck应用程序:

代码 2.2: 检查包的完整性

$ qcheck portage-utils
Checking app-portage/portage-utils-0.1.13 ...
  * 36 out of 36 files are good

当然,所有的安装后改变的文件都会在这里被报告。如果某个程序报告你必须在安装完后手动编辑配置文件,那其实没有什么可担心的。

列出依赖于某些包的包文件

当然那里也有能让你列出某些包依赖的所有的包。这你可以使用qdepends来达到。使用-a选项来显示某个包所有的DEPEND,RDEPEND和PDEPEND信息。

代码 2.3: 列出依赖于某些包的包文件

$ qdepends -a pygtk
 * DEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
>=dev-util/pkgconfig-0.9 sys-devel/patch
 * RDEPEND
dev-python/pygtk-2.8.2: >=dev-lang/python-2.3 >=x11-libs/gtk+-2.8.0
>=dev-libs/glib-2.8.0 >=x11-libs/pango-1.10.0 >=dev-libs/atk-1.8.0
>=gnome-base/libglade-2.5.0 >=dev-python/pycairo-0.9.0 dev-python/numeric
virtual/opengl dev-python/pyopengl >=x11-libs/gtkglarea-1.99
 * PDEPEND

列出属于一个ebuild文件的文件

qlist给你属于一个ebuild的所有文件的列表

代码 2.4: 列出属于一个ebuild文件的文件

$ qlist vim
/usr/bin/gvim
/usr/bin/gvimdiff
/usr/bin/evim
/usr/bin/eview
/usr/bin/gview
/usr/bin/rgvim
[...]

搜索使用某些USE标记的包

使用quse来做这事,它必须使用root用户来运行。当第一次建立/更新ebuild缓存时可能需要一些时间。

代码 2.5: 寻找带有“firefox”USE标记的包

# quse firefox
app-office/openoffice/openoffice-2.0.2_rc1.ebuild binfilter curl eds firefox gnome gtk java kde ldap xml2
dev-haskell/gtk2hs/gtk2hs-0.9.10.ebuild doc glade gnome firefox
dev-java/swt/swt-3.1-r1.ebuild accessibility cairo firefox gnome
[...]

找到包的大小

使用qsize程序来做这件事是想要多简单就有多简单:

代码 2.6: 找到包的大小

$ qsize vim
app-editors/gvim-6.4: 10 files, 7 non-files, 2327.516 KB
app-editors/vim-6.4: 6 files, 2 non-files, 2058.14 KB
app-editors/vim-core-6.4: 1024 files, 68 non-files, 10950.984 KB
[...]

搜索Portage树

portage-utils的最强大的工具之一是qsearch。这个工具允许你比默认的emerge -s更快地搜索Portage树。

这里是一些关于它的用法的示例:

代码 2.7: 使用qsearch来搜索软件包树

(我忘记了我最喜欢的字体的包的名字)
$ qsearch terminus
media-fonts/terminus-font A clean fixed font for the console and X11

(我想谢谢制作了它们的那个家伙。他的主页是什么?)
$ qsearch -H terminus
media-fonts/terminus-font http://www.is-vn.bg/hamster/jimmy-en.html

(我现在要一个聊天客户端)
$ qsearch -S "jabber client"
app-emacs/emacs-jabber A Jabber client for Emacs.
net-im/gajim Jabber client written in PyGTK
net-im/gnome-jabber Gnome Jabber Client
net-im/gossip Lightweight Jabber client for GNOME
net-im/imcom Python commandline Jabber Client
net-im/psi QT 3.x Jabber Client, with Licq-like interface
net-im/tkabber Featureful Jabber client for tcl/tk.
x11-themes/psi-themes Iconsets for Psi, a QT 3.x Jabber Client

从emerge的log文件里提取信息

那里也有一个允许你从你的emerge.log文件里提取有用信息的工具。它叫做qlop,并且当你想要评估包的编译时间或者和你的朋友比较谁的电脑比较快时它会很有用。它也能让你现在正在编译什么和要多长时间,这当你在命令行下并打算检查它时很方便。

代码 2.8: 用qlop阅读emerge的log文件

(我现在开始编译安装perl,并且我想要一个它一般要安装多长的预测)
$ qlop -tH perl
perl: 7 minutes, 52 seconds for 4 merges
(现在让我们看看正在编译安装什么)
$ qlop -c
* perl-5.8.8-r23
    started: Mon May 21 12:41:11 2007
    elapsed: 19 seconds


打印

更新于2007年 5月 23日

本翻译的原始版本已经不再被维护

总结: 这个指南涵盖了一些普通的portage-utils用法,portage-utils是一套用C写的快速Portage帮助程序。

Łukasz Damentko
作者

Joshua Saddler
编辑

Marcelo Góes
编辑

Zezhou Jiang
译者

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.