現在 aptitude
は APT のコンソール版のフロントエンドと
みなされています。過去にインストールしたパッケージと依存性を通じて
引っ張って来たパッケージを故意に記憶しています。
故意にインストールしたパッケージによりもはや必要とされなくなった場合、
後者のタイプのパッケージは aptitude
により自動的に
削除されます。先進的なパッケージフィルタ機能を持ちますが、設定するのは
難しいでしょう。
現在 synaptic
は APT の Gtk 版 GUI フロントエンドと
みなされています。 aptitude
よりも設定しやすいパッケージフィルタ機能を持ちます。 又、Debian Package Tags
を実験的にサポート しています。
Debian のリポジトリへのネットワーク負荷を低減し、ダウンロードを 高速化するためには、パッケージを Debian のミラーサイトから ダウンロードすべきです。
ローカルネットワーク内の複数のマシンに同じパッケージをインストール
する必要がある場合、APT を通じたパッケージのダウンロードのために
squid
を使ってローカルの HTTP プロキシを立ち上げる
ことができます。必要ならば、http_proxy 環境変数を設定 したり、
/etc/apt/apt.conf
に http 値を 設定してください。
apt_preferences(5)
に記載された pin
機能は強力ですが、その影響について理解や管理がしずらい場合が
あります。これを先進的な機能とみなすべきです。
chroot
, 第 8.6.35 節
に記載された手法を用いることは、
システムの安定性と最新版のソフトウエアへのアクセスの両方を確保できる
ために、望ましい手法です。
本章は Woody 以後のシステムに準拠していますが。 いくつかの機能は Sarge 以後であることを要求するかもしれません。
もし全てのデベロッパー向けのドキュメンテーションを読むのが辛いなら、本章を まず読み、Debian の testing/unstable によるフルパワーを 楽しみ始めてください :-)
dpkg – Debian パッケージファイルインストーラ apt-get – APT のコマンドラインフロントエンド aptitude – APT の先進的なコンソール版コマンドラインフロントエンド synaptic – APT の Gtk GUI フロントエンド dselect – メニュドリブンなパッケージマネージャ tasksel – タスクインストーラ
これらはお互いに置き換わるものではありません。 例えば、dselect
は
APT も dpkg
も使用しています。
APT は 取得可能なパッケージを追跡するために /var/lib/apt/lists/*
を使いますが、 dpkg
は /var/lib/dpkg/available
を使います。 aptitude
や他の APT
のフロントエンドを使ってパッケージを インストールしてきて、インストールに
dselect
を使いたい場合、まず 最初にすべきことは
dselect
のメニュから [U]pdate を選択する (又は
"dselect update" を起動する) ことです。
apt-get
は自動的にインストールを要求したパッケージに Depends する
パッケージをインストールします。インストールを要求したパッケージに単に
Recommends や Suggests するパッケージはインストールしません。
一方、aptitude
はインストールを要求したパッケージに Recommends や
Suggests するパッケージをインストールするように設定できます。
dselect
は選択したパッケージが Recommends や Suggests
するパッケージ
のリストをユーザに提供し、それらを個別にインストールするかどうかを選択できます。
パッケージの依存性, 第 2.2.8 節
参照。
dpkg-reconfigure - 既にインストールしたパッケージを再設定する (debconf を使っている場合) dpkg-source - source パッケージファイルを管理する dpkg-buildpackage - パッケージファイルの構築を自動化する apt-cache - ローカルキャッシュにあるパッケージアーカイブをチェックする
アップグレードの準備, 第 5.2
節 に記述されているように sources.list
を設定しましょう。 [34] Debian システムインストールのヒント, 第 3 章, stable, testing, 又は
unstable ディストリビューションへのアップグレード, 第 5 章, や
緊急用エディタ, 第 11.2 節
でも言及しています。
特定の使用目的で Debian システムに入れ込むために要求される主要な パッケージ群をインストールできます。 これらのパッケージ群は "task" と呼ばれます。
最初のインストール時に task をインストールする最も単純な方法は
tasksel
を使用することです。 使用前に
dselect update
を起動させる必要がある ことに注意してください。
aptitude
も task をインストールでき、この目的に
用いるために推奨できるツールです。 インストールの手順に進む前に task
内の個別のパッケージを削除 することを可能とします。
aptitude
aptitude
は dselect
に似たメニュドリブンな新しい
パッケージインストーラですが、APT の上に 1 から構築されています。
apt-get
の代わりのコマンドラインコマンドとしても使えます。
aptitude(1)
と /usr/share/doc/aptitude/README
をご覧ください。
いったん aptitude
を使いはじめたら、他のパッケージを
インストールする手段を用いずに使い続けるのが良いでしょう。
そうでないと意図してインストールしたパッケージを追跡するという
aptitude
の利点を失ってしまいます。
aptitude
はフルスクリーンモードで通常小文字の 1文字の
キーコマンドを受け付けます。言及しておくべきキーストロークをいくつか 示します。
キーストローク アクション F10 メニュ ? キーストロークヘルプを表示 u パッケージアーカイブ情報を更新 + パッケージをアップグレードするか新たにインストールするとしてマークする - パッケージを削除するとしてマークする (設定はそのまま) _ パッケージを purge するとしてマークする (設定も削除) = パッケージを hold する U 全てのアップグレード可能なパッケージをアップグレードするとしてマークする g 選択パッケージのダウンロードおよびインストール q 現在のスクリーンを終了し、変更点を保存する x 現在のスクリーンを終了し、変更点を無視する Enter パッケージの情報を閲覧 C パッケージの変更履歴を閲覧 l 表示されたパッケージの制限を変更 / 単語検索 \ 最後の検索を繰り返す
apt-get
のように、aptitude
は選択したパッケージが
Depends するパッケージをインストールできます。aptitude
も
インストールされるパッケージが Recommends したり Suggests する
パッケージを引っ張って来るようなオプションを提供します。 メニュで F10
-> Options -> Dependency handling を選択することにより、
標準の挙動を変更できます。
aptitude
の他の利点には次があります。
aptitude
はパッケージの全バージョンにアクセスできます。
aptitude
は /var/log/aptitude
に行動を全て記録しています。
aptitude
は "Obsolete and Locally Created Packages"
の下に リストすることにより、時代遅れのソフトウェアを追跡するのを簡単にします。
aptitude
には特定のパッケージを検索したりパッケージ表示を
制限するためのかなり力強いシステムが含まれます。mutt
に親しんだ
ユーザは、mutt から expression syntax の着想を取り込んだので、すぐに使える
ようになるでしょう。 /usr/share/doc/aptitude/README
の
"SEARCHING, LIMITING, AND EXPRESSIONS" をご覧下さい。
aptitude
はフルスクリーンモードでは su
の機能が
組み込んであり、本当に管理者権限が必要となるまでは通常のユーザから起動
できます。
dselect
Potato を含む stable リリースまでは、dselect
は主要なパッケージ管理ツールでした。 Sarge では、aptitude
を代わりに使うことを考慮すべきです。
dselect
を起動すると、自動的に "Required",
"Important", および "Standard"
パッケージの全てを選択します。
dselect
はいくらか奇妙なユーザインターフェースを持ちます。
ほとんどの人は慣れますが、4 個のコマンドがあります。 (大文字は大文字で入力
することを示します!)
キーストローク アクション Q 終了。現在の選択を認め、とにかく終了する。 (依存性を上書きする) R 戻る! 悪気はありません。 D しまった! dselect が考えていることは分かりません。 U 全てを推奨される状態にセットする。
D や Q により、リスクを負って衝突した選択を 選ぶことができます。これらのコマンドを注意深く扱ってください。
雑音を減らすために、 "expert" オプションを含む行を
/etc/dpkg/dselect.cfg
に追加してください。
あなたのマシンでは dselect
の動きが遅い場合、
インストールしたいパッケージを決定するために他の (高速な) マシン で
dselect
を起動して、実際にインストールするためには 低速なマシンで
apt-get install を使うことを考えた方が 良いかもしれません。
testing ディストリビューションの変更を追いかけることには、 セキュリティ修正を含むパッケージのインストールが遅れるという副作用 がありうることに注意してください。 そのようなパッケージはまず unstable にアップロードされ、 遅れて testing に移動してきます。
例えば、unstable から選択したパッケージをインストールしながら
testing を追いかけることを許可するようなより複雑な例については
apt_preferences(5)
をご覧ください。
他のパッケージを追いかけながら特定のバージョンであるパッケージをロックする
例については、examples subdirectory
に
preferences.testing
や preferences.unstable
として得られます。
ディストリビューションを混在させる、すなわち stable と
testing を一緒にしたり、 stable と
unstable を一緒にすると、 結果的には testing や
unstable から libc6
のような主要なパッケージを
引っ張って来てしまうでしょう。これらにはバグが含まれていないと保証
できません。警告しておきます。
もう一つの例として、preferences.stable
は全てのパッケージの
stable へのダウングレードを強制します。
新しいリリースの package を古いリリースのものに
ダウングレードすることは Debian では公式にサポートされていません。
しかしながら、新しいバージョンがうまく動かないので、うまく動くバージョンの
パッケージを再インストールする目的で特定のパッケージをダウングレード
する必要があることが判明するかもしれません。
これらの以前インストールしていたパッケージファイルはローカルの
/var/cache/apt/archives/
又は リモートでは http://snapshot.debian.net/
に見つかるかもしれません。 dpkg
を用いたレスキュー, 第 6.3.3 節 もご覧下さい。
新しいリリースの ディストリビューション を古いリリースのものに ダウングレードすることも Debian では公式にサポートされていませんし、 問題を引き起こすでしょう。しかしながら、絶望に駆られた場合に 最後の手段として試す価値はあるかもしれません。
aptitude
, apt-get
と apt-cache
コマンド上の例に記述されたように testing を追いかける間、 次のコマンドを用いてシステムを管理できます。
これらは testing ディストリビューションを追いかけます — システム上のパッケージをそれぞれアップグレードし、 その後インストールパッケージが依存するパッケージを testing ディストリビューションからのバージョンをインストールします。 [35]
これは testing ディストリビューションを追いかけます。—
システムの各パッケージを dselect
の選択に従って更新します。
testing ディストリビューションから package と このパッケージに Depends するパッケージをインストールします。
testing ディストリビューションから package と このパッケージに Depends するパッケージと Recommends 又は Suggests する パッケージをイントールします。
unstable ディストリビューションから package をインストールし、testing ディストリビューションから 依存するパッケージをインストールします。
unstable の Pin-Priority を 990 にセットすることにより、 unstable ディストリビューションから package をインストールし、unstable ディストリビューションから このパッケージに依存するパッケージをインストールします。
これは foo bar ... パッケージのステータスをチェックします。
パッケージ foo bar ... に関する情報をチェックします。
foo パッケージの特定のバージョン 2.2.4-1 をインストールします。
foo パッケージをインストールし、bar パッケージを 削除します。
bar パッケージを削除しますが、設定ファイルは削除しません。
全ての設定ファイルと一緒に bar パッケージを削除します。
上の例では、apt-get
に -u オプションを与えると
アップグレードされる全てのパッケージのリストを表示し、次に取る行動を
ユーザに促します。 次の例は apt-get
が常にこの動作を取るようにします。
$ cat >> /etc/apt/apt.conf << . // Always show packages to be upgraded (-u) APT::Get::Show-Upgraded "true"; .
実際にインストール、削除などをあらゆるパッケージに対して行わずに 同様の行動を取るには、--no-act を使用してください。
本章の知識により、永遠の upgrade 生活をすごせます。 :)
特定のパッケージに関する問題に直面している場合、助けを求めたり、
バグレポートを出す前にこれらのサイトをチェックしましょう。 (lynx
,
links
, および w3m
は 同じように機能します)。
$ lynx http://bugs.debian.org/ $ lynx http://bugs.debian.org/package-name # パッケージ名を知っている場合 $ lynx http://bugs.debian.org/bugnumber # バグ番号を知っている場合
"site:debian.org" を含む検索語により Google (www.google.com) を検索して みてください。
疑問がある場合は、良質のマニュアルを読んでください。CDPATH を 次のように設定してください。
export CDPATH=.:/usr/local:/usr/share/doc
そして次を実行してください。
$ cd packagename $ pager README.Debian # 存在する場合 $ mc
さらなるサポートリソースを Debian のサポート, 第 15 章 に挙げます。
パッケージの依存性問題は アップグレード, 第 5.3 節 に記述したように unstable 又は testing にアップグレードする場合に 発生する可能性があります。 ほとんどの場合、これはそのパッケージがまだ得られないパッケージに Depends しているためです。 これらの問題は次の手順を用いて解決できます。
# aptitude dist-upgrade
これが動かない場合、問題が解決するまで次のコマンドを繰り返し実行して ください。
# aptitude -f upgrade # エラーが起きても upgradeを続ける ... 又は # aptitude -f dist-upgrade # エラーが起きても dist-upgrade を続ける
時々本当に壊れたアップグレードスクリプトにより持続的な問題を起こすことがあります。この種の状況を解決するには、/var/lib/dpkg/info/packagename.{post,pre}{inst,rm}
スクリプトを調べ、次を実行するのがよいでしょう。
# dpkg --configure -a # 部分的にインストールされたパッケージを全て設定
スクリプトに設定ファイルが無いと言っている場合、対応する設定ファイルに対して
/etc/
を調べてください。.new (又は同種の) 拡張子
を持つファイルが存在する場合、mv
して拡張子を削除してください。
パッケージの依存性問題は unstable 又は testing に インストールする場合に発生する場合があります。依存性を迂回する手段があります。
# aptitude -f install package # 壊れた依存性を上書きする
これらの状況を修正するための代替手段として、equivs
パッケージを使えます。 /usr/share/doc/equivs/README.Debian
と equivs
パッケージ, 第 6.5.2 節
をご覧ください。
dpkg
を用いたレスキュー
APT を用いて行き詰まった場合、Debian のミラーからパッケージを
ダウンロードし、dpkg
を用いてインストールできます。
ネットワークにアクセスできない場合、/var/cache/apt/archives/
にあるパッケージファイルのキャッシュを探せます。
# dpkg -i fetchmail_6.2.5-4_i386.deb
依存性の衝突によりこのようにパッケージをインストールするのを失敗してしまい、
本当のそのパッケージをインストールする必要がある場合、 dpkg
の
--ignore-depends, --force-depends,
や他のオプションを用いて依存性のチェックを上書きすることができます。 詳細は
dpkg(8)
をご覧下さい。
/var/lib/dpkg/status
がなんらかの理由で壊れた場合、 Debian
システムはパッケージ選択データを失い、ひどく苦しみます。
/var/lib/dpkg/status-old
や/var/backups/dpkg.status.*
にある古い /var/lib/dpkg/status
ファイルを探してください。
このディレクトリが多くの重要なシステムデータを含んでいるので、
別のパーティションに /var/backups/
を保持するのは良い考えです。
古い /var/lib/dpkg/status
ファイルが得られない場合、まだ
/usr/share/doc/
にあるディレクトリからの情報で回復できます。
# ls /usr/share/doc | \ grep -v [A-Z] | \ grep -v '^texmf$' | \ grep -v '^debian$' | \ awk '{print $1 " install"}' | \ dpkg --set-selections # dselect --expert # システムを再インストールし、必要ない物を除外する
/var
のクラッシュ後のシステム回復
/var
ディレクトリはメールなどの定期的に更新されるデータを
含むので、汚染されやすくなっています。このディレクトリを別のパーティションに
分けることにより、リスクを限定できます。故障が発生した場合、 /var
ディレクトリを再構築して Debian システムを回復 する必要があるかもしれません。
最小限 Debian が機能する /var
ディレクトリの基幹部分を同一又は古い
Debian バージョンから、例えば
などを取得し、壊れたシステムの root ディレクトリに置きます。そして
var.tar.gz
# cd / # mv var var-old # 役に立つ内容が残っている場合 # tar xvzf var.tar.gz # Woody の基幹ファイルを使用 # aptitude # 又は dselect
を実行します。これによりシステムが機能するようになるはずです。 パッケージ選択データの回復, 第 6.3.4 節 に記述している技術を用いてパッケージ選択データ の回復をはかどらせることができます。 ([FIXME]: 本手順はさらなる検証が必要。)
Debian レスキューフロッピ/CD 又は マルチブート Linux システム上の別の
パーティションを用いて Linux をブートしてください。 システムをブートする, 第 8.1 節 参照。
ブート不可能なシステムを /target
にマウントし、dpkg
の chroot インストールモードを使用します。
# dpkg --root /target -i packagefile.deb
そして設定を行い、問題を修正します。
ところで、lilo
が壊れてブート不能になった場合、標準の Debian
レスキューディスクを用いてブートできます。 Linux をインストールしてある root
パーティションを /dev/hda12
と仮定し、ランレベル 3
で起動したいとすると、lilo のプロンプトで次を 入力してください。
boot: rescue root=/dev/hda12 3
こうしてフロッピディスク上の kernel を用いてほぼ完全に機能するシステムに ブートできます。(kernel の機能やモジュールがないことによる些細な不都合が 存在するかもしれません。)
dpkg
コマンドが壊れた場合どうするか
dpkg
が壊れると .deb
ファイルがインストール不能になります。
次の手順によりこのような状況からの回復の助けになります。(第 1 行の
"links" を好みのブラウザコマンドに置き換えてください。)
$ links http://http.us.debian.org/debian/pool/main/d/dpkg/ ... 良好な dpkg_version_arch.deb をダウンロード $ su password: ***** # ar x dpkg_version_arch.deb # mv data.tar.gz /data.tar.gz # cd / # tar xzfv data.tar.gz
i386 に対しては、http://packages.debian.org/dpkg が URL としても使われます。
これらのコマンドを 愉しむ と、永遠のアップグレード地獄から救い出し、Debian の 涅槃 に導くことができます。:)
ある特定のファイル名のパターンがどのインストール済みパッケージに 所属するかを見つけるには以下を実行します:
$ dpkg {-S|--search} pattern
もしくは同様のことを Debian アーカイブ中で見付けるには以下を実行します:
$ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i386.gz $ zgrep -e pattern Contents-i386.gz
もしくは特別なパッケージコマンドを使います。
# aptitude install dlocate # slocate (locate の安全版) と衝突する $ dlocate filename # dpkg -L と dpkg -S の高速な代替品 ... # aptitude install auto-apt # オンデマンドのパッケージインストールツール # auto-apt update # autp-apt 用の db ファイルを作成 $ auto-apt search pattern # インストールされているかに係わらず、全パッケージをパターン検索
パッケージアーカイブから情報を検索し、表示します。
/etc/apt/sources.list
を編集して APT が適切なアーカイブを
指すようにしてください。 testing 又は unstable
にあるパッケージが現在インストール
しているパッケージに対してどうなっているかを知るには、 apt-cache
policy を使うのが良いでしょう。
# apt-get check # キャッシュを更新し、壊れたパッケージをチェック $ apt-cache search pattern # テキストの説明からパッケージ検索 $ apt-cache policy package # パッケージの priority/dist 情報を表示 $ apt-cache show -a package # 全 dists のパッケージ説明を表示 $ apt-cache showsrc package # マッチしたソースパッケージの説明を表示 $ apt-cache showpkg package # パッケージのデバッグ情報を表示 # dpkg --audit|-C # 部分的にインストールされたパッケージを検索 $ dpkg {-s|--status} package ... # インストール済みのパッケージの説明を表示 $ dpkg -l package ... # インストール済みパッケージのステータスを表示 (1行毎) $ dpkg -L package ... # 指定したパッケージに含まれるファイル名リストを表示
apt-cache showrc は Woody リリースではドキュメント化されていませんが、使えます :)
また、次に挙げるファイルからもパッケージ情報を検索できます(これらを見るのに mc を使っています)。
/var/lib/apt/lists/* /var/lib/dpkg/available
次のファイルを比較すると、最後のインストールセッションで何が起きたかが 正確に分かります。
/var/lib/dpkg/status /var/backups/dpkg.status*
キーボードに触らずにインストールするには、次の行を
/etc/apt/apt.conf
に追加してください。
Dpkg::Options {"--force-confold";}
これは aptitude -y install packagename を起動するのと
同じことです。これは全プロンプトについて自動的に "yes" で答えるので、
問題が発生するかもしれません。ゆえに慎重にこのトリックを使ってください。
apt.conf(5)
および dpkg(1)
をご覧ください。
インストール済みパッケージの再設定, 第 6.4.4 節 に従い、特定のパッケージを後で設定することもできます。
次のコマンドを使ってインストール済みパッケージの再設定を行います。
# dpkg-reconfigure --priority=medium package [...] # dpkg-reconfigure --all # 全パッケージの再設定 # dpkg-reconfigure locales # 特別なロケールの生成 # dpkg-reconfigure --p=low xserver-xfree86 # X サーバの再設定
debconf
ダイアログモードが永続的に必要な場合は、
debconf
を再設定してください。
特別な設定スクリプトを持つプログラムがいくつかあります。 [36]
apt-setup - /etc/apt/sources.list の生成 install-mbr - Master Boot Record manager のインストール tzconfig - ローカル time zoneゾーンの設定 gpmconfig - gpm マウスデーモンの設定 sambaconfig - Potato で Samba の設定を行う (Woody は debconf を使用) eximconfig - Exim (MTA) の設定 texconfig - teTeX の設定 apacheconfig - Apache (httpd) の設定 cvsconfig - CVS の設定 sndconfig - サウンドシステムの設定 ... update-alternatives - 標準のコマンドの設定、例えば vim を vi に設定 update-rc.d - System-V init スクリプトマネージャ update-menus - Debian menu システム ...
設定ファイルを維持したままパッケージを削除します。
# aptitude remove package ... # dpkg --remove package ...
設定ファイルを含め、パッケージを削除します。
# aptitude purge package ... # dpkg --purge package ...
例えば、libc6
と libc6-dev
を dselect
および aptitude install package に対して hold
するには、次を実行します。
# echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections
aptitude install package はこの "hold"
により隠されません。 aptitude upgrade package 又は
aptitude dist-upgrade に対する自動ダウングレードの強行から
パッケージを hold するには、 /etc/apt/preferences
に次の行を追加してください。
Package: libc6 Pin: release a=stable Pin-Priority: 2000
ここで、 "Package:" エントリは
"libc6*" のようなエントリを
使えません。glibc
ソースパッケージに同期したバージョンの
全バイナリパッケージを hold する必要がある場合、それらのパッケージを明示的に
挙げる必要があります。
次のコマンドにより hold されたパッケージのリストを表示できます。
dpkg --get-selections "*"|grep -e "hold$"
apt-show-versions
により、特定のディストリビューションによる
パッケージのバージョンをリストできます。
$ apt-show-versions | fgrep /testing | wc ... testing からのパッケージ数をカウント $ apt-show-versions -u ... アップグレード可能なパッケージ数 $ aptitude install `apt-show-versions -u -b | fgrep /unstable` ... 全ての unstable パッケージを最新バージョンにアップグレード
APT でパッケージをインストールすると、キャッシュされたパッケージファイルが
/var/cache/apt/archives
に残されるので、これらを消す必要が
あります。
# apt-get autoclean # 必要ないパッケージファイルのみ削除 # apt-get clean # キャッシュされたパッケージファイル全てを削除
パッケージ選択ステータスのローカルコピーを取るには、次を実行します。
$ dpkg --get-selections "*" >myselections # 又は \* を使用
"*" により、myselections が "purge" 用の パッケージエントリにも含まれるようになります。
このファイルを他のコンピュータに転送し、これを用いてインストール可能です。
# dselect update # dpkg --set-selections <myselections # apt-get -u dselect-upgrade # 又は dselect install
stable
システムの部分的なアップグレードのためには、ソースパッケージを 用いて
stable 環境でパッケージを再構築するのが望ましいです。
パッケージ再構築により、依存性による強引なパッケージアップグレードを避けることが
できます。まず、次のエントリを /etc/apt/sources.list
に追加します。
deb-src http://http.us.debian.org/debian testing \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US testing/non-US \ main contrib non-free deb-src http://http.us.debian.org/debian unstable \ main contrib non-free deb-src http://non-us.debian.org/debian-non-US unstable/non-US \ main contrib non-free
ここで、deb-src に対する各エントリは印刷時の制限のために 2行に分割
されていますが、実際の sources.list
は 1行としてください。
そしてソースを取得し、ローカルパッケージを作成します。
$ apt-get update # ソースパッケージの検索リストを更新 $ apt-get source package $ dpkg-source -x package.dsc $ cd package-version ... 要求されたパッケージを検査 (.dsc ファイル中の Build-depends) し、 それらもインストールする。"fakeroot" パッケージも必要。 $ dpkg-buildpackage -rfakeroot ...又は (サイン無し) $ dpkg-buildpackage -rfakeroot -us -uc #必要ならば後で "debsign" を使用 ...そしてインストール $ su -c "dpkg -i packagefile.deb"
普通、パッケージの依存性を満たすために "-dev" サフィックスが付く 2,
3個の パッケージをインストールする必要があります。debsign
は
devscripts
パッケージにあります。auto-apt
を使うと、依存性を簡単に満足させられるかもしれません。fakeroot
を使うと、root アカウントの不必要な使用を避けられます。
Woody では、依存性の問題は単純にできます。例えば、 ソースのみの
pine
パッケージをコンパイルするには、
# apt-get build-dep pine # apt-get source -b pine
だけです。
APT と dselect
システムとの互換性を持つローカルパッケージの
アーカイブを作成するには、Packages
を作成し、
特定のディレクトリツリーに置く必要があります。
公式の Debian アーカイブと同様のローカル deb リポジトリを次のように作成できます。
# aptitude install dpkg-dev # cd /usr/local # install -d pool # 真のパッケージはここに置きます # install -d dists/unstable/main/binary-i386 # ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override # editor override # priority と section を調整 # dpkg-scanpackages pool override /usr/local/ \ > dists/unstable/main/binary-i386/Packages # cat > dists/unstable/main/Release << EOF Archive: unstable Version: 3.0 Component: main Origin: Local Label: Local Architecture: i386 EOF # echo "deb file:/usr/local unstable main" \ >> /etc/apt/sources.list
代わりに、手早いけど汚いローカル deb リポジトリを次のように作れます。
# aptitude install dpkg-dev # mkdir /usr/local/debian # mv /some/where/package.deb /usr/local/debian # dpkg-scanpackages /usr/local/debian /dev/null | \ gzip - > /usr/local/debian/Packages.gz # echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
HTTP や FTP メソッドによりディレクトリへのアクセス手段を供給し、
/etc/apt/sources.list
にエントリを追加することにより、
これらのアーカイブへのリモートからのアクセスを可能にします。
alien
は Red Hat rpm 形式、Stampede slp
形式、Slackware tgz 形式、そして Solaris pkg
形式で供給される バイナリパッケージを Debian deb
パッケージ形式に変換することを 可能とします。他の Linux
ディストリビューションからのパッケージを
システムにインストールしているディストリビューションで使いたい場合、
alien
を使って使用中のディストリビューションのパッケージフォーマットに変換し、インストールできます。alien
は LSB パッケージもサポートします。
auto-apt
はオンデマンドのパッケージインストールツールです。
$ sudo auto-apt update ... データベースを更新 $ auto-apt -x -y run Entering auto-apt mode: /bin/bash Exit the command to leave auto-apt mode. $ less /usr/share/doc/med-bio/copyright # 存在しないファイルにアクセスする ... このファイルを供給するパッケージをインストールする ... 依存するパッケージもインストールする
debsums
は MD5
チェックサムを用いてインストールされたパッケージファイルの検証ができます。いくつかのパッケージは
MD5 チェックサムを得られません。
システム管理者が可能な一時的な修正はこのようなものです。
# cat >>/etc/apt/apt.conf.d/90debsums DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";}; ^D
Joerg Wendland joergland@debian.org
からのメールによる (未検証)。
sources.list
簡単に言うと、最適化された sources.list
を作成するための手の込んだ努力は USA
に住んでいる私にとってはあまり効果を生みませんでした。 私は
apt-setup
を使って近くのサイトを手動で選びました。
apt-spy
はレイテンシとバンド幅に基づいて自動で
sources.list
を作成します。 netselect-apt
はより完全な sources.list
を作成しますが、最適なミラーサイト
を選択する、より優れた方法 (ping 時間の比較) を使用しています。
# aptitude install apt-spy # cd /etc/apt ; mv sources.list sources.list.org # apt-spy -d testing -l sources.apt
dpkg-divert
コマンド
Diversions というファイルにより、dpkg
は
ファイルをインストールする時に本来意図していた場所ではなく、
退避した 場所にインストールするようになります。
Diversions は Debian パッケージスクリプトで衝突が起こりうる
ファイルを移動させるために使うことができます。システム管理者はパッケー ジ
の設定ファイルや他のファイルを (conffiles としてマーク
されていなければ) dpkg
が新しいバージョンのパッケージを
インストールする時にそれらのファイルを上書きしてしまわないようにするために
diversion を使うことができます。 (ローカル設定の保存, 第 2.2.4 節) 参照.
# dpkg-divert [--add] filename # "diversion" を追加 # dpkg-divert --remove filename # "diversion" を削除
本当に必要でない限り、dpkg-divert
を使わない方が
通常は良いでしょう。
equivs
パッケージソースからプログラムをコンパイルした場合、最も良いのは本当のローカルな debian 化したパッケージ (.deb) にすることです。 equivs を最後の手段として使います。
Package: equivs Priority: extra Section: admin Description: Debian パッケージの依存関係を偽るためのパッケージ これはダミーパッケージで、依存情報だけを含んだ Debian パッケージの 作成に使用することができます。
vi
コマンドが vim
を起動するようにするには、
update-alternatives
を使います。
# update-alternatives --display vi ... # update-alternatives --config vi Selection Command ----------------------------------------------- 1 /usr/bin/elvis-tiny 2 /usr/bin/vim *+ 3 /usr/bin/nvi default[*] を保つために Enter を打つか、selection 番号 2 をタイプしましょう。
Debian alternatives システムのアイテムは /etc/alternatives/
に
シンボリックリンクとして保持されています。
好みの X Window 環境を設定するには、update-alternatives
を
/usr/bin/x-session-manager
と
/usr/bin/x-window-manager
に適用します。 詳細は、X セッションのカスタマイズ, 第 9.4.5.1 節
を参照。
/bin/sh
は /bin/bash
又は /bin/dash
の直接のシンボリックリンクです。 古い Bashism
で汚染されたスクリプトとの互換性のため、 /bin/bash
を使う方が安全ですが、POSIX 互換性を強制するには、/bin/dash
を使うのがより良い訓練となります。 2.4 Linux kernel
にアップグレードすると、/bin/sh
を /bin/dash
にセットしがちです。
インストール直後は、ほとんどの Debian パッケージはサービスを ランレベル 2 から
5 まで起動するように設定します。 これゆえに、カスタマイズされていない Debian
システムではランレベル 2, 3, 4, と 5 には何の違いがありません。Debian
はローカルの管理者に任せています。 ランレベルのカスタマイズ, 第 2.4.3
節 に記述しているようにランレベルをカスタマイズすることを
ローカルの管理者に任せています。 これは他の有名な GNU/Linux
ディストリビューションにより用いられている ランレベルの方法とは異なります。
ブートシーケンスの終わりで X ディスプレイマネージャが起動されないように
ランレベル 2 で xdm
や gdm
を無効にしたい時が
来るかもしれません。 その時はランレベル 3 から起動するように変更できます。
ランレベルについてのより詳しい情報は ランレベル, 第 2.4.2 節 をご覧下さい。
Debian 開発者はシステムのセキュリティを深刻にとらえています。 多くのデーモンサービスは最小のサービスと機能を有効にして インストールされます。
デーモンサービス (Exim, DHCP など) に疑いを持った場合、 ps aux
を起動するか、/etc/init.d/*
や /etc/inetd.conf
の内容を調べましょう。 また、/etc/hosts.deny
( PAM を用いたログイン制限, 第 9.2.1 節
参照 )も調べましょう。 pidof
コマンドも役立ちます。
(pidof(8)
参照)
最近の Debian において、標準では X11 は TCP/IP 経由の遠隔接続を
許可していません。 TCP/IP 越しに X を使う, 第
9.4.6 節 参照 SSH での X フォワードも無効にされています。 リモートの X サーバに接続する –
ssh
, 第 9.4.8 節 参照
Debian リファレンス
CVS, 2005年 4月 3日 月曜日 22時59分00秒 UTC時間osamu@debian.org
tsuno@ngy.1st.ne.jp