This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Gentoolkit

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Gentoolkit and the translation is 85% complete.
Outdated translations are marked like this.

Not to be confused with Genkernel.

Resources

Gentoolkit是一套简化Gentoo系统管理的工具,本文档介绍了Gentoolkit中的一些工具的基础知识。

介绍

Gentoolkit是什么?

Gentoo是一款独特的发行版,它呈现了一些对于其他发行版根本不存在的复杂性。由于Gentoo开发人员和贡献者发现了其中的一些复杂性,他们还编写了一些工具来帮助用户和管理员解决这些问题。许多工具已经贡献给Gentoo项目,并包含在app-portage/gentoolkit包中。

附注
截至目前,Gentoolkit有两个版本:app-portage/gentoolkitapp-portage/gentoolkit-dev。前者包含管理脚本,后者包含特定于帮助Gentoo“开发”的脚本。Gentoo开发人员可以通过联系Gentoolkit维护人员将他们的脚本包含到app-portage/gentoolkit-dev中。本文档的其余部分仅讨论app-portage/gentoolkit包。
附注
自版本0.4.0起,app-portage/gentoolkit-dev已合并到app-portage/gentoolkit中。

Gentoolkit包含大量有用的工具,可帮助用户管理包并跟踪系统中发生的情况。 大多数用户(特别是经常更新系统的用户)将从安装Gentoolkit中受益。

安装

安装

与大多数其他Gentoo软件包一样,安装就像emerge一样简单:

root #emerge --ask app-portage/gentoolkit
附注
Gentoolkit中的许多工具都会显示有关安装系统或需要root权限的重要信息。 因此,某些程序只能被具有root权限的用户运行。

查找文档

程序可能具有的任何文档(手册页除外)都存储在/usr/share/doc/gentoolkit-[version]/[program-name]/中。

euse

euse是一个在各个地方查看,设置和取消设置USE标记的工具。有关USE标志的更多信息,请参阅USE标志。有关完整帮助和所有选项,请参阅euse -h

查看,设置和取消设置USE标志

euse -a命令读取当前活动的USE标志并显示它们。

附注
euse现在有5个“列”用于显示是否设置了标志,以及是否已设置所有标志。列如下:+/-,在 Environment中设置,在make.Conf中设置,在make.Defaults中设置,在make.Globals中设置。输出看起来像[+ECDG]。
root #euse -a
X                   [+ CD ]
aalib               [+    ]
acpi                [+ C  ]
alsa                [+ C  ]
apache2             [+ C  ]
apm                 [+  D ]
avi                 [+  D ]
berkdb              [+  D ]
bitmap-fonts        [+  D ]
bonobo              [+    ]
cdr                 [+ C  ]
crypt               [+ CD ]
cscope              [+ C  ]
cups                [+ CD ]
curl                [+    ]
emboss              [+  D ]
encode              [+  D ]
esd                 [+    ]
fam                 [+    ]
fbcon               [+ C  ]
firefox             [+ C  ]
font-server         [+  D ]
foomaticdb          [+  D ]
fortran             [+  D ]
gd                  [+ C  ]
gdbm                [+  D ]
gif                 [+ CD ]
gimpprint           [+ C  ]
gnome               [+ CD ]
gphoto2             [+    ]
gpm                 [+ CD ]
gstreamer           [+ C  ]
gtk                 [+  D ]
gtkhtml             [+ C  ]
guile               [+    ]
imagemagick         [+    ]
imlib               [+ CD ]
innodb              [+    ]
ipv6                [+  D ]
javascript          [+ C  ]
jpeg                [+ CD ]
kde                 [+  D ]
ldap                [+    ]
libg++              [+ CD ]
libwww              [+ CD ]
mad                 [+ CD ]
mbox                [+ C  ]
md5sum              [+ C  ]
mikmod              [+ CD ]
mmx                 [+ C  ]
motif               [+ CD ]
mp3                 [+    ]
mpeg                [+ CD ]
mpeg4               [+ C  ]
mysql               [+ C  ]
ncurses             [+ CD ]
nls                 [+  D ]
nvidia              [+ C  ]
odbc                [+    ]
offensive           [+    ]
ogg                 [+ CD ]
opengl              [+ CD ]
oss                 [+  D ]
pam                 [+ CD ]
pdflib              [+ CD ]
perl                [+ CD ]
png                 [+ CD ]
python              [+ CD ]
qt                  [+  D ]
quicktime           [+ CD ]
readline            [+ CD ]
ruby                [+    ]
sdl                 [+ CD ]
slang               [+  D ]
spell               [+ CD ]
sse                 [+ C  ]
ssl                 [+ CD ]
svga                [+ CD ]
tcltk               [+ C  ]
tcpd                [+  D ]
tiff                [+ C  ]
truetype            [+ CD ]
usb                 [+ C  ]
vanilla             [+ C  ]
x86                 [+ C  ]
xml                 [+    ]
xosd                [+ C  ]
xv                  [+ CD ]
xvid                [+ C  ]
zlib                [+ CD ]

