source: projects/vine-cui-guide/trunk/help/using-rpm.xml @ 7694

Revision 7694, 68.1 KB checked in by yasumichi, 11 years ago (diff)

root 権限での実行を sudo に置き換え

Line 
1<!--DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"-->
2
3<chapter id="using-rpm">
4                <title>プログラムの追加・削除・更新(パッケージ管理)</title>
5        <!--bookinfo>
6                <authorgroup>
7                <author>
8                        <firstname>Masaki</firstname>
9                        <surname>Kawamura</surname>
10                </author>
11                <author>
12                        <firstname>Daisuke</firstname>
13                        <surname>SUZUKI</surname>
14                </author>
15                <author>
16                        <firstname>Takuya</firstname>
17                        <surname>Kobayashi</surname>
18                </author>
19                </authorgroup>
20        <abstract><para>
21                この文書は、RPM/APTによるパッケージ管理について書かれています。
22        </para></abstract>
23                <pubdate>2007年10月09日</pubdate>
24        </bookinfo-->
25
26
27<sect1 id="using-rpm-1">
28        <title>パッケージ管理</title>
29        <sect2 id="rules-for-package-management">
30                <title>パッケージ管理ツール</title>
31                <para>
32Vine Linuxでは RPM(RedHat Package Manager)形式のパッケージ管理システムを採用しています。
33これにより、個々のパッケージのインストールや削除などを容易に行うことができます。
34本節では、APTとRPMを用いたrpmパッケージの管理方法を簡単に説明します。
35                </para>
36
37                <para>
38rpmパッケージの操作方法は大きくわけて、
39                        <itemizedlist>
40                                <listitem><para>apt-getコマンドでCUI操作</para></listitem>
41                                <listitem><para>rpmコマンドでCUI操作</para></listitem>
42                                <listitem><para>X Window上でGUI(Synapticなど)を用いる</para></listitem>
43                        </itemizedlist>
44という方法があります。
45                </para>
46
47                <para>
48本章では上記のそれぞれのapt-getコマンドとrpmコマンドを用いたパッケージの操作方法を解説します。
49<command>man apt-get</command> や <command>man rpm</command>、また <command>apt-get --help</command> や <command>rpm --help</command> で、apt-getコマンドや rpmコマンドのいろいろなオプションを知ることができます。
50                </para>
51                <para>
52参照 <ulink url="getinfo.html">困ったときには</ulink>
53                </para>
54        </sect2>
55
56        <sect2 id="using-rpm-1-2">
57                <title>注意事項</title>
58                <para>
59rpmパッケージにはすぐにインストールできるバイナリパッケージと、
60プログラムのソースコードで提供されているソースパッケージがあります。
61ソースパッケージを入手した場合は、後述する方法でバイナリパッケージに変換する必要があります。
62                </para>
63
64                <para>
65パッケージをインストール、アップデート、アンインストールするときは、ルート(root)ユーザで行います。
66しかし、ソースパッケージからバイナリパッケージに変換する場合には、一般ユーザで行います。
67これはバイナリパッケージを構築する際にファイル操作を必要とするため、誤操作などによって、既存のシステムを壊さないようにするためです。
68                </para>
69
70                <para>
71システム管理者rootの権限が必要な操作はプロンプトを #で表しています。
72また、一般ユーザで行える操作はプロンプトを $で表しています。
73プロンプトが $になっているところを rootユーザで実行することはお勧めできません。
74                </para>
75        </sect2>
76
77        <sect2 id="using-rpm-1-3">
78                <title>rpmパッケージ</title>
79                <para>
80Vine LinuxのWWWページからアップデートされたソフトウェアや VinePlusをダウンロードすることができます。
81ネットワークにつながっている環境で、apt-getコマンドを用いれば自動的にダウンロードとパッケージの更新を行うことができます。
82                </para>
83
84                <para>
85これらのソフトウェアはrpmパッケージとなっています。パッケージの名前付けの規則は、
86<screen>(パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm</screen>
87となっています。
88(バージョン)はソフトウェアのバージョンを表し、(リリース番号)はパッケージ作成に関する管理番号です。
89Vine Linux固有のパッチが入っている場合は、2vl3のように vl(Vine Linuxリリース番号)の形式になっています。
90(アーキテクチャ)には src, noarch, i386, ppcなどが入ります。
91ソースパッケージ(ソースコードを含んだパッケージ)には srcが付けられます。
92また機種(CPU)に依存しないパッケージには noarchが付けられます。
93一方、i386などは機種に依存したパッケージです。
94通常、インテル系のPCでコンパイルされたバイナリのパッケージには i386と付いていますが、i586などとなっている場合もあります。
95また、Power PC (Power Macintosh)上でコンパイルされたバイナリには ppcが付きます。
96                </para>
97        </sect2>
98</sect1>
99
100<sect1 id="using-rpm-2">
101        <title>APT - Advanced Package Tool</title>
102        <sect2 id="preparation-for-using-apt">
103                <title>APTを使うための準備</title>
104                <para>
105APTはパッケージの取り寄せ、インストール、アップグレード、検索などを行う便利なアプリケーションです。
106rpmに対してパッケージ間の依存関係や競合関係を解決してくれるためOSのバージョンアップを行うときにも利用できます。
107                </para>
108
109                <para>
110APTはVine Linux 2.1.5から正式採用になっており、それ以降のバージョンでは標準でインストールされています。
111もし、APTをアンインストールした場合は Vine LinuxのインストールCDからrpmコマンドを用いてインストールする必要があります。
112rpmコマンドの使い方は次節を御覧下さい。CDのマウントに関しては <ulink url="server-1.html#server-1-2">ファイルシステム</ulink> の マウント を参照してください。
113                </para>
114
115                <para>
116APTがインストールされていると、ファイル <filename>/etc/apt/sources.list</filename>があるはずです。
117このファイルには apt-line と呼ばれるパッケージを取り寄せる場所が記述されています。
118「#」で始まっている行はコメントになっています。
119標準では、アップデートパッケージのみをvinelinux.orgからダウンロードするようになっています。
120                </para>
121
122                <para>
123APT全体の設定は、ファイル <filename>/etc/apt/apt.conf</filename> に書かれています。
124また、このファイルで変更された設定を含め、他すべての設定は、<command>apt-config dump</command> で参照できます。
125表示が多くなるので <command>apt-config dump | less</command> のようにページャ less を用いると便利です。(参考:<xref linkend="less" />)
126                </para>
127
128                <example id="download-from-network">
129                        <title>ネットワークからダウンロードする場合</title>
130                        <para>
131ネットワークに接続されている場合は、ネットワーク上のサーバからダウンロードして、
132インストール/アップグレードすることができます。
133ただし、ダイアルアップなどの低速なネットワークでOSのバージョンアップを行うと、非常に時間がかかりますので注意して下さい。
134                        </para>
135
136                        <para>
137ファイル <filename>/etc/apt/sources.list</filename>の標準設定では、vinelinux.orgのみからパッケージをダウンロードするようになっています。
138もし、vinelinux.org のサーバからダウンロードできない場合など、別のサイトからダウンロードする場合は、このファイルを修正して下さい。
139                        </para>
140
141                        <para>
142たとえば、Ring Server Projectからもパッケージを取得できる様にしたい場合は、以下の様に行頭の#を削除します。
143                        </para>
144
145                        <screen>
146# (ring mirror)
147rpm     [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.1/$(ARCH) main plus updates nonfree
148rpm-src [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.1/$(ARCH) main plus updates nonfree</screen>
149
150                </example>
151
152                <note><title>apt-line の変更は Synaptic でも行えます。</title>
153                        <para>
154                                <ulink url="synaptic.html">Synapticによるパッケージ管理</ulink><ulink url="./setup-repos.html">リポジトリの設定</ulink>を参照してください。
155                        </para>
156                </note>
157               
158                <example id="apt-cdrom">
159                        <title>CD-ROMから利用する場合</title>
160                        <para>
161標準ではネットワークにアクセスします。APT対応のCD-ROM等を入手している場合は、
162<command>apt-cdrom</command> コマンドを使用します。
163                        </para>
164
165                        <note>
166                        <title>デバイス(CD-ROMドライブ等)とマウントポイントについて</title>
167                        <para>
168apt-cdrom は、Vine Linux 4.0 から、利用するデバイス(CD-ROMドライブ等)の情報を <filename>/etc/fstab</filename> ではなく <filename>/etc/apt/apt.conf</filename> から取得するようになりました。標準(apt.confに特に記述していない状態)で /dev/cdrom を利用するようになっているので、特に設定する必要はありません。
169                        </para>
170                        <para>
171マウントポイントは標準で /mnt/cdrom に設定されています。これは Vine Linux 4.0 以前と同じです。
172ただし、インストール直後には /mnt/cdrom は作成されていませんので、root権限で次のようにしてディレクトリを作成してください。
173                        </para>
174<screen>$ sudo <command>mkdir -p /mnt/cdrom</command></screen>
175
176                        <para>
177それぞれ、変更したい場合には <command>apt-cdrom --help</command> と <command>man apt.conf</command> を参照してください。
178apt-cdrom は man の情報よりも --help の方が新しくなっていますので、異なる説明となっている部分については --help の記述を利用してください。
179                        </para>
180                        <para>
181マウントポイントを一時的に変更したい場合は <command>apt-cdrom</command> コマンドの <option>-d</option> オプションを用いて <command>apt-cdrom <emphasis>-d /mnt/cdrom2</emphasis> add</command> のようにできます。
182                        </para>
183
184                        <example id="change-cdrom-device-and-mount_point">
185                        <title>デバイスやマウントポイントの設定を変更する場合</title>
186                        <para>
187CDデバイスを <emphasis>/dev/cdrom-hdd</emphasis> に、mount point を <emphasis>/media/cdrom2</emphasis> にするには <filename>/etc/apt/apt.conf</filename> の Acquire {} の部分に下のようにそれぞれ書き加えます。
188                        </para>
189                        <screen>
190Acquire{
191        CDROM::Copy "true";
192        Retrys "0";
193        <emphasis>CDROM::Mount "/media/cdrom2";</emphasis>
194        <emphasis>CDROM::Device "/dev/cdrom-hdd";</emphasis>
195}</screen>
196                        </example>
197                        </note>
198
199                        <screen>
200$ sudo <command>apt-cdrom add</command>
201CDROM のマウントポイントとして以下を使用します: /mnt/cdrom/
202CDROM デバイスとして以下を使用します: /dev/cdrom
203CDROM をアンマウントしています
204CDROM をドライブに挿入してエンターキーを押して下さい</screen>
205                        <para>
206CDROM を挿入し、エンターキーを押します。
207                        </para>
208                        <screen>
209CDROM をマウントしています
210CDROM の検出中.. [<emphasis>1a64e79571777b6abf752a0d4f283067-2</emphasis>]
211CDROM のインデックスファイルのスキャン中..検出 1 パッケージインデックス 0 ソース
212インデックス
213この DISK に名前をつけてください。例) 'Distribution Disk 1':</screen>
214
215                        <para>
216Vine Linux 4.1
217と入力してエンターキーを押します。
218                        </para>
219                        <screen>
220この DISK は:
221 '<emphasis>Vine Linux 4.1</emphasis>'
222Reading Indexes... 完了
223Writing new source list
224この DISK の sources.list のエントリ:
225<emphasis>rpm cdrom:[Vine Linux 4.1]/ Vine main</emphasis>
226この処理を他の CDROM のためにくり返します。</screen>
227
228                        <para>
229apt データベースにそのCD-ROMに含まれるパッケージの情報が登録されます。
230登録されたあとは CD-ROM は抜いておいて構いません。
231VinePlusのCDやソースCDを登録したい場合は同様の手順をおこないます。
232                        </para>
233                       
234                        <note><title>CD-ROM の登録を取り消すには</title>
235                        <para>
236                                apt-cdrom で CD-ROM を登録した場合、ファイル <filename>/etc/apt/sources.list</filename> に
237                                <screen>rpm cdrom:[<emphasis>ラベル(DISKに付けた名前)</emphasis>]/ Vine main</screen>
238                                という行が追加されます。
239                        </para>
240                        <para>
241                                また、ファイル <filename>/var/state/apt/cdroms.list</filename> に
242                                <screen>CD::<emphasis>CDの識別情報</emphasis> "<emphasis>ラベル</emphasis>";</screen>
243                                と記述されます。
244                        </para>
245                        <para>
246                                上の場合では、<filename>/etc/apt/sources.list</filename> には
247                                <screen>rpm cdrom:[<emphasis>Vine Linux 4.1</emphasis>]/ Vine main</screen>
248                                と、また、<filename>/var/state/apt/cdroms.list</filename> には
249                                <screen>CD::<emphasis>1a64e79571777b6abf752a0d4f283067-2</emphasis> "<emphasis>Vine Linux 4.1</emphasis>";</screen>
250                                と書かれます。
251                        </para>
252                       
253                        <para>一時的に、登録したCD-ROM や CD-ROM ドライブが使えないといったような場合には、ファイル <filename>/etc/apt/sources.list</filename> の
254                        <screen>rpm cdrom:[ラベル(DISKに付けた名前)]/ Vine main</screen>
255                        という行を
256                        <screen><emphasis>#</emphasis> rpm cdrom:[ラベル(DISKに付けた名前)]/ Vine main</screen>
257                        のように、行頭に # を付けることでコメント(無効)にしてください。</para>
258
259                        <para>これによって、CD は利用されなくなります。</para>
260                        <para>もとに戻す(行頭の # を消す)と再び CD を利用できるようになります。</para>
261
262                        <para><command>apt-cdrom add</command> とすれば <filename>/etc/apt/sources.list</filename> に再び記述されるので、この行を消してしまってもかまいません。</para>
263
264                        <para>また、CD-ROM が利用できなくなった場合など、CDの情報を完全に消去するという場合には、ファイル <filename>/var/state/apt/cdroms.list</filename> の
265                        <screen>CD::<emphasis>CDの識別情報</emphasis> "<emphasis>ラベル</emphasis>";</screen>
266                        という行を消すか、ファイル <filename>/var/state/apt/cdroms.list</filename> を削除してください。</para>
267                        <para>CD につけたラベルの情報も消すことができます。</para>
268                       
269                        <para>このファイル(<filename>/var/state/apt/cdroms.list</filename>)も、<command>apt-cdrom add</command> とすれば再び作成されます。</para>
270                        </note>
271               
272                        <warning>
273                        <title>CD-ROMの取扱いに関する注意</title>
274                        <para>
275CD-ROM をドライブに入れたままにして電源を切った場合、次回PCの電源を入れた時にインストーラが起動してしまう場合があります。
276                        </para>
277                        </warning>
278                        <note>
279                        <title>APT対応のメディア</title>
280                        <para>
281apt 対応の CD-R などを作成するには、
282apt のパッケージに含まれている genbasedir コマンドで
283パッケージインデックスを作成するなどの特別な処理が必要になります。
284この文書ではこうしたメディアの作成方法は扱いません。
285                        </para>
286                        </note>
287                        <para>
288apt-get をおこなったときに必要なパッケージが
289CD-ROMにある場合は以下のようにCD-ROMの挿入をうながされますので、
290指示されたCD-ROMを挿入してエンターキーをおすことでapt-get は続行されます。
291                        </para>
292                        <screen>
293$ sudo <command>apt-get install zsh</command>
294[sudo] password for username:
295パッケージリストを読みこんでいます... 完了
296依存情報ツリーを作成しています... 完了   
297以下のパッケージが新たにインストールされます:
298  zsh
299アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
3000B/2398kB のアーカイブを取得する必要があります。
301展開後に 5387kB のディスク容量が追加消費されます。
302メディア変更: 'Vine Linux 4.1' とラベルされた CDROM を
303ドライブ '/mnt/cdrom/' に挿入してエンターキーを押して下さい
304
305取得:1 cdrom://Vine Linux 4.1 Vine/main zsh 1:4.2.5-0vl1 [2398kB]
3062398kB を 34s 秒で取得しました (69.1kB/s)
307変更を適用しています...
308準備中...                   ########################################### [100%]
309   1:zsh                    ########################################### [100%]
310完了</screen>
311                </example>
312        </sect2>
313
314        <sect2 id="using-rpm-2-2">
315                <title>パッケージ情報の更新</title>
316                <para>
317まず、インストールされているパッケージ情報と新しいパッケージの情報のデータベースを更新するために <command>apt-get update</command>を用います。
318apt-getコマンドを用いて、apt-line 上のパッケージ情報を取得し APT 用のデータベースを構築します。
319この段階ではまだパッケージの更新は行われません。
320sources.list の変更をした場合や、前回の apt-get から数時間以上たった場合はパッケージ情報が更新されていますので、必ず更新の操作をして下さい。
321                </para>
322
323                <para>
324アップデートパッケージを updates.vinelinux.org からダウンロードする場合、以下のように表示されます。
325                </para>
326                <screen>
327$ sudo <command>apt-get update</command>
328[sudo] password for username:
329取得:1 http://updates.vinelinux.org 4.1/i386/base/pkglist.updates [14B]
330取得:2 http://updates.vinelinux.org 4.1/i386 release.updates
331無視 http://updates.vinelinux.org 4.1/$(ARCH)/base/mirrors
332取得完了: 14B を 0s (80B/秒)       
333ファイル依存を処理しています... 完了
334パッケージリストを読みこんでいます... 完了
335依存情報ツリーを作成しています... 完了</screen>
336        </sect2>
337
338        <sect2 id="using-rpm-2-3">
339                <title>apt-getコマンドによるパッケージのアップグレード</title>
340                <para>
341既にインストールされているパッケージのアップデートを行なうには
342<command>apt-get upgrade</command>を用います。
343この場合は、パッケージが他のものと入れ替わる場合や、消えると言った場合には保留されますので、完全なアップグレードをすることはできません。
344                </para>
345                <screen>
346$ sudo <command>apt-get upgrade</command>
347[sudo] password for username:
348パッケージリストを読みこんでいます... 完了
349依存情報ツリーを作成しています... 完了   
350以下のパッケージがアップグレードされます:
351  emacs emacsen-common
3522 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレースパッケージ,
3530 個の保留パッケージがあります。
354取得パッケージ: 21.0MB のアーカイブを取得します。インストール後は 564kB が使用されます。
355続行しますか? [Y/n]</screen>
356                <para>
357オプション<option>-s</option>あるいは<option>--no-act</option><command>apt-get</command>の後に指定すると、実際にはアップグレード動作は行ないません。
358通常は、まずこのオプションを指定して、どのパッケージがアップグレードされるか確認してから行うと良いでしょう。
359                </para>
360
361                <para>
362パッケージが入れ替わる場合などの依存関係の解決が必要な場合は、
363<option>dist-upgrade</option>を用います。OS全体のバージョンアップを行う場合はこちらを使用します。
364                </para>
365                <screen>$ sudo <command>apt-get dist-upgrade</command></screen>
366        </sect2>
367
368        <sect2 id="using-rpm-2-4">
369                <title>apt-getコマンドによるパッケージのインストール</title>
370                <para>
371特定のパッケージをインストールしたりアップグレードする場合は、
372<command>apt-get install</command>を用います。
373                </para>
374                <screen>$ sudo <command>apt-get install (パッケージ名)</command></screen>
375                <para>
376パッケージ名には複数のパッケージを空白で区切って指定することができます。
377パッケージに依存関係がある場合は、自動的に解決され必要となるパッケージもインストールやアップグレードされます。
378例えば、パッケージ<application>xemacs</application>の場合は、以下のようになります。
379                </para>
380                <screen>
381$ sudo <command>apt-get install xemacs</command>
382[sudo] password for username:
383パッケージリストを読みこんでいます... 完了
384依存情報ツリーを作成しています... 完了   
385以下の追加パッケージがインストールされます:
386  xemacs-sumo
387以下のパッケージが新たにインストールされます:
388  xemacs xemacs-sumo
3890 個のアップグレードパッケージ, 2 個の新規パッケージ, 0 個の削除/リプレースパッケージ,
39032 個の保留パッケージがあります。
391取得パッケージ: 0B/21.0MB のアーカイブを取得します。インストール後は 61.0MB が使用されます。
392続行しますか? [Y/n]y
393RPM コマンドを実行しています (-U)...
394xemacs-sumo                 ##################################################
395xemacs                      ##################################################
396以下省略</screen>
397        </sect2>
398
399        <sect2 id="using-rpm-2-5">
400                <title>apt-getコマンドによるパッケージの削除</title>
401                <para>
402特定のパッケージを削除する場合は、<command>apt-get remove</command>を用います。
403                </para>
404                <screen>$ sudo <command>apt-get remove (パッケージ名)</command></screen>
405                <para>
406パッケージ名には複数のパッケージを空白で区切って指定することができます。
407                </para>
408        </sect2>
409
410        <sect2 id="using-rpm-2-6">
411                <title>apt-getコマンドによるアーカイブファイルの削除</title>
412                <para>
413apt-getコマンドにより取得されたrpmファイルは、<filename class="directory">/var/cache/apt/archives/</filename>以下に蓄積されていきます。
414これらのファイルを一括して削除する場合は、<option>clean</option>を用います。
415                </para>
416                <screen>$ sudo <command>apt-get clean</command></screen>
417        </sect2>
418        <sect2 id="using-rpm-2-7">
419                <title>apt-cacheコマンドによるパッケージ情報の表示</title>
420                <para>
421パッケージの情報を知りたい場合は、<command>apt-cache</command>コマンドを用います。
422                </para>
423                <para>
424<command>man apt-cache</command> や <command>apt-cache --help</command> で使い方を見ることができます。参照 <ulink url="getinfo.html">困ったときには</ulink>
425                </para>
426                <para>
427まず、<option>gencaches</option>で情報を収集しておきます。
428                </para>
429                <screen>$ sudo <command>apt-cache gencaches</command></screen>
430                <para>
431apt-getコマンドで update,upgrade,install,remove などを実行した場合には apt-cache gencaches と同じ処理が行われるので、apt-cache gencaches を頻繁に実行する必要はありません。
432                </para>
433                <para>
434個別のパッケージ情報を知りたい場合は、<command>apt-cache show (パッケージ名)</command>を用います。apt 自身の場合、以下のように表示されます。
435                </para>
436                <screen>
437$ <command>apt-cache show apt</command>
438Package: apt
439Section: Applications/Administration
440Installed Size: 2523758
441Packager: Daisuke SUZUKI &lt;daisuke@linux.or.jp&gt;
442Version: 0.5.15lorg3.2-0vl8.1
443Pre-Depends: fileutils, ldconfig, sed, /bin/sh, /bin/sh
444Depends: rpm >= 4.0.4, gnupg, bzip2, readline >= 4.3, vine-keyring, /bin/sh, /bi
445n/sh, libapt-pkg-libc6.3-5.so.2, libbz2.so.1, libc.so.6, libc.so.6(GLIBC_2.0), l
446ibc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.2), libc.so.6(GLI
447BC_2.2.3), libc.so.6(GLIBC_2.3), libc.so.6(GLIBC_2.3.4), libdl.so.2, libdl.so.2(
448GLIBC_2.0), libdl.so.2(GLIBC_2.1), libgcc_s.so.1, libgcc_s.so.1(GCC_3.0), libm.s
449o.6, libm.so.6(GLIBC_2.0), libncurses.so.5, libpopt.so.0, libreadline.so.5, libr
450pm-4.4.so, librpmdb-4.4.so, librpmio-4.4.so, libstdc++.so.5, libstdc++.so.5(GLIB
451CPP_3.2), libxml2.so.2, libz.so.1
452Provides: libapt-pkg-libc6.3-5.so.2, apt = 0.5.15lorg3.2-0vl8.1
453Architecture: i386
454Size: 1007108
455MD5Sum: e250f6a02202d097fb536b19c3d494f9
456Filename: apt-0.5.15lorg3.2-0vl8.1.i386.rpm
457Summary: RPM を扱える Debian のパッケージツール apt(Advanced Packaging Tool)
458Description:
459 これはrpm対応の apt です。 apt-getは簡単かつ安全にパッケージ
460 のアップグレード,インストールがおこなえるコマンドです。
461 apt は依存関係の解決、インストール順序の補完などさまざまな特
462 徴があります。</screen>
463
464                <para>
465Group: Applications/Administration であるべきところが
466
467Section: Applications/Administration となっていますが、これは現在の仕様です。
468                </para>
469
470                <para>
471パッケージの依存関係などを知りたい場合は、<command>apt-cache showpkg (パッケージ名)</command>を用います。
472                </para>
473                <screen>
474$ <command>apt-cache showpkg apt</command>
475Package: apt
476Versions:
4770.5.15lorg3.2-0vl8.1.i386(/var/state/apt/lists/Vine%20Linux%204.1_Vine_base_pkgl
478ist.main)(/var/lib/rpm/Packages)
4790.5.15lorg3.2-0vl7.i386(/var/state/apt/lists/updates.vinelinux.org_apt_4.1_i386_
480base_pkglist.main)
481
482Reverse Depends:
483  tiny-buildfarm,apt 0.3.19.cnc.52
484  cron-apt,apt
485  apt-listchanges,apt 0.5.4.cnc.9
486  apt-cron,apt
487  synaptic,apt 0.5.15lorg3.2-0vl7
488  apt-devel,apt 0.5.15lorg3.2-0vl7
489  synaptic,apt 0.5.5
490Dependencies:
4910.5.15lorg3.2-0vl8.1 - fileutils (0 (null)) ldconfig (0 (null)) sed (0 (null)) r
492pm (2 4.0.4) gnupg (2 (null)) bzip2 (2 (null)) readline (2 4.3) vine-keyring (2
493(null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (nul
494l)) libapt-pkg-libc6.3-5.so.2 (2 (null)) libbz2.so.1 (2 (null)) libc.so.6 (2 (nu
495ll)) libc.so.6(GLIBC_2.0) (2 (null)) libc.so.6(GLIBC_2.1) (2 (null)) libc.so.6(G
496LIBC_2.1.3) (2 (null)) libc.so.6(GLIBC_2.2) (2 (null)) libc.so.6(GLIBC_2.2.3) (2
497 (null)) libc.so.6(GLIBC_2.3) (2 (null)) libc.so.6(GLIBC_2.3.4) (2 (null)) libdl
498.so.2 (2 (null)) libdl.so.2(GLIBC_2.0) (2 (null)) libdl.so.2(GLIBC_2.1) (2 (null
499)) libgcc_s.so.1 (2 (null)) libgcc_s.so.1(GCC_3.0) (2 (null)) libm.so.6 (2 (null
500)) libm.so.6(GLIBC_2.0) (2 (null)) libncurses.so.5 (2 (null)) libpopt.so.0 (2 (n
501ull)) libreadline.so.5 (2 (null)) librpm-4.4.so (2 (null)) librpmdb-4.4.so (2 (n
502ull)) librpmio-4.4.so (2 (null)) libstdc++.so.5 (2 (null)) libstdc++.so.5(GLIBCP
503P_3.2) (2 (null)) libxml2.so.2 (2 (null)) libz.so.1 (2 (null))
5040.5.15lorg3.2-0vl7 - fileutils (0 (null)) ldconfig (0 (null)) sed (0 (null)) rpm
505 (2 4.0.4) gnupg (2 (null)) bzip2 (2 (null)) readline (2 4.3) vine-keyring (2 (n
506ull)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)
507) libapt-pkg-libc6.3-5.so.2 (2 (null)) libbz2.so.1 (2 (null)) libc.so.6 (2 (null
508)) libc.so.6(GLIBC_2.0) (2 (null)) libc.so.6(GLIBC_2.1) (2 (null)) libc.so.6(GLI
509BC_2.1.3) (2 (null)) libc.so.6(GLIBC_2.2) (2 (null)) libc.so.6(GLIBC_2.2.3) (2 (
510null)) libc.so.6(GLIBC_2.3) (2 (null)) libc.so.6(GLIBC_2.3.4) (2 (null)) libdl.s
511o.2 (2 (null)) libdl.so.2(GLIBC_2.0) (2 (null)) libdl.so.2(GLIBC_2.1) (2 (null))
512 libgcc_s.so.1 (2 (null)) libgcc_s.so.1(GCC_3.0) (2 (null)) libm.so.6 (2 (null))
513 libm.so.6(GLIBC_2.0) (2 (null)) libncurses.so.5 (2 (null)) libpopt.so.0 (2 (nul
514l)) libreadline.so.5 (2 (null)) librpm-4.4.so (2 (null)) librpmdb-4.4.so (2 (nul
515l)) librpmio-4.4.so (2 (null)) libstdc++.so.5 (2 (null)) libstdc++.so.5(GLIBCPP_
5163.2) (2 (null)) libxml2.so.2 (2 (null)) libz.so.1 (2 (null))
517Provides:
5180.5.15lorg3.2-0vl8.1 - apt libapt-pkg-libc6.3-5.so.2
5190.5.15lorg3.2-0vl7 - apt libapt-pkg-libc6.3-5.so.2
520Reverse Provides:
521apt 0.5.15lorg3.2-0vl7
522apt 0.5.15lorg3.2-0vl8.1</screen>
523
524                <para>
525ソースパッケージの情報を知りたい場合は、<command>apt-cache showsrc (パッケージ名)</command>を用います。
526                </para>
527                <para>
528一般的に package-devel-(バージョン)-(リリース番号).(アーキテクチャ).rpm のソースパッケージは package-(バージョン)-(リリース番号).src.rpm ですが、このように -(バージョン) より前の部分の名前が異なる場合は <option>showsrc</option> では表示されません。
529                </para>
530                <screen>
531$ <command>apt-cache showsrc apt</command>
532Package: apt
533Section: Applications/Administration
534Installed Size: 1119612
535Packager: Daisuke SUZUKI &lt;daisuke@linux.or.jp&gt;
536Version: 0.5.15lorg3.2-0vl8.1
537Architecture: i386
538Size: 1042699
539MD5Sum: a670ca043b1668c96e6f5d7496c08047
540Filename: apt-0.5.15lorg3.2-0vl7.src.rpm
541Summary: RPM を扱える Debian のパッケージツール apt(Advanced Packaging Tool)
542Description:
543 これはrpm対応の apt です。 apt-getは簡単かつ安全にパッケージ
544 のアップグレード,インストールがおこなえるコマンドです。
545 apt は依存関係の解決、インストール順序の補完などさまざまな特
546 徴があります。</screen>
547
548        </sect2>
549
550        <sect2 id="using-rpm-2-8">
551                <title>apt-cacheコマンドによるパッケージの検索</title>
552                <para>
553<command>apt-cache search (キーワード)</command>を用いると、パッケージの検索ができます。
554                </para>
555                <para>
556キーワードを元にパッケージを検索することができます。
557                </para>
558        <note>
559                <title>検索には日本語のキーワードも使用できます</title>
560                <para>
561ただし、日本語のキーワードよりも英語のキーワードで検索したほうが、多くのパッケージを探せます。
562                </para>
563                <para>
564参照 <ulink url="XWindow-4.html">2.4. GUI環境での日本語入力</ulink>
565                </para>
566        </note>
567                <para>
568<!--tt-->「オフィス」<!--/tt-->というキーワードを含むパッケージを検索してみます。
569                </para>
570                <screen>
571$ <command>apt-cache search オフィス</command>
572koffice - KDE 向け統合オフィススイート
573openoffice.org - OpenOffice.org オフィススイート
574openoffice.org-i18n - OpenOffice.org 国際化対応パッケージ
575openoffice.org-libs - OpenOffice.org 共有ライブラリ</screen>
576                <para>
577このように<application>koffice</application><application>openoffice.org</application>といったパッケージがあることがわかります。
578さらに詳細を知りたい場合は、<option>--full</option>オプションを付けて実行します。
579検索にひっかかったパッケージそれぞれについて<option>show</option>と同じように出力されます。
580                </para>
581                <para>
582パッケージの含むすべてのファイル名が検索対象になっているわけではありませんが、
583<emphasis>ライブラリの名前など具体的なファイル名</emphasis>で検索してもパッケージ名を調べることができる場合もあります。
584<!--tt-->「ld-linux.so.2」<!--/tt-->というキーワードを含むパッケージを検索してみます。
585                </para>
586                <screen>
587$ <command>apt-cache search ld-linux.so.2</command>
588glibc - GNU libc ライブラリ</screen>
589
590                <para>
591このように<application>glibc</application>というパッケージがあることがわかります。
592                </para>
593        </sect2>
594
595        <sect2 id="using-rpm-2-9">
596                <title>トラブルシューティング</title>
597                <qandaset>
598                  <qandaentry>
599                    <question>
600                      <para>apt-get update が失敗します。</para>
601                      <screen>$ sudo <command>apt-get update</command>
602[sudo] password for username:
603取得:1 http://updates.vinelinux.org 4.1/i386 release [2255B]
604エラー http://updates.vinelinux.org 4.1/i386 release
605  File was not signed with a known key. Check if the proper gpg key was imported
606 to your keyring.
6072255B を 0s 秒で取得しました (7707B/s)
608以下の取得に失敗しました: http://updates.vinelinux.org/apt/4.1/i386/base/release
609  File was not signed with a known key. Check if the proper gpg key was imported
610 to your keyring.
611パッケージリストを読みこんでいます... 完了
612依存情報ツリーを作成しています... 完了   
613E: いくつかのインデックスファイルのダウンロードに失敗、無視、あるいは古いものが
614使用されました。</screen>
615                     
616                    </question>
617                    <answer>
618                      <para>
619                        これは PC の時計が狂っていることが原因で発生するエラーです。
620                      </para>
621                     
622                      <para>
623                        Vine Linux をインストールするときに、時計の確認をしなかった、そして日時が大幅に狂ったままインストールしてしまった、という場合には、時計が狂っていることでなんらかの悪影響が出ている可能性もあるので、時計を修正したうえで、Vine Linux そのものをインストールし直したほうがいいかもしれません。
624                      </para>
625                     
626                      <para>
627                        時計を修正しても、電源を切って入れ直すとまた狂っているという場合には、マザーボードの電池が消耗しているということも考えられます。その場合には、電池を交換する必要があるかもしれません。パソコンやマザーボードの取り扱い説明書などを確認してください。
628                      </para>
629                     
630                      <para>
631                        PC の時計を確認します。
632                        <screen>$ <command>date</command>
6331970年  1月  1日 日曜日 01:23:45 JST</screen>
634                      </para>
635                     
636                      <para>
637                        狂っていたら <command>date</command> コマンドで修正します。
638                        <screen>date 月日時分西暦年</screen>
639                        という書式です。
640                       
641                        2007年5月22日12時34分にするには次のようにします。
642                        <screen>$ sudo <command>date 052212342007</command>
6432007年  5月 22日 月曜日 12:34:00 JST</screen>
644                       
645                        時計が修正され、年月日曜日時分が出力されます。
646                      </para>
647                     
648                      <para>apt-get update を実行して正常に動作するか確認してください。</para>
649                     
650                    </answer>
651                  </qandaentry>
652
653                                                                        <qandaentry>
654                                                                                <question>
655                                                                                        <para>apt-get コマンドが終了しません。</para>
656                                                                                        <para>
657                                                                                                apt-get コマンドや rpm コマンドでパッケージのインストールやアンインストールなどを行ったときに
658                                                                                        <screen>変更を適用しています...
659準備中...                   ########################################### [100%]</screen>
660といった状態で停止して、いつまで待っても処理が終わりません。
661                                                                                        </para>
662                                                                                </question>
663                                                                                <answer>
664                                                                                        <para>
665                                                                                                synaptic が起動していないか確認して、起動していたら synaptic を終了してください。
666                                                                                        </para>
667                                                                                        <para>
668                                                                                                synaptic でパッケージの更新やインストールやアンインストールなど、なんらかの作業を行った後、synaptic を起動したままにしていると、rpm のデータベース(どのパッケージがインストールされているかなどの情報)を synaptic がロックしたままになっていて、他のコマンドは順番待ちの状態になります。
669                                                                                                synaptic を終了すると、ロックが解除され、apt-get コマンドや rpm コマンドが続きの処理を行うことができるようになり、コマンドの処理が再開します。
670                                                                                        </para>
671                                                                                       
672                                                                                </answer>
673                                                                        </qandaentry>
674
675                                                                        <qandaentry>
676                                                                                <question>
677                                                                                        <para>パッケージが見付かりません。</para>
678                                                                                        <para>
679                                                                                                <screen>$ sudo <command>apt-get install firefox</command>
680パッケージリストを読みこんでいます... 完了
681依存情報ツリーを作成しています... 完了   
682E: パッケージ firefox が見付かりません</screen>
683                                                                                        </para>
684                                                                                </question>
685
686                                                                                <answer>
687                                                                                        <para>
688                                                                                                一度も apt-get update を実行していない状態では、用意されているパッケージであっても見付かりません。
689                                                                                                <command>apt-get install</command> や <command>apt-get upgrade</command> を実行する前には、<xref linkend="using-rpm-2-2" /> を実行してください。
690                                                                                        </para>
691                                                                                        <para>
692                                                                                                パッケージの名前を間違っていないか確認したり、<xref linkend="using-rpm-2-8" /> を実行してください。なお、パッケージが用意されていない場合もあります。
693                                                                                        </para>
694                                                                                       
695                                                                                </answer>
696                                                                        </qandaentry>
697
698                                                                        <qandaentry>
699                                                                                <question>
700                                                                                        <para>コマンドやオプションが長すぎて入力が大変です。</para>
701                                                                                </question>
702
703                                                                                <answer>
704                                                                                        <para>Vine Plus にある zsh のような高度な補完ができるシェルを利用すれば、コマンドの後のオプションなども <keycap>TABキー</keycap> 等で補完することができます。</para>
705                                                                                        <para>また、標準の bash でも alias や function を利用してある程度入力を簡単にすることができます。function や alias などについては man bash などを参照してください。</para>
706                                                                                        <para>筆者は、<filename>~/.bashrc</filename> に次のような function を定義して利用しています。</para>
707                                                                                        <para># set aliases として alias がいくつか定義されているその下に # set functions などとして下のようなものを追加してみるといいかもしれません。</para>
708                                                                                                                                                                               
709                                                                                        <example id="bash-functions-for-apt">
710                                                                                                <title>~/.bashrcに書いておくfunctionの例</title>
711                                                                                                <screen># functions for apt,rpm
712function aptsearch () { /usr/bin/apt-cache search "$1" ;}
713function aptsearchname () { /usr/bin/apt-cache search --names-only "$1" ;}
714function aptsearchpkgnames () { /usr/bin/apt-cache pkgnames "$1" ;}
715function aptshow () { /usr/bin/apt-cache show "$1" ;}
716function aptshowpkg () { /usr/bin/apt-cache showpkg "$1" ;}
717function aptshowsrc () { /usr/bin/apt-cache showsrc "$1" ;}
718function aptcategory () { /usr/bin/apt-cache showpkg "$1" | /bin/grep -e "Package" -e "/lists/" ;}
719
720function aptsrc () { /usr/bin/apt-get source "$1" ;}
721function aptsrc-d () { /usr/bin/apt-get source -d "$1" ;}
722
723function slrpmqf () { /usr/bin/slocate "$1" | /usr/bin/xargs rpm -qf ;}
724function whichrpmqf () { which "$1" ; which "$1" | /usr/bin/xargs rpm -qf ;}
725
726function rpmlogh () { /bin/rpm -q --changelog "$1" | /usr/bin/head ;}
727function rpmlogh-p () { /bin/rpm -q --changelog -p "$1" | /usr/bin/head ;}
728function rpmlogl () { /bin/rpm -q --changelog "$1" | /usr/bin/lv ;}
729function rpmlogl-p () { /bin/rpm -q --changelog -p "$1" | /usr/bin/lv ;}</screen></example>
730                                                                                </answer>
731                                                                        </qandaentry>
732
733                </qandaset>
734        </sect2>
735       
736</sect1>
737
738
739<sect1 id="using-rpm-3">
740        <title>RPM - RPM Package Manager</title>
741        <sect2 id="install-packages">
742                <title>rpmパッケージのインストール (rpm -i)</title>
743                <para>
744パッケージpackage-1-2vl3.i386.rpmをインストールするには、オプション<option>-i</option>(Install;インストール)を用います。
745                </para>
746                <screen>$ sudo <command>rpm -ivh package-1-2vl3.i386.rpm</command></screen>
747                <para>
748オプション<option>-v</option>(verbose)と<option>-h</option>(hash)を用いるとインストール中にハッシュマーク(#)が出て、インストールの進む様子がわかります。
749                </para>
750
751                <example id="dependency">
752                        <title>依存関係(dependency)の解決</title>
753                        <para>
754パッケージをインストールしようとしたときに、
755                        <screen>
756libdepend.so.1 is needed by package-1-2vl3
757sometool is needed by package-1-2vl3</screen>
758もしくは、
759                        <screen>
760libdepend.so.1 が package-1-2vl3 に必要です
761sometool が package-1-2vl3 に必要です</screen>
762
763などというエラーが出ることがあります。
764これは「パッケージ package-1-2vl3の中に、
765libdepend.so.1というライブラリやsometoolというパッケージを必要とするファイルがあるにもかかわらず、
766libdepend.so.1やsometoolがシステムにインストールされていない」ことによるエラーです。
767このときには、 ライブラリlibdepend.so.1を含むパッケージや、パッケージsometoolを探してきてインストールして下さい。
768<xref linkend="using-rpm-2-8" />を参照してください。
769                </para>
770
771                <para>
772もし、このような依存性を無視してインストールしたいときには、オプション
773<option>--nodeps</option>を用いてインストールします。
774                </para>
775
776                <para>
777                        <screen>$ sudo <command>rpm -i --nodeps package-1-2vl3.i386.rpm</command></screen>
778とします。ただし、この場合にはインストールしたパッケージが正常に動作しない可能性があります。
779                        </para>
780                </example>
781
782                <example id="conflict">
783                        <title>競合(conflict)の解決</title>
784                        <para>
785package-1-2vl3.i386.rpmのインストール時に、
786                        <screen>/usr/bin/cmd conflicts with file from another-3-4vl5</screen>
787もしくは、
788<screen>/usr/bin/cmd は another-3-4vl5 のファイルと競合します</screen>
789というエラーが出た場合には、package-1-2vl3のファイル/usr/bin/cmdが、
790すでにインストール済みのパッケージ another-3-4vl5のファイル/usr/bin/cmdと競合するために、
791インストールできないことを示します。
792もし、無理矢理インストールしたいときには、オプション<option>--force</option>を用います。
793<screen>$ sudo <command>rpm -ivh --force package-1-2vl3.i386.rpm</command></screen>
794しかし、この場合には、元からあったanother-3-4vl5のファイル/usr/bin/cmdは、
795package-1-2vl3によって上書きされてしまうので、取扱には注意が必要です。
796                        </para>
797                </example>
798        </sect2>
799
800        <sect2 id="using-rpm-3-2">
801                <title>rpmパッケージのアップグレード (rpm -F)</title>
802                <para>
803すでに、package-1-1vl1.i386.rpmがインストールされていて、
804新しいpackage-1-2vl3.i386.rpmにバージョンアップしたいときには、オプション
805<option>-F</option>(Freshen;新しいものに変える)を用います。
806                </para>
807                <para>
808古いバージョンのパッケージがインストールされている場合にのみパッケージを更新します。
809新しいバージョンのパッケージがインストールされ、古いバージョンのパッケージは削除されます。
810                </para>
811<screen>$ sudo <command>rpm -Fvh package-1-2vl3.i386.rpm</command></screen>
812                <para>
813ここで、オプション<option>-vh</option>の役割はインストールの時と同じです。
814                </para>
815        </sect2>
816
817        <sect2 id="using-rpm-3-3">
818                <title>rpmパッケージのインストールとアップグレード (rpm -U)</title>
819                <para>
820インストール -i に アップグレード -F も追加したものです。
821古いバージョンのパッケージが、インストールされていなければ -i としてインストールし、
822インストールされていれば -F として更新します。
823新しいバージョンのパッケージがインストールされ、古いバージョンのパッケージは削除されます。
824                </para>
825                <para>
826<option>-U</option>(Update;更新)を用います。
827                </para>
828<screen>$ sudo <command>rpm -Uvh package-1-2vl3.i386.rpm</command></screen>
829                <para>
830オプション<option>-vh</option>の役割はインストールの時と同じです。
831                </para>
832                <para>
833また、古いバージョンpackage-1-1vl1.i386.rpmに戻したいときには、オプション
834<option>--oldpackage</option>を用います。
835                </para>
836<screen>$ sudo <command>rpm -Uvh --oldpackage package-1-1vl1.i386.rpm</command></screen>
837        </sect2>
838
839        <sect2 id="using-rpm-3-4">
840                <title>rpmパッケージの削除 (rpm -e)</title>
841                <para>
842インストールしたパッケージを削除(アンインストール)したくなったら、オプション
843<option>-e</option>(erase;削除)を用います。
844                </para>
845<screen>$ sudo <command>rpm -e package</command></screen>
846                <para>
847ここで、バージョン番号やリリース番号は要りませんが、明示して
848<screen>$ sudo <command>rpm -e package-1-2vl3</command></screen>
849とすることもできます。ただし, パッケージpackageに含まれるファイル
850somefileが他のパッケージで利用されている場合には、
851<screen>
852removing these packages would break dependencies:
853somefile is needed by another_pkg</screen>
854もしくは、
855<screen>
856これらのパッケージを必要としているパッケージがあります:
857somefile が another_pkg に必要です</screen>
858などというエラーメッセージが出て削除できません。
859無視して削除したいときには, オプション<option>--nodep</option>を用います。
860                </para>
861<screen>$ sudo <command>rpm -e --nodeps package</command></screen>
862                <para>
863しかし、この場合は パッケージanother_pkgが動かなくなる可能性がありますので注意が必要です。
864                </para>
865        </sect2>
866
867        <sect2 id="using-rpm-3-5">
868                <title>rpmパッケージに関する情報を得る (rpm -q)</title>
869                <example id="rpm-q">
870                        <title>インストールされているrpmパッケージの情報を得る</title>
871                        <para>
872パッケージをインストールしたけれでも、バージョンを忘れてしまったので知りたいと言うときには、
873オプション<option>-q</option>(query)を用います。例えば、
874パッケージ soxについて知りたい場合を示します。
875<screen>
876$ <command>rpm -q sox</command>         (soxのバージョンを知りたいとき)
877sox-12.18.1-0vl2</screen>
878また、オプション <option>-i</option>(information;情報)を併用して、
879<screen>
880$ <command>rpm -qi sox</command>
881Name        : sox                          Relocations: (not relocatable)
882Version     : 12.18.1                           Vendor: (none)
883Release     : 0vl2                          Build Date: 2006年09月04日 14時02分44秒
884Install Date: 2006年10月18日 00時56分44秒      Build Host: windy.local.dicey.org
885Group       : Applications/Multimedia       Source RPM: sox-12.18.1-0vl2.src.rpm
886Size        : 675803                           License: LGPL
887Signature   : DSA/SHA1, 2006年09月04日 14時02分44秒, Key ID 90bf4c0974322cb0
888Packager    : Daisuke SUZUKI &lt;daisuke@linux.or.jp&gt;
889URL         : http://sox.sourceforge.net/
890Summary     : 汎用サウンドファイル変換ツール
891Description :
892SoX (Sound eXchange) は Linux, UNIX, DOS PC 用サウンドファイルフォーマット
893変換ツールです.SoX は「サウンドツール界のスイスアーミーナイフ」で,
894様々なデジタルサウンドフォーマットを相互に変換したり,
895簡単なサウンドエフェクト等の処理も行うことが出来ます.</screen>
896このように、パッケージに関するいろいろな情報を得ることができます。さらに
897オプション<option>-l</option>(list;一覧)を用いると、パッケージに含まれるファイル一覧が表示されます。
898<screen>
899$ <command>rpm -ql sox</command>
900/usr/bin/libst-config
901/usr/bin/play
902/usr/bin/rec
903/usr/bin/sox
904/usr/bin/soxmix
905/usr/bin/soxplay
906/usr/share/doc/sox-12.18.1
907/usr/share/doc/sox-12.18.1/Changelog
908/usr/share/doc/sox-12.18.1/INSTALL
909/usr/share/doc/sox-12.18.1/README
910/usr/share/doc/sox-12.18.1/TODO
911/usr/share/man/man1/rec.1.gz
912/usr/share/man/man1/sox.1.gz
913/usr/share/man/man1/soxexam.1.gz
914/usr/share/man/man1/soxmix.1.gz</screen>
915                        </para>
916
917                        <para>
918これらのオプションを全て付けることもできます。表示が多い場合はページャ
919lessを用いると便利です。(参考:<xref linkend="less" />)
920<screen>$ <command>rpm -qil package | less</command></screen>
921また、grepコマンドを用いれば、探したいパターンpatternを検索することができます。
922<screen>$ <command>rpm -qil package | grep pattern</command></screen>
923                        </para>
924                </example>
925
926                <example id="rpm-qi">
927                        <title>持ってきたrpmファイルに関する情報を得る</title>
928                        <para>
929インストールされているパッケージでなく、持ってきたパッケージ
930package-1.0-2vl3.i386.rpmの情報やファイル一覧を知りたいときには、オプション
931<option>-p</option>(package)を併用します。この場合は〜i386.rpmまでを含むファイル名全体を指定します。
932<screen>$ <command>rpm -qilp package-1.0-2vl3.i386.rpm</command></screen>
933さらにオプション<option>-v</option>(verbose)も使って
934<screen>$ <command>rpm -qilvp package-1.0-2vl3.i386.rpm</command></screen>
935とすると、各ファイルの属性なども表示されます。
936                        </para>
937                </example>
938
939                <example id="rpm-qf">
940                        <title>インストールされているファイルの属するパッケージ名を知る</title>
941                        <para>
942インストールされているファイル/usr/bin/playが、どのパッケージに含まれているものなのかを知りたいときには、
943オプション<option>-f</option>(file;ファイル)を用いるとパッケージ名が表示されます。
944<screen>
945$ <command>rpm -qf /usr/bin/play</command>
946sox-12.18.1-0vl2</screen>
947                        </para>
948                </example>
949        </sect2>
950
951</sect1>
952
953<sect1 id="using-rpm-4">
954        <title>ソースパッケージからバイナリパッケージを再構築(rebuild)する。</title>
955        <para>
956                バイナリパッケージを apt-get や rpm -i や rpm -U でうまくインストールできない場合は、ソースパッケージ(src.rpm)からバイナリパッケージを作成する必要があります。
957                また、お使いのVine Linux用に用意されたパッケージ以外(Fedora 向けや Vine Linux の他のバージョン向けのパッケージなど)をインストールする場合は必ずソースパッケージから再構築して下さい。
958        </para>
959
960        <sect2 id="root_is_dangerous">
961                <title>root で作業する危険性</title>
962                <para>
963                        root ユーザーは全ての権限をもっています。
964                        そのために、パッケージ再構築時の "操作ミス" や、"パッケージに含まれるミス" によって、
965                        重要なファイルを書き換えたり削除して、システム全体に致命的なダメージを与えたり、
966                        登録されているユーザーやグループを削除してしまったりすることがあるかもしれません。
967                </para>
968                <para>
969                        また、パッケージに "悪意のあるコード" が含まれていれば、ネットワークを通じてユーザー情報を漏洩させたり、外部からあなたのPCを自由に操作できるようにしてしまうことがあるかもしれません。
970                </para>
971                <para>
972                        これらの危険を避けるために、root 権限が必要となるインストール、アンインストール以外の作業は全て一般ユーザーで行って下さい。
973                        Vine Linux で提供しているパッケージについては、再構築時に root 権限が必要となるものはないはずです。
974                </para>
975                <para>また、Vine Linux 3.0 からは、<ulink url="http://vinelinux.org/packaging.html">パッケージングに関する指針</ulink>に従って、パッケージに GnuPG による署名が施されるようになりました。</para>
976                <para>
977                        もし、Vine Linux で提供しているパッケージのミスなどが見つかった場合には、<ulink url="http://bts.vinelinux.org/">BTS</ulink><ulink url="http://vinelinux.org/ml.html">メーリングリスト</ulink>等を通じて報告して下さい。
978                        ミスの発見の情報だけでも歓迎され、パッケージが改善されるでしょう。
979                </para>
980        </sect2>
981        <sect2 id="using-rpm-4-2">
982                <title>環境設定</title>
983                <sect3 id="install-development-packages">
984                        <title>開発環境のインストール</title>
985                        <para>ソースパッケージを rebuild するためには、rpmbuild というコマンドが必要になります。<footnote><para>rpm Version 4 で 再構築等にかかわる rpm -b や rpm --rebuild が rpm 本体のパッケージから分離され rpm-build のパッケージとなり、コマンドも rpmbuild -b , rpmbuild --rebuild となりました。過去との互換性のためにVine Linux では、rpm-build のパッケージがインストールされていれば、rpm -b や rpm --rebuild も使えますが、今後はrpmbuildを使う様にしてください。</para></footnote>このコマンドは rpm-build というパッケージに含まれています。</para>
986                        <para>また、圧縮されたファイルを展開するためのコマンドや、コンパイル作業に必要となるコマンドなどを含んださまざまなパッケージが必要となります。</para>
987                        <para>Vine Linux では、これらのパッケージをまとめてインストールするために、build-essential というパッケージが用意されています。root ユーザーでインストールしてください。</para>
988                        <screen>$ sudo <command>apt-get install build-essential</command></screen>
989                        <para>rpm-build,gcc,gcc-c++,glibc-devel,libstdc++3-devel,make,gzip,bzip2,tar,patch,findutils,coreutils,file,libtool, automake,autoconf,gettext などがインストールされます。</para>
990                        <para>最低限の開発環境はインストールされましたが、パッケージによってはその他にもライブラリ等のパッケージが必要になる場合があります。詳細は、<xref linkend="using-rpm-4-3" />で説明します。</para>
991                </sect3>
992                <sect3 id="setup-with-mkrpmdir">
993                        <title>必要なディレクトリやファイルの準備</title>
994                        <para>一般ユーザーの権限で src.rpm を rebuild するために、パッケージを展開し、構築するための場所が用意されています。
995                                このディレクトリは ~/rpm となっています。もし、ホームディレクトリ(~)にこのディレクトリがなければ以下のようにして作成してください。</para>
996<screen>
997$ cd
998$ mkrpmdir .</screen>
999                        <para>mkrpmdir コマンドを実行すると、必要なディレクトリと 設定ファイル ~/.rpmmacros を作成してくれます。</para>
1000                        <para>手動でディレクトリを作成するには、以下のようにします。</para>
1001                        <screen>$ <command>mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}}</command></screen>
1002                        <para>また、~/.rpmmacros に設定を記述しておく必要があります。以下のようにしてください。</para>
1003                        <screen>$ <command>echo "%_topdir $HOME/rpm" &gt; ~/.rpmmacros</command></screen>
1004                </sect3>
1005        </sect2>
1006        <sect2 id="using-rpm-4-3">
1007                <title>再構築に必要なパッケージ</title>
1008                <sect3 id="need-some-packages">
1009                        <title>インストール時に必要なパッケージ</title>
1010                        <para>
1011                                再構築しようとしているパッケージが、再構築後のインストール時に他のパッケージを必要とする場合があります。
1012                                apt-get install に -s オプション(simulateのs)をつけて、インストールを試行すると確認できます。
1013                                他のパッケージの再構築も行うなら、確認しておきましょう。
1014                                root 権限で行ってください。
1015                        </para>
1016                        <screen>$ sudo <command>apt-get -s install パッケージ名</command></screen>
1017                        <para>xemacs の場合は次のようになります。</para>
1018<screen>$ sudo <command>apt-get -s install xemacs</command>
1019パッケージリストを読みこんでいます... 完了
1020依存情報ツリーを作成しています... 完了
1021以下の追加パッケージがインストールされます:
1022 xemacs-sumo
1023以下のパッケージが新たにインストールされます:
1024 xemacs xemacs-sumo
1025アップグレード: 0 個, 新規インストール: 2 個, 削除: 0 個, 保留: 0 個
1026以下省略</screen>
1027                        <para>xemacs をインストールするには、xemacs-sumo も必要なことがわかりました。</para>
1028                </sect3>
1029                <sect3 id="install-development-packages-for-rebuild">
1030                        <title>再構築に必要なライブラリ等のインストール</title>
1031                        <para>ソースパッケージを再構築する場合には、開発用のパッケージを必要とするものがあります。
1032                                必要なコンパイラーやdevelパッケージは以下のようにするとインストールすることができます。
1033                                root で実行してください。
1034                        </para>
1035                        <screen>$ sudo <command>apt-get build-dep パッケージ名</command></screen>
1036                        <para>xemacs の場合は次のようになります。</para>
1037<screen>$ sudo <command>apt-get build-dep xemacs</command>
1038パッケージリストを読みこんでいます... 完了
1039依存情報ツリーを作成しています... 完了
1040以下のパッケージが新たにインストールされます:
1041  Canna-devel XOrg-devel autoconf213 faces-devel libdnd-devel libjpeg-devel
1042  libpng-devel libtiff-devel libwnn6-devel openMotif-devel xemacs-sumo
1043  略</screen>
1044                        <para>xemacs の再構築に、xemacs-sumo も必要なようです。xemacs-sumo は再構築せずにインストールしてしまうことにします。xemacs-sumo も再構築する場合は、xemacs より先に再構築して、インストールしてください。</para>
1045                </sect3>
1046        </sect2>
1047        <sect2 id="using-rpm-4-4">
1048                <title>ソースパッケージの入手方法</title>
1049                <para>特定のコマンドのソースを読みたい場合など、どのパッケージに含まれているかを知りたい場合は、<xref linkend="using-rpm-2-8" /><xref linkend="using-rpm-3-5" />を参照してください。</para>
1050                <sect3 id="get-source-packages-by-apt-get">
1051                        <title>apt-get コマンドによる src.rpm の入手</title>
1052                        <para>Vine Linux 向けに用意されているパッケージのソースパッケージは apt-get コマンドで簡単に入手できます。</para>
1053                        <screen>$ <command>apt-get source パッケージ名</command></screen>
1054                        <para>コマンドを実行したディレクトリにソースパッケージがダウンロードされ、設定ファイル(~/.rpmmacros)で設定されているディレクトリ(~/rpm 以下)にソースパッケージがインストールされます。</para>
1055                        <para><option>-d</option> や <option>--download-only</option> といったオプションをつけるとソースパッケージのダウンロードのみで、インストールは行われません。</para>
1056
1057                        <example id="apt-get_source_xemacs">
1058                                <title>xemacs のソースパッケージを入手する</title>
1059<screen>$ <command>apt-get source xemacs</command>
1060パッケージリストを読みこんでいます... 完了
1061依存情報ツリーを作成しています... 完了   
10629192kB のソースアーカイブを取得します。
1063取得:1 http://updates.vinelinux.org 4.1/i386/plus xemacs 21.4.19-0vl5 (srpm) [9192kB]
10649192kB を 2s 秒で取得しました (3126kB/s)
1065   1:xemacs                 ########################################### [100%]</screen>
1066                        </example>
1067                </sect3>
1068                <sect3 id="get-source-packages-from-ftp">
1069                        <title>ftp サイトなどからの src.rpm の入手</title>
1070                        <para>Vine Linuxを配布している<ulink url="http://vinelinux.org/getvine.html#Download">ftpサイト</ulink>にアクセスすると <filename class="directory">Vine-バージョン/SRPMS/</filename> というディレクトリがあり、そこにソースパッケージがあります。</para>
1071                        <para>また、Errata 等で更新されたパッケージについては、<filename class="directory">Vine-バージョン/updates/SRPMS/</filename> にソースパッケージが置かれています。</para>
1072                        <para>VinePlus のパッケージは VinePlus/バージョン/ の中にあり、3.0からカテゴリによって、SRPMS.extras/、SRPMS.nonfree/、SRPMS.orphaned/、SRPMS.plus/、SRPMS.task/ のようにわけられています。</para>
1073                        <para>ftp サイトによって、多少ディレクトリの構成が異なるかもしれませんが、SRPMS というところを探していけば見付けることができます。</para>
1074                        <para>具体的なパッケージ名がわかっている場合には、apt-get コマンドを利用したほうが簡単に入手できます。</para>
1075                </sect3>
1076        </sect2>
1077        <sect2 id="using-rpm-4-5">
1078                <title>ソースパッケージの再構築</title>
1079                <sect3 id="apt-get-b-source">
1080                        <title>apt-get コマンドによる再構築</title>
1081                        <para>apt-getコマンドでソースパッケージを再構築するには、sourceコマンドに<option>-b</option>オプションを付加します。</para>
1082                        <screen>$ <command>apt-get -b source パッケージ名</command></screen>
1083                        <para>カレントディレクトリにソースパッケージがあるかどうかチェックが行われ、無い場合はダウンロードされます。既にダウンロードしている場合は、パッケージ名の代わりにソースパッケージ名でも構いません。</para>
1084                        <para>再構築が完了すると <computeroutput>書き込み完了: ファイル名</computeroutput> と表示されるのでメッセージを頼りにできあがったバイナリRPMをインストールしてください。</para>
1085                        <example id="apt-get-b_source">
1086                                <title>xemacs の再構築</title>
1087<screen>
1088$ <command>apt-get -b source xemacs</command>
1089
1090パッケージリストを読みこんでいます...
1091依存情報ツリーを作成しています...
10929192kB のソースアーカイブを取得します。
1093取得:1 http://updates.vinelinux.org 4.1/i386/plus xemacs 21.4.19-0vl5 (srpm) [8846kB]
10941B を 0s 秒で取得しました (1B/s)
1095xemacs-21.4.19-0vl5.src.rpm をインストール中
1096実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.66891
1097  略
1098書き込み完了: /home/user/rpm/RPMS/i386/xemacs-21.4.19-0vl5.i386.rpm
1099書き込み完了: /home/user/rpm/RPMS/i386/xemacs-el-21.4.19-0vl5.i386.rpm
1100  略
1101+ umask 022
1102+ rm -rf xemacs-21.4.19
1103+ exit 0</screen>
1104                        </example>
1105                </sect3>
1106                <sect3 id="rpmbuild">
1107                        <title>rpmbuild コマンドによる再構築</title>
1108                        <para>
1109                                FedoraやTurbo Linuxなど、他のディストリビューション向けに配布されているパッケージを利用する場合は、そのソースパッケージを取得して再構築する必要があります。
1110                                この場合、apt-getによる再構築はできませんのでrpmコマンドを使って再構築する必要があります。
1111                        </para>
1112<screen>
1113$ <command>rpmbuild --rebuild ソースパッケージ</command></screen>
1114                </sect3>
1115        </sect2>
1116        <sect2 id="Q_and_A_for_rebuild_packages">
1117                <title>パッケージの再構築に関するQ&amp;A</title>
1118                <qandaset>
1119                        <qandaentry>
1120                                <question><para>他のディストリビューションのソースパッケージはどこにありますか?</para></question>
1121                                <answer><para>できるだけ Vine Linux 向けに作成されたパッケージの使用をお薦めしますが、Vine Linux 向けのパッケージが用意されていない場合など他のディストリビューション向けのパッケージを探したい場合は、それぞれのディストリビューションの公式サイトや<ulink url="http://www.rpmfind.net/">Rpmfind</ulink>などを利用してください。また、目的のアプリケーションの公式サイトにソースパッケージ(*.src.rpm)が用意されている場合もあります。</para></answer>
1122                        </qandaentry>
1123                        <qandaentry>
1124                                <question><para>ソースパッケージの再構築に失敗します。</para></question>
1125                                <answer>
1126                                        <para>いくつかの原因が考えられます。いずれの場合にしろ、RPMパッケージを作成するための知識が必要になりますので<ulink url="making-rpm.html">RPMパッケージの作成</ulink>を参照してください。</para>
1127                                        <variablelist>
1128                                                <varlistentry>
1129                                                        <term>ビルドに必要なパッケージの名前が、使用中のVine Linuxのバージョンでは異なった名前になっている。</term>
1130                                                        <listitem><para>必要なパッケージを再構築するために必要なパッケージをインストールしようとしたが、見つからない場合、パッケージ名が異なっている場合があります。例えば、Vine Linux 2.6 では docbook-dtd41-sgml と呼ばれていたパッケージは、3.0以降 docbook-dtds に統合されています。この様な場合は、specファイルの修正が必須になります。当然、該当するパッケージもインストールしておく必要があります。</para></listitem>
1131                                                </varlistentry>
1132                                                <varlistentry>
1133                                                        <term>ビルドに必要なパッケージの情報が不足している。</term>
1134                                                        <listitem><para>パッケージを作成した環境にインストールされていたためにパッケージ開発者がspecファイルへの記述を忘れてしまったパッケージが存在する場合があります。パッケージの再構築に失敗する直前のエラーメッセージなどを参考に必要なパッケージをインストールし、できるだけspecファイルを修正してください。</para></listitem>
1135                                                </varlistentry>
1136                                                <varlistentry>
1137                                                        <term>ビルドに必要なパッケージのバージョンに問題がある。</term>
1138                                                        <listitem><para>過去のバージョンで依存パッケージに互換性のない仕様変更が行われており、specファイルでバージョンの制限に問題があるために再構築に失敗する場合が考えられます。この場合は、古いバージョンをインストールするためのパッケージがないか、逆に新しいバージョンに対応したソースRPMがないか探してください。例えば、PNGフォーマットを扱うためのライブラリであるlibpngには、libpng10という古いlibpngをインストールするためのパッケージが存在します。</para></listitem>
1139                                                </varlistentry>
1140                                        </variablelist>
1141                                </answer>
1142                        </qandaentry>
1143                        <qandaentry>
1144                                <question><para>*.tar.gzや*.tar.bz2という形式のソースアーカイブからRPMパッケージを作成したいのですが。</para></question>
1145                                <answer><para>基本的には、<ulink url="making-rpm.html">RPMパッケージの作成</ulink>を参照してください。</para>
1146                                        <para>ただし、それらの圧縮ファイルにspecファイルが含まれていると<command>rpmbuild</command>コマンドの<option>-t</option>を利用して再構築できる場合があります。</para>
1147                                        <screen>$ <command>rpmbuild -ta packagename-version.tar.gz</command></screen>
1148                                        <para>この例の場合は、再構築が成功した場合、バイナリRPMとソースRPMの両方が作成されます。</para>
1149                                </answer>
1150                        </qandaentry>
1151                        <qandaentry>
1152                                <question><para>『RPMパッケージの作成』を読みましたが、よく分かりません。個人的に使うアプリケーションを簡単にRPMパッケージにする方法はありませんか?</para></question>
1153                                <answer><para>将来のメンテナンスを考えると個人的に使うアプリケーション等であってもRPMの管理下に置いた方が便利でしょう。</para>
1154                                        <para>rpm で配布されていないもの、spec ファイルの無いもの でも、インストール用のシェルスクリプト や Makefile が用意されているものなら、<ulink url="http://asic-linux.com.mx/~izto/checkinstall/">CheckInstall</ulink> を利用すると rpm としてインストールできます。ソースアーカイブにインストール用の Makefile や シェルスクリプト があっても、アンインストール用のものは用意されていないことも多いですが、CheckInstall を利用すると、アンインストールが簡単にできるようになります。</para>
1155                                        <para>CheckInstallは、VinePlusに用意されていますのでroot権限で以下のコマンドを実行してください。</para>
1156                                        <screen>$ sudo <command>apt-get install checkinstall</command></screen>
1157                                        <para>使い方は、<screen>$ sudo <command>make install</command></screen>とする代わりに<screen>$ sudo <command>checkinstall</command></screen>を実行する場合や<screen>$ sudo <command>sh install.sh</command></screen>の代わりに<screen>$ sudo <command>checkinstall sh install.sh</command></screen>を実行する場合などがあります。詳細については、CheckInstallに付属のドキュメントを参照してください。</para>
1158                                </answer>
1159                        </qandaentry>
1160                </qandaset>
1161        </sect2>
1162</sect1>
1163</chapter>
1164
1165<!--
1166vi:syntax=docbkxml
1167-->
Note: See TracBrowser for help on using the repository browser.