Gentoo Logo
Gentoo Logo Side

Gentoolkit

Content:

1. イントロダクション

Gentoolkit とは何か? 

Gentoo は他に例のない(unique)なディストリ ビューションであり、他のディストリビューション にはない複雑さがあります。Gentoo の開発者たち とコントリビューターたちがこれらの複雑さを見つ け、彼らはその複雑さに伴うユーザーと管理者の労 力を軽減しようとツール類を開発しました。これら 多くのツール類は Gentoo プロジェクトに寄与され、 app-admin/gentoolkit に含まれてい ます。

Gentoolkit には Portage と ebuild アーキテ クチャの管理に役立つたくさんの有用なツール類が 入っています。ほとんどのユーザー -- 特にシステ ムを頻繁にアップデートするような人 -- にとって、 gentoolkit をインストールすることで恩恵を受け られるでしょう。

インストール 

ほかのどの Gentoo パッケージと全く同じよう に、インストール方法は単純な emerge です。

Code Listing 1.1

emerge gentoolkit 
			

Note: gentoolkit のツール類の多くはあな たのシステムの重要情報を明らかにしたり、root 権限を要求します。そのため、root 権限をもつユー ザーに起動されたときのみ、いくつかのプログラム は実行されます。(もしくは、そのときのみ適切に機能 します。)。

ドキュメントの発見 

これを書いているときでは、gentoolkit にある プログラムのすべてに適切なドキュメントはありま せん。あるものは man ページがありますが、すべ てにはありません。プログラムが(man ページとは 別に)持っているかもしれないドキュメント類は全 て /usr/doc/gentookit-[version]/[program-name]/ 以下に置かれています。

2. qpkg でのパッケージ情報問い合わせ

序 

qpkg は ebuild がインストールされて いるかどうかについての情報を確定するための柔軟 なツールです。qpkg は同じパッケージの複数バー ジョンがインストールされていたとしても、ファイ ルが何の ebuld に含まれているか、そして、ある 特定の ebuild の動作についての情報を提供するこ とができます。

qpkg を引数なしで呼び出すことで、す べての ebuild のリストが表示され、パッケージの 後ろにアスタリスク(*)付のものがシステムにイン ストールされたものです。

Note: デフォルトでは、qpgk はカラー の表示をします。カラーをオフにするにはコマンドラ インで --no-color もしくは -nc フラグを使います。

パッケージ情報の問い合わせ 

もっとも一般的な qpkg の使い方の一つ は与えられたパッケージが何かを確定することであ る。たとえば、net-misc にざっと目 を通すと、neon と呼ばれるパッケー ジを見つけました。それがどういったものなのか分 からなかったので、qpkg を起動しました。