类似地,euse -a -g命令用于查看活动的全局USE标志。euse -a -l命令对活动的本地USE标志执行相同的操作。-g-l是euse的子选项,需要在它们之前使用一个选项(如-a)才能正常运行。

root #euse -a -l
bitmap-fonts        [+  D ]
font-server         [+  D ]
fortran             [+  D ]
gimpprint           [+ C  ]
md5sum              [+ C  ]
mpeg4               [+ C  ]
nvidia              [+ C  ]
offensive           [+    ]
truetype            [+ CD ]

euse能够设置或取消设置USE标志,命令为euse -E flagname(启用标志)和euse -D flagname(禁用标志)。

警告
不要单独使用euse -Eeuse -D(而不跟标志),这将在/etc/portage/make.conf设置/取消设置所有USE标志。虽然备份保存在/etc/portage/make.conf.euse_backup,但使用euse -Eeuse -D时请小心!

启用USE标志:

root #euse -E 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at /etc/portage/make.conf.euse_backup

运行命令后/etc/portage/make.conf文件如下所示:

FILE make.conf启用3dfx USE标志后
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
     firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
     innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
     mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
     ogg odbc offensive opengl pam pdflib perl png python \
     quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
     vanilla X xosd xv xvid x86 zlib 3dfx"

禁用USE标志:

root #euse -D 3dfx
/etc/portage/make.conf was modified, a backup copy has been placed at /etc/portage/make.conf.euse_backup

同样,命令后面的/etc/portage/make.conf文件:

FILE make.conf禁用3dfx USE标志后
USE="alsa acpi apache2 -arts cups cdr crypt cscope -doc fbcon \
     firefox gd gif gimpprint gnome gpm gstreamer gtkhtml imlib \
     innodb -java javascript jpeg libg++ libwww mad mbox md5sum \
     mikmod mmx motif mpeg mpeg4 mysql ncurses nvidia \
     ogg odbc offensive opengl pam pdflib perl png python \
     quicktime readline sdl spell sse ssl svga tcltk tiff truetype usb \
     vanilla X xosd xv xvid x86 zlib -3dfx"
附注
euse不会从/etc/portage/make.conf中物理删除该标志,它在标志之前添加-(减号)以取消它,可能需要手动清理/etc/portage/make.conf以消除不需要的变量,否则使用-P(purge)选项删除标志。例如,使用euse -P 3dfx 将删除3dfx标志。

其他工具

revdep-rebuild

这个工具是Gentoo的反向依赖重建器,它将扫描已安装的ebuild,以查找因其所依赖的软件包升级而损坏的软件包。它可以自动为用户安装这些包,但也可能发生给定包不能与当前安装的依赖项一起使用,在这种情况下,您应该将损坏的包升级到更新的版本。revdep-rebuild会将标志传递给emerge,它允许你使用--pretend标志来查看将要再次出现的内容。

root #revdep-rebuild -p
 * Configuring search environment for revdep-rebuild
  
 * Checking reverse dependencies
 * Packages containing binaries and libraries broken by a package update
 * will be emerged.
  
 * Collecting system binaries and libraries
 * Generated new 1_files.rr
 * Collecting complete LD_LIBRARY_PATH
 * Generated new 2_ldpath.rr
 * Checking dynamic linking consistency
[ 48% ]  *   broken /usr/lib/gstreamer-0.10/libgsttaglib.la (requires /usr/lib/libtag.la)
[ 64% ]  *   broken /usr/lib/libgdkglext-x11-1.0.la (requires /usr/lib/libGLU.la)
[ 67% ]  *   broken /usr/lib/libgtkglext-x11-1.0.la (requires /usr/lib/libGLU.la)
[ 85% ]  *   broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.la (requires /usr/lib/libGLU.la)
 *   broken /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la (requires /usr/lib/libGLU.la)
