/[ddp]/manuals/trunk/apt-howto/apt-howto.ja.sgml
ViewVC logotype

Contents of /manuals/trunk/apt-howto/apt-howto.ja.sgml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6994 - (show annotations) (download) (as text)
Mon Nov 30 14:22:36 2009 UTC (3 years, 5 months ago) by osamu
File MIME type: text/x-sgml
File size: 55034 byte(s)
Mark Obsolete Documentation as such
1 <!doctype debiandoc system>
2
3 <book>
4
5 <title>APT HOWTO (Obsolete Documentation)</title>
6
7 <author>
8 <name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
9 </author>
10
11 <version>1.7.6 - 2002 年 1 月</version>
12
13 <abstract>
14 この文書は、Debian のパッケージ管理ユーティリティである APT の働きについて、
15 ユーザに深く理解してもらうことを意図しています。その目的は、新しい Debian
16 ユーザの生活を楽にしたり、システム管理について理解を深めたいと願う人の手助けと
17 なることです。Debian ユーザが得られるサポートを改善する目的で、Debian プロ
18 ジェクトのために作成されました。
19 </abstract>
20
21 <copyright>
22 <copyrightsummary>
23 Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
24 </copyrightsummary>
25 <p>
26 This manual is free software; you may redistribute it and/or modify it
27 under the terms of the GNU General Public License as published by the
28 Free Software Foundation; either version 2, or (at your option) any
29 later version.
30 </p>
31
32 <p>
33 This is distributed in the hope that it will be useful, but without
34 any warranty; without even the implied warranty of merchantability or
35 fitness for a particular purpose. See the GNU General Public License
36 for more details.
37 </p>
38
39 <p>
40 A copy of the GNU General Public License is available as
41 /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or
42 on the World Wide Web at the GNU General Public Licence. You can also
43 obtain it by writing to the Free Software Foundation, Inc., 59 Temple
44 Place - Suite 330, Boston, MA 02111-1307, USA.
45 </p>
46 </copyright>
47
48 <toc>
49
50 <chapt>はじめに
51 <p>
52 初めに .tar.gz ありき。ユーザたちは、自分の GNU/Linux システムで使いたい
53 プログラム毎にコンパイルしなければなりませんでした。Debian が作られた時、
54 マシンにインストールされたパッケージの管理機能を備えたシステムが必要だと
55 考えられました。<prgn>dpkg</prgn> というのが、そのシステムに与えられた名前です。
56 こうして有名な 'パッケージ' というものが、Debian に最初にもたらされたのです。
57 それは Red Hat が、独自の rpm システムを作ろうと決断した少し前のことでした。
58
59 <p>
60 すぐに新たなジレンマが、GNU/Linux 製作者たちの心中に生まれました。
61 彼らが必要としているのは、パッケージ間の依存関係を自動的に管理し、
62 アップグレート中でも設定ファイルに注意を払ってくれる、高速で、実用的な、
63 効率の高い方法だったのです。ここでもまた、Debian が道を切り開いて APT
64 - Advanced Packaging Tool - を産み出しました。APT はそれから Conective によって
65 rpm でも使えるよう移植され、それ以外のディストリビューションにも適合するように
66 なりました。
67
68 <p>
69 本マニュアルでは、Conectiva による APT の移植である apt-rpm には触れません。
70 しかしその目的の為の本文書への "パッチ" は歓迎します。
71 </chapt>
72
73 <chapt id="basico">基本的な設定
74
75 <sect id="sources.list">/etc/apt/sources.list ファイル
76 <p>
77 APT は操作の一部に、利用可能なパッケージの一覧である 'ソース' ファイルを
78 使用します。このファイルが <tt>/etc/apt/sources.list</tt> です。
79
80 <p>
81 このファイルには通常、以下のようなエントリがあります。
82
83 <example>
84 deb http://host/debian distribution section1 section2 section3
85 deb-src http://host/debian distribution section1 section2 section3
86 </example>
87
88 もちろん、上記は架空のものであって、そのままでは使えません。
89 各行の冒頭にある <tt>deb</tt> と <tt>deb-src</tt> は、アーカイブの種類を
90 示しています。つまり、通常使うコンパイル済のパッケージであるバイナリ
91 パッケージ (<tt>deb</tt>)。それから、オリジナルのプログラムソースと Debian の
92 コントロールファイル (<tt>.dsc</tt>) 、およびプログラムを 'Debian 化'
93 するのに必要な変更点を含んだ <tt>diff.gz</tt> からなるソースパッケージ
94 (<tt>deb-src</tt>) です。
95
96 <p>
97 Debian のデフォルトの sources.list は次のようになっています。
98
99 <example>
100 # See sources.list(5) for more information, especialy
101 # Remember that you can only use http, ftp or file URIs
102 # CDROMs are managed through the apt-cdrom tool.
103 deb http://http.us.debian.org/debian stable main contrib non-free
104 deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
105 deb http://security.debian.org stable/updates main contrib non-free
106
107 # Uncomment if you want the apt-get source function to work
108 #deb-src http://http.us.debian.org/debian stable main contrib non-free
109 #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
110 </example>
111
112 以上は Debian の基本インストールに必要な行です。最初の <tt>deb</tt> 行は、
113 オフィシャルのアーカイブを示しています。2 行目は non-US アーカイブ、
114 3 行目は Debian セキュリティアップグレードのアーカイブです。
115
116 <p>
117 最後の 2 行はコメントアウトされて ('#' で始まって) いるので、apt-get は無視します。
118 これらは <tt>deb-src</tt> 行で、Debian のソースパッケージを指しています。
119 テストや再コンパイル目的でプログラムソースを頻繁にダウンロードするのなら、
120 これらの行のコメントを外してください。
121
122 <p>
123 <tt>/etc/apt/sources.list</tt> ファイルには、各種の行を混在させることが
124 できます。APT は <tt>http</tt>, <tt>ftp</tt>, <tt>file</tt> (ローカル
125 ファイル、たとえばマウントされた ISO9660 ファイルシステム中のディレクトリ
126 など), <tt>ssh</tt> など、異なる種類のアーカイブにも対応できます。
127 </sect>
128
129 <sect id="dpkg-scanpackages">ローカルでの APT の使い方
130 <p>
131 多数の .deb パッケージをインストールする際に、依存関係を自動的に解決
132 するために APT を使いたくなる時があるでしょう。
133
134 <p>
135 そのためには .deb ファイルを収めるディレクトリを作ってください。
136 例えば:
137
138 <example>
139 mkdir /root/debs
140 </example>
141
142 次に /root ディレクトリ内に入って、空のファイルを作ってください。
143 名前は何でも構いません。これは、APT のレポジトリが "override" という
144 名で知られるファイルを必要とするからです。これは空でも構いませんが、
145 存在はしていなければなりません。この種のファイルを作るのには、次の
146 コマンドが利用できます。
147
148 <example>
149 touch file
150 </example>
151
152 このファイルの中で、パッケージに付いてくるオプションを上書きするための
153 オプションを定義することもできます。例は以下の通り:
154
155 <example>
156 package priority section
157 </example>
158
159 例の中で、package はパッケージ名、priority は low, medium, high の
160 いずれか、section はそのパッケージが属するジャンルです。そのファイルは
161 空のままでも構いません。
162
163 <p>
164 さらに /root ディレクトリ内で次のコマンドを実行してください:
165
166 <example>
167 dpkg-scanpackages debs file | gzip > debs/Packages.gz
168 </example>
169
170 上記の例中、file は "override" ファイルを指定してください。
171 上記コマンドは、debs/Packages.gz という名のパッケージに関する
172 各種情報を含んだファイルを生成します。このファイルが APT に
173 使われます。最後に、パッケージを使用するため sources.list に
174 以下の行を追加してください。
175
176 <example>
177 deb file:/root debs/
178 </example>
179
180 この後は、普段通りに APT のコマンドを使うだけです。ソースのレポジトリも
181 生成することができます。そのための手順は同じですが、<tt>.orig.tar.gz</tt>
182 と <tt>.diff.gz</tt> ファイルがなければならず、生成されるファイルも
183 Packages.gz の代わりに Sources.gz となります。生成用のプログラムも異なり
184 ます。<prgn>dpkg-scansources</prgn> です。コマンドラインは次のように
185 なります。
186
187 <example>
188 dpkg-scansources debs | gzip > debs/Sources.gz
189 </example>
190
191 <prgn>dpkg-scansources</prgn> には "override" ファイルが不要であることに
192 注意してください。sources.list の記述は次のようになります。
193
194 <example>
195 deb-src file:/root debs/
196 </example>
197 </sect>
198
199 <sect id="netselect">sources.list ファイルに記述すべき最適なミラーサイトの決定: netselect, netselect-apt
200
201 <p>
202 主に始めたばかりのユーザが間違いなく抱く疑問があります - 「<tt>sources.list
203 </tt> に記述すべき Debian のミラーサイトはどれですか?」。どのミラーにするのかを
204 決めるには、多くの方法があります。おそらく熟練者なら、いくつかのミラーに
205 ping を打って時間を測るスクリプトを持っているでしょう。ですが我々のためにも、
206 同じことをしてくれるプログラムがあります - <strong>netselect</strong> です。
207
208 <p>
209 netselect のインストールは、いつものようにするだけです:
210
211 <example>
212 apt-get install netselect
213 </example>
214
215 パラメータ無しで実行すると、ヘルプが表示されます。スペースで区切った
216 ホスト (ミラー) のリストを付けて実行すると、一つのホストとそのスコアを
217 返します。このスコアは、推定 ping 時間と hops 数 (接続要求が目的地に到達
218 するまでに経由したホストの数)、逆比例する推定ダウンロード速度 (よって
219 少ないほど可) などを計算して算出されます。コマンドが返すホストは、
220 最少のスコアとなった 1 つだけです (-vv オプションを付ければ、全候補の
221 スコアが出力されます)。以下の例を参照してください:
222
223 <example>
224 bash$ netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
225 365 ftp.debian.org.br
226 bash$
227 </example>
228
229 上記の意味は、netselect のパラメータとして渡したミラーの中で、
230 <tt>ftp.debian.org.br</tt> が最適であり、スコアは 365 であるということ
231 です (注意してください!! これは私のコンピュータで実行したものであり、
232 ネットワーク接続図は接続ポイントによって大きく異なります。このスコア
233 は、必ずしも他のコンピュータでの結果と一致するわけではありません)。
234
235 <p>
236 さあ、netselect が見つけた最速のミラーを <tt>/etc/apt/sources.list</tt>
237 ファイルに記述して (<ref id="sources.list"> 参照)、<ref id="apt-get">
238 にある tips に従ってください。
239
240 <p>
241 <strong>注意:</strong> ミラーの一覧は、
242 <url id="http://www.debian.org/mirror/mirrors_full"
243 name="http://www.debian.org/mirror/mirrors_full"> というファイルを
244 見れば、いつでもわかります。
245
246 <p>
247 バージョン 0.3 から、netselect パッケージには <strong>netselect-apt
248 </strong> というスクリプトが含まれるようになりました。これは上記の
249 プロセスを自動的に行なってくれるものです。ディストリビューションの
250 種類 (デフォルトは stable) をパラメータとして実行するだけで、最適な
251 main と non-US のミラーが記述された <tt>sources.list</tt> が生成され、
252 今いるディレクトリ内に配置されます。以下は、stable ディストリ
253 ビューション用の sources.list を生成する例です。
254
255 <example>
256 bash$ ls sources.list
257 ls: sources.list: File or directory not found
258 bash$ netselect-apt stable
259 (...)
260 bash$ ls -l sources.list
261 sources.list
262 bash$
263 </example>
264
265 <strong>注記:</strong> <tt>sources.list</tt> ファイルは、コマンドを
266 実行したディレクトリ内に生成されます。その後、<tt>/etc/apt/</tt>
267 ディレクトリに移動しなければなりません。
268
269 <p>
270 以降は <ref id="apt-get"> にある tips に従ってください。
271 </sect>
272
273 <sect id="cdrom">sources.list ファイルに CD-ROM を追加する
274
275 <p>
276 APT を使ってパッケージをインストールしたり、システムを自動的にアップ
277 グレードするのに CD-ROM を使いたいのなら、それを <tt>sources.list</tt>
278 に記述することができます。そのためには、以下の例のように
279 <prgn>apt-cdrom</prgn> プログラムを使用してください。
280
281 <example>
282 apt-cdrom add
283 </example>
284
285 ドライブに Debian の CD-ROM を入れておいてください。プログラムは
286 CD-ROM をマウントし、ちゃんとした Debian の CD であればパッケージに
287 関する情報を探します。CD-ROM の設定がやや変わっている場合でも、以下の
288 オプションを使うことができます。
289
290 <example>
291 -h - ヘルプを表示
292 -d directory - CD-ROM のマウント位置
293 -r - 認識された CD-ROM の名前変更
294 -m - マウントを行なわない
295 -f - 高速モード、package ファイルのチェックを行なわない
296 -a - 厳密スキャンモード
297 </example>
298
299 例えば次のように:
300
301 <example>
302 apt-cdrom -d /home/kov/mycdrom add
303 </example>
304
305 sources.list に追加することなしに、CD-ROM を識別させることもできます。
306
307 <example>
308 apt-cdrom ident
309 </example>
310
311 このプログラムは CD-ROM が <tt>/etc/fstab</tt> 内で適切に設定
312 されている場合のみ動作することに注意してください。
313 </sect>
314 </chapt>
315
316 <chapt id="apt-get">パッケージの管理
317
318 <sect id="update">利用可能なパッケージの一覧を更新する
319
320 <p>
321 どのパッケージがインストール済で、どれが未インストールか、どのパッケージが
322 インストール可能かについての記録用に、パッケージシステムはプライベートな
323 データベースを使用します。<prgn>apt-get</prgn> プログラムは、ユーザが
324 インストールを要求したパッケージを見つけたり、そのパッケージが適切に動作
325 するために必要な追加パッケージを見つけるのに、このデータベースを使います。
326
327 <p>
328 このデータベースを更新するには、<prgn>apt-get update</prgn> というコマンド
329 を使います。このコマンドは <tt>/etc/apt/sources.list</tt> に記述されている
330 アーカイブ内のパッケージ一覧を探します。このファイルに関する詳しい情報は
331 <ref id="sources.list"> を参照してください。
332
333 <p>
334 可能なパッケージ更新についての情報を最新に保つために、このコマンドを
335 定期的に実行するのは良いアイデアです。セキュリティ関連のアップデートは
336 なおさらです。
337 </sect>
338
339 <sect id="install">パッケージのインストール
340
341 <p>
342 ようやく、皆さんが待ち望んでいたプロセスです! sources.list を用意し、
343 利用可能なパッケージの一覧を更新したら、欲しいパッケージをインストール
344 するには <tt>apt-get</tt> を実行するだけです。例えば次のように:
345
346 <example>
347 apt-get install xchat
348 </example>
349
350 APT は指定されたパッケージの最新バージョンをデータベース中に探し、
351 <tt>sources.list</tt> に記載された対応するアーカイブから抽出します。
352 指定されたパッケージが他のパッケージに依存している場合 -- 以下の例のように
353 -- 、APT は依存関係をチェックして必要なパッケージをインストールします。
354 以下の例を参照してください:
355
356 <example>
357 [root]@[/] # apt-get install nautilus
358 Reading Package Lists... Done
359 Building Dependency Tree... Done
360 The following extra packages will be installed:
361 bonobo libmedusa0 libnautilus0
362 The following NEW packages will be installed:
363 bonobo libmedusa0 libnautilus0 nautilus
364 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
365 Need to get 8329kB of archives. After unpacking 17.2MB will be used.
366 Do you want to continue? [Y/n]
367 </example>
368
369 <package>nautilus</package> パッケージは、上記に引用された共有ライブラリに
370 依存しています。そのため、APT はそれらをアーカイブからダウンロードします。
371 <tt>apt-get</tt> のコマンドラインにそれらのライブラリ名が指定されていれば、
372 APT は作業を継続していいか尋ねてきません - 関連全パッケージをインストール
373 したいものと受け取るのです。
374
375 <p>
376 このことは、APT が確認を求めてくるのは依存関係を満たすために指定された
377 以外のパッケージをインストールする必要がある時だけ、ということを意味
378 しています。
379
380 <p>
381 ap-get には以下のオプションが使えます。
382
383 <example>
384 -h ヘルプを表示
385 -d ダウンロードのみ - インストールやアーカイブの解凍は行ないません
386 -f 完全度チェックに失敗しても、作業を継続しようとします
387 -s 何もしません。シミュレーションを行なうだけです
388 -y 全ての問いに対する回答が Yes とみなし、尋ねてきません
389 -u アップグレードされるパッケージの一覧を表示します
390 </example>
391
392 インストールすべき複数のパッケージを 1 行中に指定できます。
393 ネットワークからダウンロードされたファイルは
394 <tt>/var/cache/apt/archives/</tt> ディレクトリに置かれ、
395 それからインストールされます。
396
397 <p>
398 同じコマンドライン内に、削除すベきパッケージも指定することができます。以下の
399 例のように、削除したいパッケージ名の直後に '-' を付けるだけです:
400
401 <example>
402 [root]@[/] # apt-get install nautilus gnome-panel-
403 Reading Package Lists... Done
404 Building Dependency Tree... Done
405 The following extra packages will be installed:
406 bonobo libmedusa0 libnautilus0
407 The following packages will be REMOVED:
408 gnome-applets gnome-panel gnome-panel-data gnome-session
409 The following NEW packages will be installed:
410 bonobo libmedusa0 libnautilus0 nautilus
411 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
412 Need to get 8329kB of archives. After unpacking 2594kB will be used.
413 Do you want to continue? [Y/n]
414 </example>
415
416 パッケージの削除に関する詳細は <ref id="remove"> を参照してください。
417
418 <p>
419 インストール済のパッケージが一部壊れてしまったり、同じバージョンの
420 パッケージ中にあるファイルを再インストールしたいだけなら、以下の例の
421 ように <tt>--resinstall</tt> オプションを使えます。
422
423 <example>
424 [root]@[/] # apt-get --reinstall install gdm
425 Reading Package Lists... Done
426 Building Dependency Tree... Done
427 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
428 Need to get 0B/182kB of archives. After unpacking 0B will be used.
429 Do you want to continue? [Y/n]
430 </example>
431
432 本マニュアル執筆時点で使った APT のバージョンは 0.5.3 であり、これは
433 Debian の 'unstable' (<tt>sid</tt>) の最新版でした。このバージョンが
434 インストールされていれば、追加機能を使うこともできます。特定の
435 ディストリビューション内のパッケージをインストールするのに
436 <tt>apt-get install package/distribution</tt> としたり、
437 <tt>apt-get install package=version</tt> のようなコマンドラインを
438 使えます。例えば:
439
440 <example>
441 apt-get install nautilus/unstable
442 </example>
443
444 この例では、あなたが 'stable' を使っていても 'unstable' ディストリ
445 ビューション内の nautilus をインストールします。
446 'ディストリビューション' として指定できるのは <tt>stable</tt>,
447 <tt>testing</tt>, <tt>unstable</tt> の 3 つです。
448
449
450 <p>
451 <em>重要</em>: Debian の 'unstable' 版は、Debian パッケージが最初に
452 アップロードされる最新版です。このディストリビューションは、パッケージに
453 加えられたあらゆる変更を、些細なものから多数のパッケージやシステム全体に
454 影響を及ぼす大掛かりなものまで受け付けます。このため、経験の浅いユーザや
455 確固たる安定性が必要な人は、使用するべきでは<em>ありません</em>。
456
457 <p>
458 'testing' ディストリビューションは、安定性という点では 'unstable' よりも
459 わずかに優れていますが、業務上のシステムには 'stable' ディストリビューション
460 を使うべきです。
461 </sect>
462
463 <sect id="remove">パッケージの削除
464
465 <p>
466 あるパッケージをもはや使いたくないのなら、APT を使ってシステムから
467 取り除くことができます。そのためには <tt>apt-get remove package</tt> と
468 タイプするだけです。例えば:
469
470 <example>
471 [root]@[/] # apt-get remove gnome-panel
472 Reading Package Lists... Done
473 Building Dependency Tree... Done
474 The following packages will be REMOVED:
475 gnome-applets gnome-panel gnome-panel-data gnome-session
476 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
477 Need to get 0B of archives. After unpacking 14.6MB will be freed.
478 Do you want to continue? [Y/n]
479 </example>
480
481 上記の例でわかるように、APT は削除を要求したパッケージに依存している他の
482 パッケージも削除するようにしてくれます。依存している他のパッケージを削除
483 せずに、あるパッケージを削除することは、APT には不可能です。
484
485 <p>
486 上記のように <prgn>apt-get</prgn> を使うとパッケージは削除されますが、
487 そのパッケージの設定ファイルがあれば完全な形でシステム内に残ります。
488 パッケージを完全に削除するには、次のようにしてください:
489
490 <example>
491 [root]@[/] # apt-get --purge remove gnome-panel
492 Reading Package Lists... Done
493 Building Dependency Tree... Done
494 The following packages will be REMOVED:
495 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
496 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
497 Need to get 0B of archives. After unpacking 14.6MB will be freed.
498 Do you want to continue? [Y/n]
499 </example>
500
501 パッケージ名の後の '*' に注意してください。これは各パッケージの設定
502 ファイルも併せて削除されることを示しています。
503
504 <p>
505 <tt>install</tt> 指定を行なった時のように、特定のパッケージに対する指示を
506 <tt>remove</tt> と逆転させるための記号を使えます。削除の際に、<tt>'+'</tt> を
507 パッケージ名の直後に付ければ、そのパッケージは削除の代わりにインストール
508 されます。
509
510 <example>
511 [root]@[/] # apt-get --purge remove gnome-panel nautilus+
512 Reading Package Lists... Done
513 Building Dependency Tree... Done
514 The following extra packages will be installed:
515 bonobo libmedusa0 libnautilus0 nautilus
516 The following packages will be REMOVED:
517 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
518 The following NEW packages will be installed:
519 bonobo libmedusa0 libnautilus0 nautilus
520 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
521 Need to get 8329kB of archives. After unpacking 2594kB will be used.
522 Do you want to continue? [Y/n]
523 </example>
524
525 <prgn>apt-get</prgn> の表示が、追加でインストールされるパッケージ (つまり、
526 インストールを要求したパッケージを適切に機能させるためにインストール
527 しなければならないパッケージ)、削除されるパッケージ、インストールされる
528 パッケージ (再び追加パッケージ) であることに注意してください。
529 </sect>
530
531 <sect id="upgrade">パッケージのアップグレード
532
533 <p>
534 パッケージのアップグレードは、APT システムの偉大な成果です。
535 たった一つのコマンド - <tt>apt-get upgrade</tt> で実施可能です。この
536 コマンドは同じディストリビューション中のパッケージをアップグレード
537 する際も、新たなディストリビューションにアップグレードする際にも
538 使えます。ですが後者の場合は <tt>apt-get dist-upgrade</tt> コマンドを
539 使用したほうがよいでしょう。詳細については <ref id="dist-upgrade"> を
540 参照してください。
541
542 <p>
543 このコマンドには <tt>-u</tt> オプションを付けて実行されると便利です。
544 このオプションにより、APT はアップグレードされる全パッケージの一覧を
545 表示します。もし付けなければ、何が起きているのかわからないまま
546 アップグレードすることになります。APT は各パッケージの最新バージョンを
547 ダウンロードし、適切な順番でインストールします。アップグレードを実行する
548 前に、必ず <tt>apt-get update</tt> を実行しておくことが重要です。
549 <ref id="update"> を参照してください。以下は例です:
550
551 <example>
552 [root]@[/] # apt-get -u upgrade
553 Reading Package Lists... Done
554 Building Dependency Tree... Done
555 The following packages have been kept back
556 cpp gcc lilo
557 The following packages will be upgraded
558 adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
559 ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
560 libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
561 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
562 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
563 Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
564 Do you want to continue? [Y/n]
565 </example>
566
567 プロセスは非常に単純です。最初の 2, 3 行で、<tt>apt-get</tt> がいくつかの
568 パッケージを<tt>kept back (保持) </tt>すると言っていることに注意して
569 ください。これは、何らかの理由でインストールされない新バージョンのパッケージ
570 があることを意味しています。考えられる理由としては、壊れた依存関係
571 (依存先のパッケージの適正バージョンがダウンロードできない) や、
572 新たな依存関係 (依存するパッケージが新たに登場した) などがあります。
573
574 <p>
575 最初のケースを手際よく解決する方法はありません。2 番目のケースに対しては、
576 問題となっているパッケージに対して <tt>apt-get install</tt> を実行するだけで
577 充分であり、依存対象となっているパッケージをダウンロードしてくれます。
578 さらに手際のよい解決方法は <tt>dist-upgrade</tt> を使用することです。
579 <ref id="dist-upgrade"> を参照してください。
580 </sect>
581
582 <sect id="dist-upgrade">新リリースへのアップグレード
583
584 <p>
585 APT の本機能により、インターネットあるいは新 CD (購入したものか、ISO イメージと
586 してダウンロードしたもの) を使って、全 Debian システムを一度にアップグレード
587 することができます。
588
589 <p>
590 さらにインストール済パッケージ間の関係に変化があった際にも使います。
591 <tt>apt-get upgrade</tt> では、これらのパッケージは何も変更されないまま
592 保持 (<tt>kept back</tt>) されるのです。
593
594 <p>
595 例えば、Debian の安定版リビジョン 0 を使っていて、リビジョン 3 の CD を
596 買ってきたとします。この CD を元に APT を使って、システムをアップグレード
597 できます。その為には、<prgn>apt-cdrom</prgn> (<ref id="cdrom"> を参照)
598 を使って CD を <tt>/etc/apt/sources.list</tt> に追加し、それから
599 <tt>apt-get dist-upgrade</tt> を実行します。
600
601 <p>
602 APT は常に最新バージョンのパッケージを探すことに注意してください。
603 したがって、<tt>etc/apt/sources.list</tt> に CD よりも新しいバージョンの
604 パッケージを含むアーカイブが記述されていれば、APT はそこからパッケージを
605 ダウンロードします。
606
607 <p>
608 <ref id="upgrade"> の節で示した例では、いくつかのパッケージが
609 <tt>kept back</tt> されているのがわかります。この問題は、
610 <tt>dist-upgrade</tt> によって解決できます。
611
612 <example>
613 [root]@[/] # apt-get -u dist-upgrade
614 Reading Package Lists... Done
615 Building Dependency Tree... Done
616 Calculating Upgrade... Done
617 The following NEW packages will be installed:
618 cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
619 libpcre2 logrotate mailx
620 The following packages have been kept back
621 lilo
622 The following packages will be upgraded
623 adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
624 indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
625 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
626 liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
627 procps psmisc
628 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
629 Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
630 Do you want to continue? [Y/n]
631 </example>
632
633 パッケージがアップグレードされると共に、新たなパッケージが (パッケージ間の
634 新たな依存関係に応じて) インストールされていることに注意してください。
635 さらに、lilo が依然として <tt>kept back</tt> されていることにも注意して
636 ください。これはおそらく、新たな依存関係を超える深刻な問題があるからで
637 しょう。次の例によって原因がわかります:
638
639 <example>
640 [root]@[/] # apt-get -u install lilo
641 Reading Package Lists... Done
642 Building Dependency Tree... Done
643 The following extra packages will be installed:
644 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
645 logrotate mailx
646 The following packages will be REMOVED:
647 debconf-tiny
648 The following NEW packages will be installed:
649 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
650 logrotate mailx
651 The following packages will be upgraded
652 lilo
653 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
654 Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
655 Do you want to continue? [Y/n]
656 </example>
657
658 上記に示されているように、lilo には <package>debconf-tiny</package> パッ
659 ケージと新たに衝突しています。この事は、debconf-tiny を除去しなければ
660 lilo をインストール (あるいはアップグレード) できないことを意味しています。
661 </sect>
662
663 <sect id="dselect-upgrade">APT を dselect と一緒に使う
664
665 <p>
666 <prgn>dselect</prgn> は、インストールする Debian パッケージを選択する際の
667 手助けとなるプログラムです。やや複雑でうんざりさせられるプログラムだと
668 考えられていますが、練習すればそのコンソールベースの ncurses インター
669 フェイスを操作するコツを掴むことができます。
670
671 <p>
672 dselect の機能の一つに、ある Debian パッケージをインストールするにあたって
673 他のパッケージを "recommending" したり "suggesting" するという能力を
674 活用できるということがあります。このプログラムを使うには、root になって
675 <tt>'dselect'</tt> と実行してください。それからアクセス方法として、
676 'apt' を選択してください。この手順は実のところ不要なのですが、CD-ROM を
677 使わずにインターネットからパッケージをダウンロードしたいのであれば、
678 dselect を使うにあたって最善の方法です。
679
680 <p>
681 dselect の使用方法についてさらに理解したければ、Debian のホームページ
682 <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">
683 にある dselect のドキュメントを読んでください。
684
685 <p>
686 deselect を使って選択が終われば、次のようにしてください:
687
688 <example>
689 apt-get -u dselect-upgrade
690 </example>
691
692 すると以下の例のようになります:
693
694 <example>
695 [root]@[/] # apt-get -u dselect-upgrade
696 Reading Package Lists... Done
697 Building Dependency Tree... Done
698 The following packages will be REMOVED:
699 lbxproxy
700 The following NEW packages will be installed:
701 bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
702 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
703 libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
704 libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
705 util-linux-locales vacation xbill xplanet-images
706 The following packages will be upgraded
707 debian-policy
708 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
709 Need to get 7140kB of archives. After unpacking 16.3MB will be used.
710 Do you want to continue? [Y/n]
711 </example>
712
713 同じシステムで apt-get dist-upgrade を実行した場合と比べてみてください。
714
715 <example>
716 [root]@[/] # apt-get -u dist-upgrade
717 Reading Package Lists... Done
718 Building Dependency Tree... Done
719 Calculating Upgrade... Done
720 The following packages will be upgraded
721 debian-policy
722 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
723 Need to get 421kB of archives. After unpacking 25.6kB will be freed.
724 Do you want to continue? [Y/n]
725 </example>
726
727 他のパッケージが "suggested" したり "recommended" している多くのパッケージが
728 インストールされようとしていることに注意してください。他のパッケージは、
729 dselect の一覧表示を通じて選択したパッケージ毎にインストールされたり
730 削除 (lbxproxy の場合など) されたりしようとしています。APT と組み合わせて
731 使用すると、dselect は強力なツールとなるのです。
732 </sect>
733
734 <sect id="pin">インストール済パッケージを特定バージョンのまま保持する方法
735
736 <p>
737 パッケージに何らかの修正を行なった後、そのプログラムの新バージョンに
738 反映させる時間がなかったり、反映させるのを望まないことがあるかもしれません。
739 あるいは例えば、Debian ディストリビューションを 3.0 にアップグレードしたも
740 のの、特定パッケージのバージョンだけは Debian 2.2 のものを使用したいことが
741 あるかもしれません。インストールしたパッケージがアップグレードされないよう、
742 "ピン" で止めることができます。
743
744 <p>
745 この目的で使うリソースは単純です。<tt>/etc/apt/preferences</tt> ファイルを
746 編集するだけです。
747
748 <p>
749 フォーマットは簡単です:
750
751 <example>
752 Package: &lt;package&gt;
753 Pin: &lt;pin definition&gt;
754 Pin-Priority: &lt;pin's priority&gt;
755 </example>
756
757 <p>
758 例えば <package>sylpheed</package> パッケージのバージョン 0.4.99 に
759 "reply-to-list" を使うように修正して、それを保持するためには、次のように
760 します。
761
762 <example>
763 Package: sylpheed
764 Pin: version 0.4.99*
765 </example>
766
767 <tt>*</tt> (アスタリスク) を使っていることに注意してください。これは
768 "ワイルドカード" であり、0.4.99 で始まる全バージョンを "ピン" で固定
769 したいということです。なぜこのようなことをするかというと、Debian は
770 パッケージのバージョンに "Debian リビジョン" を付加するからであり、
771 これらのリビジョンがインストールされるのを避けたいからです。さもないと、
772 バージョン 0.4.99-1 や 0.4.99-10 が利用可能になるとすぐに
773 インストールされてしまいます。修正を加えたパッケージを使い続けたいのなら、
774 このような動作を望まないでしょう。
775
776 <p>
777 <tt>Pin-Priority</tt> フィールドはオプションです。特に指定がなければ、
778 デフォルト値は 989 となります。
779
780 <p>
781 Pin-Priority がどのように働くかを見てみましょう。値が 0 未満の場合、
782 そのパッケージは絶対にインストールされません。値が 0 以上 100 未満だと、
783 パッケージはインストールされておらず利用可能なバージョンもありません。これらのパッケージ
784 はバージョン選択プロセスにも現れません。100 の値は、インストール済の
785 パッケージに当てはめられます - 他のバージョンによって置き換え可能であり、
786 置き換える側の値は 101 以上でなければなりません。
787
788 <p>
789 101 以上の値は、そのパッケージがインストールされるべきであることを
790 示しています。よくあるのは、あるパッケージのインストール済バージョンが
791 より進んだバージョンにのみアップグレードされる場合です。100 以上
792 1000 以下のあらゆる値は、この典型的な動作をすることを示しています。
793 このような値を持つパッケージは、利用可能であっても古いバージョンには
794 ダウングレードされません。例えば sylpheed 0.5.3 をインストーしてから、
795 sylpheed 0.4.99 の priority 値を 999 に設定しても、0.4.99 は
796 その設定によってインストールされ<em>ません</em>。あるパッケージを
797 ダウングレード可能にするには、値を 1001 以上に設定しなければなりません。
798
799 <p>
800 このダウングレードという概念により、強力な応用が可能となります。
801 たとえば Debian の <tt>stable</tt> 版を <tt>testing</tt> 版にアップグレード
802 したものの、それを取りやめたくなったと想像してください - たぶん、
803 <tt>testing</tt> はあなたに合うほどにはテストされていなかったのでしょう。
804 そこでパッケージ名にワイルドカードを用いてピン設定をすることにより、
805 stable に戻ることができます。例えば:
806
807 <example>
808 Package: *
809 Pin: release a=stable
810 Pin-Priority: 1001
811 </example>
812
813 <p>
814 上記のように設定したあとで、<tt>apt-get -u dist-upgrade</tt> とすれば、
815 stable 版にシステムをダウングレードすることができます。
816
817 <p>
818 このピンの設定は、パッケージの <tt>version</tt>, <tt>release</tt>,
819 <tt>origin</tt> に対して行なうことができます。
820
821 <p>
822 <tt>version</tt> に対するピン設定は、上記の例のように、ワイルドカードを
823 使って複数バージョンを一度に指定することも、特定のバージョンだけを
824 指定することもできます。
825
826 <p>
827 <tt>release</tt> オプションは、CD 内にある APT レポジトリのリリース
828 ファイルに依存します。このファイルを提供していないパッケージレポジトリを
829 使っているなら、このオプションは全く役に立ちません。<tt>/var/lib/apt/lists/</tt>
830 内にあるレポジトリファイルの中身を見ることができます。リリースの
831 パラメータとしては:
832 <tt>a</tt> (archive), <tt>c</tt> (components), <tt>v</tt> (version),
833 <tt>o</tt> (origin) そして <tt>l</tt> (label) があります。
834
835 <p>
836 以下は例です:
837
838 <example>
839 Package: *
840 Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
841 Pin-Priority: 1001
842 </example>
843
844 この例では、Debian バージョン 2.2* (2.2r2 や 2.2r3 が対象となります --
845 これは "ポイントリリース" のことで、セキュリティフィックスや他の極めて重要な
846 アップデートを含む際によく使われます) で、<tt>stable</tt> レポジトリ、
847 (<tt>contrib</tt> や <tt>non-free</tt> に対して) <tt>main</tt> セクション、
848 origin と label は Debian をそれぞれ選択しています。origin (o=) はリリース
849 ファイルの製作者を、label (l=) はディストリビューション名を表わします。
850 例えば Debian は Debian 自体であり、Progeny は Progeny Debian を意味します。
851 リリースファイルの例を以下に示します:
852
853 <example>
854 $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
855 Archive: stable
856 Version: 2.2r3
857 Component: main
858 Origin: Debian
859 Label: Debian
860 Architecture: i386
861 </example>
862 </sect>
863 </chapt>
864
865 <chapt id="helpers">とても便利な補助プログラム
866
867 <sect id="equivs">ローカルでコンパイルされたパッケージのインストール方法: equivs
868
869 <p>
870 Debian パッケージ化されていない、ソースコードのみ利用可能な特定バージョンの
871 プログラムのを使いたい場合があるでしょう。しかし、これをやるとパッケージング
872 システムがトラブルを起こすことがあります。電子メールサーバの新バージョンを
873 コンパイルしたいと想像してみてください。全てうまくいきましたが、Debian の
874 多くのパッケージは MTA に依存しています。自分でコンパイルしたものをインス
875 トールしても、パッケージシステムはその事に気づいてくれません。
876
877 <p>
878 ここで <package>equivs</package> が登場する番です。使うには、同名の
879 パッケージをインストールしてください。同パッケージが行なうのは、依存関係を
880 満たせる空のパッケージを生成することで、これによりパッケージングシステムに
881 依存関係が満たされていると信じ込ませます。
882
883 <p>
884 さっそく始める前に、Debian パッケージが存在するプログラムを、異なる
885 オプション付でコンパイルするもっと安全な方法があり、自分がしていることを
886 理解できないのなら、依存関係を置き換えるのに equivs を使うべきではないと
887 いうことは、覚えておいた方がよいでしょう。より詳しい情報は、
888 <ref id="sourcehandling"> のセクションを参照してください。
889
890 <p>
891
892 MTA を例にして話を続けましょう。あなたは新たにコンパイルした postfix を
893 インストールしたばかりで、今度は <package>mutt</package> をインストール
894 しようとしています。突然、<package>mutt</package> が他の MTA をインス
895 トールしたがっているのを発見しました。ですが、あなたには自分用の MTA が
896 すでにあります。
897
898 <p>
899 (たとえば <file>/tmp</file> などの) ディレクトリへ移って、次のように
900 実行してください:
901
902 <example>
903 # equivs-control <var>name</var>
904 </example>
905
906 <var>name</var> の箇所は、生成したいコントロールファイル名で置き換えて
907 ください。以下のようにファイルが生成されるでしょう:
908
909 <example>
910 Section: misc
911 Priority: optional
912 Standards-Version: 3.0.1
913
914 Package: &lt;enter package name; defaults to equivs-dummy&gt;
915 Version: &lt;enter version here; defaults to 1.0&gt;
916 Maintainer: &lt;your name and email address; defaults to username&gt;
917 Pre-Depends: &lt;packages&gt;
918 Depends: &lt;packages&gt;
919 Recommends: &lt;packages&gt;
920 Suggests: &lt;package&gt;
921 Provides: &lt;(virtual)package&gt;
922 Architecture: all
923 Copyright: &lt;copyright file; defaults to GPL2&gt;
924 Changelog: &lt;changelog file; defaults to a generic changelog&gt;
925 Readme: &lt;README.Debian file; defaults to a generic one&gt;
926 Extra-Files: &lt;additional files for the doc directory, comma separated&gt;
927 Description: &lt;short description; defaults to some wise words&gt;
928 long description and info
929 .
930 second paragraph
931 </example>
932
933 これを望む通りに修正する必要があるだけです。フィールドのフォーマットと、
934 その説明を眺めてください。各々について、ここで説明する必要はないでしょう。
935 さあ、必要なことをやってしまいましょう。
936
937 <example>
938 Section: misc
939 Priority: optional
940 Standards-Version: 3.0.1
941
942 Package: mta-local
943 Provides: mail-transport-agent
944 </example>
945
946 そう、これで終わりです。<package>mutt</package> は
947 <tt>mailt-transport-agent</tt> に依存しており、これはあらゆる MTA によって
948 提供される仮想パッケージです。単純にパッケージ名を
949 <tt>mailt-transport-agent</tt> とすることもできますが、著者は Provides を使って
950 仮想パッケージの概要を示す方が好みです。
951
952 <p>
953 あとはパッケージを構築するだけです:
954
955 <example>
956 # equivs-build <var>name</var>
957 dh_testdir
958 touch build-stamp
959 dh_testdir
960 dh_testroot
961 dh_clean -k
962 # Add here commands to install the package into debian/tmp.
963 touch install-stamp
964 dh_testdir
965 dh_testroot
966 dh_installdocs
967 dh_installchangelogs
968 dh_compress
969 dh_fixperms
970 dh_installdeb
971 dh_gencontrol
972 dh_md5sums
973 dh_builddeb
974 dpkg-deb: building package `<var>name</var>' in `../<var>name</var>_1.0_all.deb'.
975
976 The package has been created.
977 Attention, the package has been created in the current directory,
978 </example>
979
980 そして、出来あがった <tt>.deb</tt> をインストールしてください。
981
982 <p>
983 お判りのように、<prgn>equivs</prgn> には様々な使用法があります。たとえば、
984 あなたがいつもインストールするプログラムに依存する <tt>my-favorites</tt> パッケージを
985 生成することさえ可能です。自由に想像力の翼を拡げてかまいませんが、用心は
986 してください。
987
988 <p>
989 <file>/usr/share/doc/equivs/examples</file> 内にコントロールファイルの見本が
990 ありますので忘れないように。それらをチェックしてください。
991 </sect>
992
993 <sect id="localepurge">使用されていない locale ファイルを削除: localepurge
994
995 <p>
996 多くの Debian ユーザは、たった 1 種類の locale しか使っていません。たとえば
997 ブラジルの Debian ユーザなら、普段は常に <tt>pt_BR</tt> という locale を
998 使うでしょう。
999
1000 <p>
1001 <package>localepurge</package> は、これらのユーザにとって非常に役に立つ
1002 ツールです。本当に使う locale のみを残すことにより、大量のディスク容量を
1003 節約できます。さあ、<tt>apt-get install localepurge</tt> してください。
1004
1005 <p>
1006 設定はとても簡単で、debconf の質問に沿って順序通りに設定していきます。ですが
1007 最初の質問には慎重に答えてください。間違って答えてしまうと、あなたが使いたい
1008 ものも含めて全ての locale ファイルが削除されるかもしれません。ファイルを復活
1009 させる手段は、それらを提供するパッケージを再インストールするしかありません。
1010 </sect>
1011 </chapt>
1012
1013 <chapt id="search">パッケージ情報の入手
1014
1015 <p>
1016 APT システムには、パッケージが属しているセクションや重要度、その
1017 内容説明などを見るためのフロンとエンドプログラムと同様に、インストール
1018 可能かあるいはインストール済のパッケージ一覧をきわめて容易に入手する
1019 ためのフロントエンドプログラムがいくつかあります。
1020
1021 <p>
1022 ですが... ここでの我々の目的は APT 本体の使い方を学ぶことです。よって、
1023 インストールしたいパッケージ名を見つけるにはどうすれば良いのでしょうか?
1024
1025 <p>
1026 この目的のためには、いくつかのリソースがあります。<tt>apt-cache</tt> から
1027 始めましょう。このプログラムは、APT システムが自分のデータベースを
1028 整備するために使われます。ここでは、より実用的な応用について概観する
1029 ことにしましょう。
1030
1031 <sect id="cache">パッケージ名の発見
1032
1033 <p>
1034 例えば、旧き良き Atari 2600 の日々について回想に耽りたいとしましょう。
1035 APT を使って Atari エミュレータをインストールし、いくつかのゲームを
1036 ダウンロードできます。次のようにしてください:
1037
1038 <example>
1039 [root]@[/] # apt-cache search atari
1040 atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
1041 circuslinux - The clowns are trying to pop balloons to score points!
1042 madbomber - A Kaboom! clone
1043 tcs - Character set translator.
1044 atari800 - Atari emulator for svgalib/X/curses
1045 stella - Atari 2600 Emulator for X windows
1046 xmess-x - X binaries for Multi-Emulator Super System
1047 </example>
1048
1049 探しているものに関連するいくつかのパッケージと、その簡単な説明が表示
1050 されています。特定のパッケージに関するさらに詳しい情報を得るには、
1051 次のようにしてください:
1052
1053 <example>
1054 [root]@[/] # apt-cache show stella
1055 Package: stella
1056 Priority: extra
1057 Section: non-free/otherosfs
1058 Installed-Size: 830
1059 Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
1060 Architecture: i386
1061 Version: 1.1-2
1062 Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
1063 Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
1064 Size: 483430
1065 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
1066 Description: Atari 2600 Emulator for X windows
1067 Stella is a portable emulator of the old Atari 2600 video-game console
1068 written in C++. You can play most Atari 2600 games with it. The latest
1069 news, code and binaries for Stella can be found at:
1070 http://www4.ncsu.edu/~bwmott/2600
1071 </example>
1072
1073 上記の出力から、インストールしたい (あるいはしたくない) パッケージの
1074 詳細が得ることができ、そのパッケージの完全な説明文もあります。
1075 そのパッケージがインストール済で、しかも新バージョンが利用可能なら、
1076 両バージョンの情報が表示されます。例えば:
1077
1078 <example>
1079 [root]@[/] # apt-cache show lilo
1080 Package: lilo
1081 Priority: important
1082 Section: base
1083 Installed-Size: 271
1084 Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
1085 Architecture: i386
1086 Version: 1:21.7-3
1087 Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
1088 Suggests: lilo-doc
1089 Conflicts: manpages (<<1.29-3)
1090 Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
1091 Size: 143052
1092 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
1093 Description: LInux LOader - The Classic OS loader can load Linux and others
1094 This Package contains lilo (the installer) and boot-record-images to
1095 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1096 .
1097 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1098 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1099
1100 Package: lilo
1101 Status: install ok installed
1102 Priority: important
1103 Section: base
1104 Installed-Size: 190
1105 Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
1106 Version: 1:21.4.3-2
1107 Depends: libc6 (>= 2.1.2)
1108 Recommends: mbr
1109 Suggests: lilo-doc
1110 Description: LInux LOader - The Classic OS loader can load Linux and others
1111 This Package contains lilo (the installer) and boot-record-images to
1112 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1113 .
1114 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1115 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1116 </example>
1117
1118 最初のものが利用可能なパッケージのもので、二番目がインストール済の
1119 ものであることに注意してください。パッケージに関する一般的な情報を得るには、
1120 次のようにしてください:
1121
1122 <example>
1123 [root]@[/] # apt-cache showpkg penguin-command
1124 Package: penguin-command
1125 Versions:
1126 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
1127
1128 Reverse Depends:
1129 Dependencies:
1130 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
1131 Provides:
1132 1.4.5-1 -
1133 Reverse Provides:
1134 </example>
1135
1136 さらにどのパッケージに依存しているのかを見るには:
1137
1138 <example>
1139 [root]@[/] # apt-cache depends penguin-command
1140 penguin-command
1141 Depends: libc6
1142 Depends: libpng2
1143 Depends: libsdl-mixer1.1
1144 Depends: libsdl1.1
1145 Depends: zlib1g
1146 </example>
1147
1148 まとめると、我々は欲しいパッケージ名を探すのに使える多様な武器を持って
1149 いることになります。
1150 </sect>
1151
1152 <sect id="dpkg-search">dpkg を使ってパッケージ名を探す
1153
1154 <p>
1155 パッケージ名を特定する方法の一つに、パッケージ中の重要なファイル名を
1156 知っている場合があります。例えば、特定の <tt>".h"</tt> ファイルがないと
1157 コンパイルできない場合、次のようにしてください。
1158
1159 <example>
1160 [root]@[/] # dpkg -S stdio.h
1161 libc6-dev: /usr/include/stdio.h
1162 libc6-dev: /usr/include/bits/stdio.h
1163 perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
1164 </example>
1165
1166 あるいは:
1167
1168 <example>
1169 [root]@[/] # dpkg -S /usr/include/stdio.h
1170 libc6-dev: /usr/include/stdio.h
1171 </example>
1172
1173 システムにインストール済のパッケージ名を探す時も、便利です。例えば、
1174 ハードディスクを掃除したいなら次のようにしてください。
1175
1176 <example>
1177 [root]@[/] # dpkg -l | grep mozilla
1178 ii mozilla-browse 0.9.6-7 Mozilla Web Browser
1179 </example>
1180
1181 このコマンドの問題点は、パッケージ名が "途切れて" しまうことです。
1182 上記の例だと、パッケージの本当の名前は <tt>mozilla-browser</tt> です。
1183 これに対処するには、次のように環境変数 <tt>COLUMNS</tt> を使うことができます:
1184
1185 <example>
1186 [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
1187 ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
1188 </example>
1189
1190 あるいは次のように、description かその一部を使うこともできます:
1191
1192 <example>
1193 [root]@[/] # apt-cache search "Mozilla Web Browser"
1194 mozilla-browser - Mozilla Web Browser
1195 </example>
1196 </sect>
1197
1198 <sect id="auto-apt">"必要に応じて" パッケージをインストールする方法
1199
1200 <p>
1201 プログラムをコンパイルしていて、まったくの突然、ドカーン! エラーの
1202 原因は、ある <tt>.h</tt> ファイルが無かったからでした。このような
1203 展開は、<prgn>auto-apt</prgn> プログラムを使うことで避けられます。
1204 あるパッケージが必要になった時点でインストールするかどうかを尋ね、
1205 関連するプロセスを停止して、インストールが完了したら再開します。
1206
1207 <p>
1208 基本的には、次のように実行してください:
1209
1210 <example>
1211 auto-apt run command
1212 </example>
1213
1214 'command' の個所には、実行するのに必要なファイルが無いコマンドを
1215 指定してください。例えば:
1216
1217 <example>
1218 auto-apt run ./configure
1219 </example>
1220
1221 必要なパッケージをインストールするかどうかを尋ねてきて、自動的に
1222 apt-get を呼び出します。X の実行中であれば、デフォルトのテキスト
1223 インターフェイスに代わってグラフィカルインターフェイスが使われ
1224 ます。
1225
1226 <p>
1227 auto-apt はデータベースを持っており、効果的に使うためにはそれを更新する
1228 必要があります。そのためには、<tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt>,
1229 <tt>auto-apt update-local</tt> などのコマンドを使います。
1230 </sect>
1231
1232 <sect id="apt-listchanges">パッケージの変更点を常に知らせる方法
1233
1234 <p>
1235 どのパッケージも、個別のドキュメント用ディレクトリ
1236 (<tt>/usr/share/doc/packagename</tt>) に、<tt>changelog.Debian.gz</tt> という
1237 ファイルをインストールします。このファイルは、前回のバージョンからの変更点一覧を
1238 含んでいます。こういったファイルは、'<tt>zless</tt>' などの助けを借りて読むこと
1239 ができますが、全システムをアップグレードした後などは、アップグレードされた
1240 各パッケージの changelog を探すのに骨が折れます。
1241
1242 <p>
1243 <prgn>apt-listchanges</prgn> というツールを使って、この作業を自動化できます。
1244 まずは <package>apt-listchanges</package> パッケージをインストールする必要が
1245 あります。インストール中に、Debconf が設定を行ないます。質問に対して、
1246 あなたの希望するように答えてください。
1247
1248 <p>
1249 "Should apt-listchanges be automatically run by apt?" というオプションは、
1250 アップグレード途中で apt によってインストールされようとしている各パッケージの
1251 変更点一覧を表示し、作業を続ける前にその内容を確認できるので、役に立ちます。
1252 "Should apt-listchanges prompt for confirmation after displaying changes?" と
1253 いうオプションは、変更点一覧を読んだ後で、インストールを続けるかどうかを問い
1254 問い合わせてくれるので役に立ちます。継続を望まないと答えれば、apt-listchanges は
1255 エラーを返し、apt はインストールを取り止めます。
1256
1257 <p>
1258 apt-listchanges がインストールされればすぐに、その後ダウンロードされた (あるい
1259 は CD やマウントされたディスクから入手した) パッケージはインストールされる前に
1260 変更点一覧を表示するようになります。
1261 </sect>
1262 </chapt>
1263
1264 <chapt id="sourcehandling">ソースパッケージでの作業
1265
1266 <sect id="source">ソースパッケージのダウンロード
1267
1268 <p>
1269 フリーソフトウェアの世界では、ソースコードで勉強したり、バグの多い
1270 ソースを修正するのはよくあることです。このためには、プログラムのソース
1271 をダウンロードしなければならないでしょう。APT システムはディストリビューション
1272 中の多くのプログラムのソースコードと、そのプログラムを .deb 化するために
1273 必要な全ファイルを入手するための、簡単な方法を提供します。
1274
1275 <p>
1276 Debian ソースのよくある使い方としては、プログラムの新しいバージョンを
1277 適合させる場合などです。例えば、stable ディストリビューションに
1278 unstable 中のプログラムを使う場合など。あるパッケージを stable 用に
1279 コンパイルするには、そのディストリビューションで利用可能なように
1280 依存関係を調整して .deb 化します。
1281
1282 <p>
1283 このためには、<tt>/etc/apt/sources.list</tt> 中の <tt>deb-src</tt> の
1284 エントリが unstable 向けとなっていなければなりません。さらにエントリが
1285 有効 (アンコメント) になっている必要があります。<ref id="sources.list"> を
1286 参照してください。
1287
1288 <p>
1289 ソースパッケージをダウンロードするには、以下のコマンドを使ってください:
1290
1291 <example>
1292 $ apt-get source packagename
1293 </example>
1294
1295 これにより 3 つのファイルがダウンロードされます: <tt>.orig.tar.gz</tt>,
1296 <tt>.dsc</tt>, <tt>.diff.gz</tt> です。Debian 専用に作られたパッケージの
1297 場合、3 番目のファイルはダウンロードされず、最初のものもファイル名中に
1298 <tt>"org"</tt> と付きません。
1299
1300
1301 <p>
1302 <tt>.dsc</tt> ファイルは、dpkg-source がソースパッケージを
1303 <var>packagename-version</var> のディレクトリに展開するために
1304 使われます。ダウンロードされた各ソースパッケージには、.deb パッケージを
1305 作るために必要なファイルが含まれている <tt>debian/</tt> ディレクトリが
1306 あります。
1307
1308 <p>
1309 ダウンロードしたパッケージを自動的にビルドするには、次の例のよう
1310 に <tt>-b</tt> をコマンドラインに付加します:
1311
1312 <example>
1313 $ apt-get -b source packagename
1314 </example>
1315
1316 ダウンロード時に .deb を作らないのなら、次のようにすることで後から
1317 作ることもできます。
1318
1319 <example>
1320 $ dpkg-buildpackage -rfakeroot -uc -b
1321 </example>
1322
1323 上記のコマンドは、ダウンロードされたパッケージがあるディレクトリ内で
1324 実行してください。
1325
1326 <p>
1327 <prgn>apt-get</prgn> の <tt>source</tt> 指定と他の指定とでは違いがあります。
1328 <tt>source</tt> 指示は、一般ユーザにも実行可能で、特別な root 権限は
1329 必要ありません。ファイルは、<tt>apt-get source package</tt> が実行された
1330 ディレクトリにダウンロードされます。
1331 </sect>
1332
1333 <sect id="build-dep">ソースパッケージのコンパイルに必要なパッケージ
1334
1335 <p>
1336 通常、ソースパッケージをコンパイルするには、特定のヘッダや共有
1337 ライブラリが存在することが必要です。全 .deb パッケージには、その
1338 コントロールファイル中に 'Build-Depends' というフィールドがあります。
1339 これは、そのパッケージをソースからビルドする際に、必要となる追加
1340 パッケージが指定しています。
1341
1342 <p>
1343 APT はこれらのパッケージダウンロードするのも容易にします。
1344 <tt>apt-get build-dep package</tt> を実行するだけです。'package' の箇所
1345 は、ビルドしたいパッケージの名前です。例えば:
1346
1347 <example>
1348 [root]@[/] # apt-get build-dep gmc
1349 Reading Package Lists... Done
1350 Building Dependency Tree... Done
1351 The following NEW packages will be installed:
1352 comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
1353 libgpmg1-dev
1354 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
1355 Need to get 1069kB of archives. After unpacking 3514kB will be used.
1356 Do you want to continue? [Y/n]
1357 </example>
1358
1359 インストールされるのは、<package>gmc</package> を正確にビルドするために
1360 必要なパッケージです。このコマンドは、ビルドされるプログラムのソース
1361 パッケージを探さないことに注意してください。したがって、それを入手する
1362 のに別途 <tt>apt-get source</tt> を実行する必要があります。
1363 </sect>
1364 </chapt>
1365
1366 <chapt id="erros">エラーへの対処方法
1367
1368 <sect id="erros-comuns">よくあるエラー
1369
1370 <p>
1371 エラーは常に起き、多くはユーザの不注意が原因です。以下は、とても頻繁に
1372 報告されるエラーと、その対処方法です。
1373
1374 <p>
1375 <tt>apt-get install package</tt> を実行した際に、以下のような
1376 メッセージを受け取ったら...
1377
1378 <example>
1379 Reading Package Lists... Done
1380 Building Dependency Tree... Done
1381 W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
1382 W: You may want to run apt-get update to correct these missing files
1383 E: Couldn't find package penguineyes
1384 </example>
1385
1386 最後に <tt>/etc/apt/sources.list</tt> ファイルを修正した後で、
1387 <tt>apt-get update</tt> を実行するのを忘れているのでしょう。
1388
1389 <p>
1390 以下のエラーの場合は:
1391
1392 <example>
1393 E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
1394 E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
1395 </example>
1396
1397 <tt>source</tt> 以外の <prgn>apt-get</prgn> 指示を行なう場合は、
1398 root 許可がなければなりません。つまり、一般ユーザとして実行して
1399 しまったのです。
1400
1401 <p>
1402 上記に似たエラーが出るのは、<prgn>apt-get</prgn> を同時に 2 つ実行
1403 しようとした場合や、<prgn>dpkg</prgn> のプロセスが生きている間に、
1404 <prgn>apt-get</prgn> を実行しようとした場合があります。
1405 同時に並行して実行できるのは、<tt>source</tt> 指示だけです。
1406
1407 <p>
1408 インストール時、処理途中で止まってしまい、そのパッケージをインストール
1409 することも削除もできなくなった場合、次の 2 つのコマンドを実行してみて
1410 ください。
1411
1412 <example>
1413 # apt-get -f install
1414 # dpkg --configure -a
1415 </example>
1416
1417 その後で、もう一度試してください。上記の例中の 2 番目のコマンドは、
1418 繰返し実行する必要があるかもしれません。これは 'unstable' を使う
1419 冒険家にとって、重要な教えです。
1420 </sect>
1421
1422 <sect id="help">ヘルプはどこにありますか?
1423
1424 <p>
1425 疑いを抱いたなら、Debian パッケージングシステム用に利用可能な
1426 膨大なドキュメントを調べてみてください。<tt>/usr/share/doc/apt</tt> の
1427 ような <tt>/usr/share/doc</tt> 内にあるドキュメントと同様、
1428 <tt>--help</tt> オプションや man ページも大きな助けとなるでしょう。
1429
1430 <p>
1431 以上のドキュメントでも恐怖を拭い去ることができなければ、Debian の
1432 メーリングリスト中で回答を探してみてください。特定のリストに関する
1433 情報は Debian のウェブサイトで見つかります:
1434 <url id="http://www.debian.org" name="http://www.debian.org">.
1435
1436 <p>
1437 これらのリストやリソースは、Debian ユーザだけが使用すべきであることに
1438 注意してください。他のシステムのユーザには、各ディストリビューションの
1439 コミュニティリソースが有するより良いサポートがあるでしょう。
1440 </sect>
1441 </chapt>
1442
1443 <chapt id="distros">APT に対応しているディストリビューションは?
1444
1445 <p>
1446 以下に、APT を使用しているいくつかのディストリビューション名を示します。
1447
1448 <p>
1449 Debian GNU/Linux (<url id="http://www.debian.org" name="http://www.debian.org">)
1450 - APT が開発されたのは、このディストリビューションのためにです。
1451
1452 <p>
1453 Conectiva (<url id="http://www.conectiva.com.br" name="http://www.conectiva.com.br">)
1454 - APT で rpm を使えるように移植した、最初のディストリビューションです。
1455
1456 <p>
1457 Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
1458 <p>
1459 PLD (<url id="http://www.pld.org.pl" name="http://pld.org.pl">)
1460 <p>
1461 Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
1462 <p>
1463 APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
1464 </chapt>
1465
1466 <chapt id="agradecimentos">クレジット
1467
1468 <p>
1469 Debian-BR プロジェクトと、Debian 本体の偉大なる友人たちに深く感謝します。
1470 絶え間のない手助けと、世界を救うという私の目的を手伝ってくれるばかりで
1471 なく、人類の利益のために作業を続ける力を私に与えてくれました :)。
1472
1473 <p>
1474 CIPSGA に対して我々のプロジェクトへの多大なる助力に、また偉大なアイデア
1475 の弾みとなったあらゆるフリープロジェクトにも、感謝したいと思います。
1476
1477 <p>
1478 以下の方には特に謝意を表します。
1479
1480 <p>
1481 Yooseong Yang &lt;yooseong@debian.org&gt; - 本マニュアルを韓国語に翻訳して
1482 くれました。
1483
1484 <p>
1485 Michael Bramer &lt;grisu@debian.org&gt; - 特定バージョンの保持の節を含める
1486 ように提案してくれました。
1487
1488 <p>
1489 Bryan &lt;Stillwell bryan@bokeoa.com&gt; - 各種パッチや修正などを私に
1490 送ってくれました。
1491
1492 <p>
1493 Pawel Tecza &lt;pawel.tecza@poland.com&gt; - 各種修正を送ってくれ、また
1494 ポーランド語に翻訳してくれました。
1495
1496 <p>
1497 Pablo Lorenzzoni &lt;spectra@debian.org&gt; - netselect に関する節を
1498 執筆してくれました。
1499
1500 <p>
1501 Steve Langasek &lt;vorlon@netexpress.net&gt; - 本マニュアルを英語に
1502 翻訳してくれました。
1503
1504 <p>
1505 Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt; - 現在 APT を
1506 含んでいるディストリビューション - Mandrake, PLD, Vine - をリストに
1507 追加してくれました。
1508
1509 <p>
1510 Erik Rossen &lt;rossen@freesurf.ch&gt; - dpkg -l での COLUMNS の使用という
1511 tips を提供してくれました。
1512
1513 <p>
1514 Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt; -
1515 -o Debug::pkgProblemResolver=yes の使用という tips を提供してくれました。
1516 </chapt>
1517
1518 <chapt id="novas">このチュートリアルの新バージョン
1519
1520 <p>
1521 本マニュアルは、Debian を使うあらゆる人の助けとなることを願って、
1522 <url id="http://debian-br.cipsga.org.br"name="Debian-BR"> プロジェクトに
1523 よって作成されました。
1524
1525 <p>
1526 最新バージョンは、プロジェクトのホームページから入手可能です:
1527 <url id="http://debian-br.cipsga.org.br/suporte/documentacao.html"
1528 name="http://debian-br.cipsga.org.br/suporte/documentacao.html">.
1529
1530 <p>
1531 コメントや批判は、私 <email>kov@debian.org</email> 宛に直接メール
1532 してください。
1533 </chapt>
1534
1535 </book>

  ViewVC Help
Powered by ViewVC 1.1.5