Code Listing 2.1

 
hebron root # qpkg -i net-misc/neon
net-misc/neon-0.15.3-r1
       HTTP and WebDAV client library [ http://www.webdav.org/neon ]
net-misc/neon-0.18.5
       HTTP and WebDAV client library [ http://www.webdav.org/neon ]
net-misc/neon-0.19.2
       HTTP and WebDAV client library [ http://www.webdav.org/neon ]
net-misc/neon-0.19.2-r1
       HTTP and WebDAV client library [ http://www.webdav.org/neon ]
net-misc/neon-0.21.1
       HTTP and WebDAV client library [ http://www.webdav.org/neon ] 
			

qpkg は5つの net-misc/neon ebuild に対して ebuild ファイルを通して読み込み、そして DESCRIPTION と HOMEPAGE にある情報を出力します。

一つの ebuild にあるファイルのリスト 

qpkg はインストールされた ebuild に 属しているファイルをリストすることもできます。 私はgentoolkit がいくつかのツールをインストー ルしたのは知っていますが、それらのすべてが何で あるかを知っているわけではありません。qpgk -l で調べることができます。

Code Listing 2.2

 
hebron portage # qpkg -l app-admin/gentoolkit
app-admin/gentoolkit-0.1.14-r1 *
CONTENTS:
/usr
/usr/share
/usr/share/gentoolkit
/usr/share/gentoolkit/histogram.awk
/usr/share/doc
/usr/share/doc/gentoolkit-0.1.14-r1
/usr/share/doc/gentoolkit-0.1.14-r1/gentool
/usr/share/doc/gentoolkit-0.1.14-r1/gentool/ChangeLog.gz
/usr/share/doc/gentoolkit-0.1.14-r1/lintool
/usr/share/doc/gentoolkit-0.1.14-r1/lintool/checklist-for-ebuilds.gz
/usr/share/doc/gentoolkit-0.1.14-r1/lintool/ChangeLog.gz
/usr/share/doc/gentoolkit-0.1.14-r1/etc-update
/usr/share/doc/gentoolkit-0.1.14-r1/etc-update/ChangeLog.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/qpkg.1.gz
/usr/share/man/man1/lintool.1.gz
/usr/share/man/man1/etc-update.1.gz
/usr/bin
/usr/bin/gentool-bump-revision
/usr/bin/gentool-total-coverage
/usr/bin/gentool-author-coverage
/usr/bin/gentool-package-count
/usr/bin/qpkg
/usr/bin/pkg-size
/usr/bin/lintool
/usr/sbin
/usr/sbin/pkg-clean
/usr/sbin/mkebuild
/usr/sbin/emerge-webrsync
/usr/sbin/epm
/usr/sbin/etc-update
/etc
/etc/etc-update.conf 
			

あるファイルがどのパッケージに由来するか調べること 

あるファイルがどのパッケージに由来するか調 べるためには、-f--fine-file フラグを使います。

Code Listing 2.3

				hebron portage # qpkg -f	net-www/mozilla * 
			

二重パッケージをリストする 

ときおり、同じパッケージで複数のバージョン が存在することがあるかもしれません。qpkg -dup は二重パッケージのリストを出力します。 しかしながら二重バージョンの存在は古いバージョ ンが取り除かれたことを示すわけではありません。それら は異なるスロットを満たしているかも知れません。同 じスロットで重複を探すには qpkg --dups --slots を使います。私は、丁度 KDE 3.0 を 3.0.2 にアップデートしたところです、そして同じス ロットにいくつかの重複があります。

Code Listing 2.4

 
hebron portage # qpkg --dups --slot 
app-admin/gentoolkit
kde-base/kdeaddons
kde-base/kdeadmin
kde-base/kdeartwork
kde-base/kdebase
kde-base/kdegames
kde-base/kdelibs
kde-base/kdemultimedia
kde-base/kdenetwork
kde-base/kdetoys
kde-base/kdeutils
media-libs/freetype
x11-libs/qt 
			

パッケージの完全性の検証 

ファイルがインストールされてから消去されて いないことを知るために、ときおりパッケージの完 全性をチェックすることは有用です。qpkg は パッケー ジのファイルが古くなったり、移動したり、消去さ れたとしても、インストール回数だけでなく md5 sum も検証することができます。

mtime と md5 sum をチェックするためには -c フラグを使います。

Code Listing 2.5


hebron portage # qpkg gnupg -c -v    
app-crypt/gnupg-1.0.6 *
/usr/lib/gnupg/rndunix !md5! !mtime!
/usr/lib/gnupg/rndegd !md5! !mtime!
/usr/lib/gnupg/tiger !md5! !mtime!
/usr/bin/gpg !md5! !mtime!
/usr/bin/gpgv !md5! !mtime!
/usr/share/gnupg/options.skel !md5! !mtime!
/usr/share/gnupg/FAQ !md5! !mtime!
/usr/share/gnupg/faq.html !md5! !mtime!
/usr/share/locale/da/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/de/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/eo/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/et/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/fr/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/id/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/it/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/ja/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/nl/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/pl/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/pt_BR/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/sv/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/locale/tr/LC_MESSAGES/gnupg.mo !md5! !mtime!
/usr/share/info/gpgv.info.gz !md5! !mtime!
/usr/share/man/man1/gpg.1.gz !md5! !mtime!
/usr/share/man/man1/gpgv.1.gz !md5! !mtime!
24/92

app-crypt/gnupg-1.0.7 *
0/101 
			

見た通り、私は一つ以上 GnuPG のバージョンを インストールしてきました。qpkg は私がイ ンストールして以降、古いバージョンからのファイ ルの大部分が変えられたことを報告しています。こ れらのパッケージの多くは、おそらく、 gnupg-1.0.6 から gnupg-1.0.7 にアップデートしたときに 変更されたのでしょう。最後の2行は私がインストー ルして以来 gnupg-1.0.7から 101 個のファ イルのうち 0 個のファイルが変えられたことを示 していることに注意しておきます。これは良いこと で、もしそれらのうち一つでも変わっていたら、私 は心配になったでしょう。

でも待って、もうすこし。 

qpkg はここで私が触れないであろう、 他の問い合わせタスクにも使われます。qpkg にはとても完成された manpage があります。より 多くの情報に関してはそこを参照してください。

3. lintool

序 

lintool は ebuild スクリプトが標準と 必要条件に従っているかチェックするプログラムで す。ebuild 開発者にとっては lintool を 使うことは正しい手順であるか、そして Gentoo の 中核チームが ebuild を Gentoo リポジトリーに含 めるためにすでに行ってきたこと以上のことを要求 しないために重要です。

使用 

lintool を実行することで、きちんと整 えられたチェックリストとチェックした結果が出力 されます。

Code Listing 3.1

 
hebron portage # lintool app-crypt/gnupg/gnupg-1.0.7.ebuild 
app-crypt/gnupg/gnupg-1.0.7.ebuild                                     : Not OK

-------------------------------------------------------------------------------
 Summary for all 1 ebuild(s) checked                             # errors/warns
 -------------------------------------------------------------------------------
 Testing for illegal space characters, weird backslash formatting  : 0 / 0
 Testing for malformed headers                                     : 0 / 1
 Testing for occurence of deprecated try                           : 0 / 0
 Testing for superfluous A=${P}.tar.gz                             : 0 / 0
 Testing for empty DEPEND                                          : 0 / 0
 Testing for empty HOMEPAGE                                        : 0 / 0
 Testing for empty DESCRIPTION                                     : 0 / 0
 Testing for presence of env vars                                  : 1 / 1
 Testing for sane USE flag usage                                   : 0 / 0

 Total number of ebuilds with errors                               : 1 (100%)
 Total number of ebuilds with warnings                             : 1 (100%)
			

最初のラインは ebuild が OK かどうかの まとめです。gnupg-1.0.7 の場合 では、OK にはなっていません。チェック 項目をみていくと、malformed headers (おかしなヘッダー)と presence of env vars (env 設定の有り無し) にエラーが出 ているのが分かります。

ebuild を見てみると、要求されている env vars(LICENSE と RDEPEND)がないこと がわかります。これらを付け足してエラー を直します。しかし、なおも二つの警告が でています-- 一つは malformed headers (おかしなヘッダー)と env val です。こ れらのエラーを見つけるのを助けるために、 lintoo--show-details をつけて再度実行します。

Code Listing 3.2

 
hebron gnupg # lintool --show-details ./gnupg-1.0.7.ebuild 
                                
-------------------------------------------------------------------------------
# Some data cut for brevity....

 Status for ./gnupg-1.0.7.ebuild
* Testing for malformed headers                                         : passed
- (W) Has illegal or suspect headers:
 |Suspect copyright year: # Copyright 1999-2000 Gentoo Technologies, Inc.
 * Testing for occurence of deprecated try                               : passed
 * Testing for superfluous A=${P}.tar.gz                                 : passed
 * Testing for empty DEPEND                                              : passed
 * Testing for empty HOMEPAGE                                            : passed
 * Testing for empty DESCRIPTION                                         : passed
 * Testing for presence of env vars                                      : passed
 - (W) Missing SLOT=
 * Testing for sane USE flag usage                                       : passed

 -------------------------------------------------------------------------------
  Summary for all 1 ebuild(s) checked                             # errors/warns
  -------------------------------------------------------------------------------
  Testing for illegal space characters, weird backslash formatting  : 0 / 0
  Testing for malformed headers                                     : 0 / 1
  Testing for occurence of deprecated try                           : 0 / 0
  Testing for superfluous A=${P}.tar.gz                             : 0 / 0
  Testing for empty DEPEND                                          : 0 / 0
  Testing for empty HOMEPAGE                                        : 0 / 0
  Testing for empty DESCRIPTION                                     : 0 / 0
  Testing for presence of env vars                                  : 0 / 1
  Testing for sane USE flag usage                                   : 0 / 0

  Total number of ebuilds with errors                               : 0 (0%)
  Total number of ebuilds with warnings                             : 1 (100%)
			

今度こそ、ebuild にある年の数字がおそらく間違っ ているのだろうということと、SLOT の値がないと いうことが分かりました。これらを直すことで警告 を全部消えます。

4. epm

Introduction 

epm は Red Hat の rpm コマンド似せたパッケージ管理ツールです。 rpm の全ての特徴を提供するものではありませんが、一部は rpm の問い合わ せオプションよりも強力です。

ここでは触れませんが、除去したパッケージも扱えます。epm --helpepm を使ったパッケージの消去について学ぶことができます。

epm でのパッケージ問い合わせ 

epm は Red Hat の rpm のコマン ドラインと本質的には同じように機能しま す。epm -qa はインストールされ たすべてのパッケージのリストを出力しま す。epm -ql はある特定の ebuld に由来するすべてのファイルをリストしま す。

Code Listing 4.1

 
hebron etc # epm -ql ethereal
/usr/lib/ethereal/plugins/0.8.20/gryphon.so
/usr/lib/ethereal/plugins/0.8.20/gryphon.la
/usr/lib/ethereal/plugins/0.8.20/gryphon.a
/usr/lib/ethereal/plugins/0.8.20/mgcp.so
/usr/lib/ethereal/plugins/0.8.20/mgcp.la
/usr/lib/ethereal/plugins/0.8.20/mgcp.a
/usr/lib/ethereal/plugins/0.8.20/cosnaming.so
/usr/lib/ethereal/plugins/0.8.20/cosnaming.la
/usr/lib/ethereal/plugins/0.8.20/cosnaming.a
/usr/lib/ethereal/plugins/0.8.20/coseventcomm.so
/usr/lib/ethereal/plugins/0.8.20/coseventcomm.la
/usr/lib/ethereal/plugins/0.8.20/coseventcomm.a
/usr/bin/ethereal
/usr/bin/editcap
/usr/bin/mergecap
/usr/bin/tethereal
/usr/bin/text2pcap
/usr/bin/idl2eth
/usr/share/man/man1/idl2eth.1.gz
/usr/share/man/man1/tethereal.1.gz
/usr/share/man/man1/text2pcap.1.gz
/usr/share/man/man1/editcap.1.gz
/usr/share/man/man1/ethereal.1.gz
/usr/share/man/man1/mergecap.1.gz
/usr/share/doc/ethereal-0.8.20/AUTHORS.gz
/usr/share/doc/ethereal-0.8.20/COPYING.gz
/usr/share/doc/ethereal-0.8.20/NEWS.gz
/usr/share/doc/ethereal-0.8.20/ChangeLog.gz
/usr/share/doc/ethereal-0.8.20/README.gz
/usr/share/doc/ethereal-0.8.20/INSTALL.configure.gz
/usr/share/doc/ethereal-0.8.20/TODO.gz
/usr/share/doc/ethereal-0.8.20/README.aix.gz
/usr/share/doc/ethereal-0.8.20/README.bsd.gz
/usr/share/doc/ethereal-0.8.20/README.hpux.gz
/usr/share/doc/ethereal-0.8.20/README.irix.gz
/usr/share/doc/ethereal-0.8.20/README.linux.gz
/usr/share/doc/ethereal-0.8.20/README.tru64.gz
/usr/share/doc/ethereal-0.8.20/README.win32.gz
/usr/share/doc/ethereal-0.8.20/README.vmware.gz
/etc/ethereal/manuf 
			

このドキュメントを書いている時点では qpkg にはない epm の進ん だ問い合わせオプションが少々あります。 たとえば、コンフィギュレーションファイ ルやドキュメンテーションファイルを問い 合わせることができます。

Code Listing 4.2


hebron etc # epm -qc ethereal
/etc/ethereal/manuf

hebron etc # epm -qd ethereal
/usr/share/man/man1/idl2eth.1.gz
/usr/share/man/man1/tethereal.1.gz
/usr/share/man/man1/text2pcap.1.gz
/usr/share/man/man1/editcap.1.gz
/usr/share/man/man1/ethereal.1.gz
/usr/share/man/man1/mergecap.1.gz
/usr/share/doc/ethereal-0.8.20/AUTHORS.gz
/usr/share/doc/ethereal-0.8.20/COPYING.gz
/usr/share/doc/ethereal-0.8.20/NEWS.gz
/usr/share/doc/ethereal-0.8.20/ChangeLog.gz
/usr/share/doc/ethereal-0.8.20/README.gz
/usr/share/doc/ethereal-0.8.20/INSTALL.configure.gz
/usr/share/doc/ethereal-0.8.20/TODO.gz
/usr/share/doc/ethereal-0.8.20/README.aix.gz
/usr/share/doc/ethereal-0.8.20/README.bsd.gz
/usr/share/doc/ethereal-0.8.20/README.hpux.gz
/usr/share/doc/ethereal-0.8.20/README.irix.gz
/usr/share/doc/ethereal-0.8.20/README.linux.gz
/usr/share/doc/ethereal-0.8.20/README.tru64.gz
/usr/share/doc/ethereal-0.8.20/README.win32.gz
/usr/share/doc/ethereal-0.8.20/README.vmware.gz
			

Note: epm --help で最後には epm がサポートするであろうオプ ションをリストすることができる。しかし ながら、*(アスタリスク)がプレフィクス についているものは、まだ実装されていな いので注意してください。

5. Others

etc-update 

etc-update は設定ファイルの手 動更新を代わりにやってくれる便利なもの です。設定ファイルを変更する emerge を 実行したあと、etc-update を実行 することで埋め込まれた設定ファイルのアッ プデートを進めることができます。

これはメニューを中心に操作され、何をするか きめる前に設定ファイルをみたり、マージ したりする機能を含んでいます。

gentool 

gentool は ebuild に関する統計 を調べるいくつかの小さなスクリプトに対 する総称です。たとえば、 gentool-total-coverage は email アドレスのリストや、それぞれが portage tree に持つ ebuild の数を出力します。

pkg-size 

pkg-size は与えられたパッケージにてインストールされたファイルのサイズを出力します。.

Code Listing 5.1


hebron portage # pkg-size nmap   
net-analyzer/nmap-2.54_beta24-r1 897024 (876KB) 
			

mkebuild 

mkebuidl はebuild の作成プロセ スをなるべく自動化することで新しい ebuild の作成を簡単にします。 mkebuild [filename] と実行する ことで、そのファイルに対する ebuild が 作られます。そのファイルはある種のアー カイブでなければいけません。動作すると、 あなたがしなければいけないかもしれない 変更に関してフィードバックを提供するで しょう。

emerge-webrsync 

毎日のスナップショットを wget をつかって HTTP を通してダウンロードします、そして(オプションとして) portage を同期させます。



line
Updated 25 September 2002
line
Matt Butcher
Author

シンドウ
翻訳

John P. Davis
Editor

line
Summary:  Gentoolkit は Gentoo システム管理をしやすくする都合のよいツー ル類です。このドキュメントは現在 Gentoolkit にあるツールの基本 的なことがらをカバーします。
line
$99/mo dedicated servers

No BS Dedicated Gentoo Linux Servers from vr.org.

line
Tek Alchemy

Tek Alchemy offers dedicated servers and other hosting solutions running Gentoo Linux.

line
php|architect

php|architect is the monthly magazine for PHP professionals, available worldwide in print and electronic format. A percentage of all the sales will be donated back into the Gentoo project.

line
SevenL.net

Seven L Networks provides customizable Dedicated Servers for your customized Gentoo install. Colocation and other hosting services are also provided.

line
The Gentoo Linux Store
line
Copyright 2001-2004 Gentoo Foundation, Inc. Questions, Comments, Corrections? Email [email protected].