[ 97% ]  *   broken /usr/qt/3/lib/libqt-mt.la (requires -lpng)
[ 100% ]
 * Generated new 3_broken.rr
 * Assigning files to packages
 *   /usr/lib/gstreamer-0.10/libgsttaglib.la -> media-plugins/gst-plugins-taglib
 *   /usr/lib/libgdkglext-x11-1.0.la -> x11-libs/gtkglext
 *   /usr/lib/libgtkglext-x11-1.0.la -> x11-libs/gtkglext
 *   /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gdkgl/_gdkgl.la -> dev-python/pygtkglext
 *   /usr/lib/python2.6/site-packages/gtk-2.0/gtk/gtkgl/_gtkgl.la -> dev-python/pygtkglext
 *   /usr/qt/3/lib/libqt-mt.la -> x11-libs/qt
 * Generated new 4_raw.rr and 4_owners.rr
 * Cleaning list of packages to rebuild
 * Generated new 4_pkgs.rr
 * Assigning packages to ebuilds
 * Generated new 4_ebuilds.rr
 * Evaluating package order
 * Generated new 5_order.rr
 * All prepared. Starting rebuild
emerge --oneshot --pretend  dev-python/pygtkglext:0
media-plugins/gst-plugins-taglib:0.10
x11-libs/gtkglext:0
x11-libs/qt:3
  
These are the packages that would be merged, in order:
  
Calculating dependencies... done!
[ebuild   R   ] media-plugins/gst-plugins-taglib-0.10.17
[ebuild   R   ] x11-libs/gtkglext-1.2.0
[ebuild   R   ] x11-libs/qt-3.3.8b-r2
[ebuild   R   ] dev-python/pygtkglext-1.1.0
 * Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.

要重建某些软件包,请运行revdep-rebuild而不使用-p标志,列表中的包将会被安装。

glsa-check

glsa-check主要是一个测试工具,可以跟踪各种GLSA的(Gentoo Linux Security Advisory)并最终集成到emergeequery中。

eread

eread是一个简单的工具,用于显示自2.1版以来Portage生成的elog文件,可以通过在/etc/portage/make.conf中设置几个变量来启用elog文件的保存:

FILE make.conf启用elog
PORTAGE_ELOG_CLASSES="log"
PORTAGE_ELOG_SYSTEM="save"
附注
这只是保存elog消息的一种方法。 有关Portage elog系统如何工作的更多信息,请参阅Portage手册中的相应页面。

一旦elog设置满意,运行eread查看日志文件。

user $eread
This is a list of portage log items. Choose a number to view that file or type
q to quit.
  
1) app-portage:gentoolkit-0.2.4_pre2:20070320-000256.log
2) app-portage:gentoolkit-0.2.4_pre2:20070320-000258.log
3) app-portage:gentoolkit-0.2.4_pre2:20070320-000319.log
4) app-portage:gentoolkit-0.2.3:20070320-000408.log
Choice?

选择一个数字,将使用PAGER环境变量中指定的分页程序显示该文件。如果没有设置PAGER,将使用less。可以使用eselectpager模块)设置PAGER环境变量。

显示elog项目后,系统将提示您是否要删除该文件。

eclean

eclean is a tool to remove old source files and old binary packages from the system.

When building and installing packages, the source files are downloaded and preserved in DISTDIR, usually /usr/portage/distfiles. This can accumulate several gigabytes of material over time if it is not cleaned periodically. Users should run eclean-dist to clean source files from DISTDIR.

It is possible to create archives of installed packages by using quickpkg or FEATURES="buildpkg". These archived packages are kept in PKGDIR, usually /usr/portage/packages. When they are no longer needed, or if they are too old, eclean-pkg can be ran to remove them from PKGDIR. It is a good way to ensure that any binary packages on the system are only the latest versions.

For more information on eclean and tips on maintaining a cruft-free system, please read man eclean or check the eclean article.

See also


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Matt Butcher, John P. Davis, Erwin, Shyam Mani, Xavier Neys, Karl Trygve, José Luis Rivero, Joshua Saddler, Douglas Anderson
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.