| 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 © 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: <package>
|
| 753 |
Pin: <pin definition>
|
| 754 |
Pin-Priority: <pin's priority>
|
| 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: <enter package name; defaults to equivs-dummy>
|
| 915 |
Version: <enter version here; defaults to 1.0>
|
| 916 |
Maintainer: <your name and email address; defaults to username>
|
| 917 |
Pre-Depends: <packages>
|
| 918 |
Depends: <packages>
|
| 919 |
Recommends: <packages>
|
| 920 |
Suggests: <package>
|
| 921 |
Provides: <(virtual)package>
|
| 922 |
Architecture: all
|
| 923 |
Copyright: <copyright file; defaults to GPL2>
|
| 924 |
Changelog: <changelog file; defaults to a generic changelog>
|
| 925 |
Readme: <README.Debian file; defaults to a generic one>
|
| 926 |
Extra-Files: <additional files for the doc directory, comma separated>
|
| 927 |
Description: <short description; defaults to some wise words>
|
| 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 <tom@trap.mtview.ca.us>
|
| 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 <russell@coker.com.au>
|
| 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 <vincent@debian.org>
|
| 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 <yooseong@debian.org> - 本マニュアルを韓国語に翻訳して
|
| 1482 |
くれました。
|
| 1483 |
|
| 1484 |
<p>
|
| 1485 |
Michael Bramer <grisu@debian.org> - 特定バージョンの保持の節を含める
|
| 1486 |
ように提案してくれました。
|
| 1487 |
|
| 1488 |
<p>
|
| 1489 |
Bryan <Stillwell bryan@bokeoa.com> - 各種パッチや修正などを私に
|
| 1490 |
送ってくれました。
|
| 1491 |
|
| 1492 |
<p>
|
| 1493 |
Pawel Tecza <pawel.tecza@poland.com> - 各種修正を送ってくれ、また
|
| 1494 |
ポーランド語に翻訳してくれました。
|
| 1495 |
|
| 1496 |
<p>
|
| 1497 |
Pablo Lorenzzoni <spectra@debian.org> - netselect に関する節を
|
| 1498 |
執筆してくれました。
|
| 1499 |
|
| 1500 |
<p>
|
| 1501 |
Steve Langasek <vorlon@netexpress.net> - 本マニュアルを英語に
|
| 1502 |
翻訳してくれました。
|
| 1503 |
|
| 1504 |
<p>
|
| 1505 |
Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 現在 APT を
|
| 1506 |
含んでいるディストリビューション - Mandrake, PLD, Vine - をリストに
|
| 1507 |
追加してくれました。
|
| 1508 |
|
| 1509 |
<p>
|
| 1510 |
Erik Rossen <rossen@freesurf.ch> - dpkg -l での COLUMNS の使用という
|
| 1511 |
tips を提供してくれました。
|
| 1512 |
|
| 1513 |
<p>
|
| 1514 |
Ross Boylan <RossBoylan@stanfordalumni.org> -
|
| 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>
|