[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:00324] dselect and dpkg-mountable
- From: nakahara@xxxxxxxxxxxxxxxxxxxxx (Hayao Nakahara)
- Subject: [debian-users:00324] dselect and dpkg-mountable
- Date: Mon, 31 Mar 1997 16:57:48 +0900 (JST)
- X-ml-count: 00324
- X-ml-driver: CMLD (Version 2.4.1-beta)
- X-ml-name: debian-users
- Message-id: <m0wBbyO-0001bRC@lemon>
中原です。
dselect に関する話題が続いていますので、いくつか思いついた亊を書いてみ
ます。いろいろな方のインストールに関するメモが WWW でアクセスできるよ
うですが、申しわけありませんが私はほとんど見ていません。よくしられてい
ることもあるかと思いますが御容赦ください。また以前述べたことをくりかえ
していることもあると思いますが御容赦ください。
*** dselect + dpkg-mountable について ***
dselect の選択画面が繁雑なのは皆同意することです。しかしパッケージの依
存関係のチェックには dselect は十分威力を発揮します。ただ、依存関係チェッ
クの画面でのキー操作 (Q,X,R,U,D) には少しは慣れておく必用があります。
(これが一番のハードルですが。私は Q と R しか覚えていません。)
また 1.1.X から 1.2.Y へや 1.2.X から 1.2.Y に upgrade する時などには
dselect に自動的にパッケージの選択をまかすのが楽です。今後 dselect が
どう改善されていくのかわかりませんが、dselect に少しは慣れて、使いやす
くする提言をしていくのも大事だと思います。
もう一つの dselect に対する不満、install が遅いというのは、改善されつ
つあります。ftp メソッドでは改善されています。mountable メソッドが
project/experimental にある dpkg-mountable パッケージで使用できます。
これを利用すると install の遅さは改善されます。(これは将来の dselect
には組みこまれると思います。) mountable メソッドでは install 時のログが
/var/log/dpkg-mountable に残るのも助かります。
さらに select の cdrom メソッド、nfs メソッドや mounted メソッド等では、
stable、non-free、contrib、local 毎にインストールするので依存関係が正
しくてもエラーがでるバグがありました。
よくある例としては ghostview と gs-aladdin を同時に選択すると、
ghostview がgs に依存していて、gs-aladdin が(virtual package) "gs" を
提供していて依存関係は問題ないのに、gs-aladdin が non-free セクション
なので、ghostview のインストール時に"gs" がないというエラーを出すとこ
とです。
mountable メソッドでは、一度にインストールを行うのでこのようなことに気
をつかう必用がなくなりました。
ただ、今の dpkg-mountable パッケージには、Pre-Depends をうまく扱えない
バグとか、dpkg --print-carchitecture に起因するバグとか、Filename フィー
ルドを扱いそこなうバグとかがあるのが難点です。
ある程度慣れた人は dpkg-mountable を使ってみてはいかがですか。
*** dpkg --set-selcetions について ***
また、dpkg には --get-selections とか --set-selections というオプショ
ンがあります。--get-selections オプションを使うと dselect の外でパッケー
ジの選択 (install, hold, delete, purge の指示) が出来ます。
dpkg --get-selections では標準出力に
adduser install
ae install
amd install
のような一覧表が出力されます。
また、Select-List というファイルが
xpdf install
pcmcia-cs hold
a2ps deinstall
amd purge
という内容のとき、
dpkg --set-selections < Select-List
とすると、dselect 選択画面で xpdf を install、pcmcia-cs を hold、
a2ps を remove、amd を purge したのと同じ状態になります。
ここで、dselect を起動し、Select に移りエンターキーを押して依存関係の
チェックをし、不足パッケージを dselect に選んでもらって、Install、
Config、Remove、Quit で update 完了です。
(ただし、上で述べた dselect のバグで mountable メソッドを使わないと、
一度にたくさんのパッケージを選択するとエラーが起ることがあります。)
mountable メソッドを使うと (Access で mountable という項目が増える。)
1 個のパッケージの install でもストレスなしで使用できます。
(私は、数個のパッケージの install、remove には dpkg を使いますが)
dpkg --get-selections、dpkg --set-selections と mountable メソッドを使
用すると、複数のマシンに debian をインストールする時や、再インストール
しなおす時に dselect の Select画面でインタラクティブに行なう場面を省略
できます。
また、dpkg --get-selection の出力の形で、おすすめパッケージ集を交換す
ると便利かもしれません。
*** dpkg --set-selections と dselect をつかって ***
私のところでは、数十台のマシンに debian がインストールされていますが、
dpkg --set-selections と dselect でしのいでいます。だいたいの雰囲気を
述べてみます。
* 一台のマシンで標準的なパッケージのインストールをします。
dpkg --set-selections > Select-List
等でパッケージの状態を保存しておきます。
基本的なもので、マシン依存なものは (xserver、kernel-image 等) は
標準 Select-List から除いておきます。(別のリストを用意したりします。)
他のマシンでは、
* (フロッピー等からインストールを開始し)、Reboot します。
* Reboot 後の最初の dselect では
* Access を適切に選択
* Update を行なう。
* Select では単に Enter。
依存関係チェックは dselect のいいなりにする (Enter を押す)
* Install を行う。
* Quit.
(本来この部分は不要なのですが、dpkg-mountable のバグで、今のバージョ
ンで最初から mountable メソッドを使うのは、慣れない人はやめた方がよ
いでしょう。)
* dpkg-mountable パッケージを (フロッピー、ftp 等で用意し)
dpkg -i dpkg-mountable_XXX.deb
でインストールする。
* dpkg --set-selections < Select-List
でパッケージを選択する。
マシン依存なパッケージを (xserver、プライベート kernel-image 等を)
dpkg --set-selections を使って選択します。
* 必用なら debian のディストリビューションのあるメディアを /mnt 等に
mount しておく。
* dselect を起動
* Access で mountable を選ぶ。
* Update
* Select では単に Enter.
依存関係チェックだけする。修正の必用があれば行う。
* Install
* Remove
* Quit
* mountable メソッドのバグで Install 時 Filename field が無いとかいう
メッセージがでるパッケージがあります。これらのパッケージはインストー
ルされないので、何度か Update からやりなおすとインストールされるよう
になるようです。
* なお、私のところではインストール時のインタラクティブな設定はなるべく
やらずに、設定ファイルをインストール前や後でバッチで書きかえるように
しています。
* あとは、各マシンのオーナごとの好みで、いくつかのパッケージを追加、削
除します。いくつかの好みにあわせて、
Select-List-basic
Select-List-expert
Select-List-NttTeX
Select-List-AV
などというファイルを用意しておけば楽です。
*** dselect を使って Update する時の注意 ***
自動的にアップデートされては困るパッケージは dselect で HOLD しておく
ことが大事です。
* pcmcia-cs パッケージ
PCMCIA を介してインストールしている途中に pcmcia-cs パッケージがアッ
プデートされると、ネットワークやディスクアクセスが中断されインストー
ルが失敗する。
* netscape パッケージ
対応する Linux 用 netscape の tar ファイルが /tmp にないといけないのだが、
アップデートする前に必用かどうかわからないので、大抵忘れている。
悪いことに、再インストールも失敗するような状態になることがある。
(この時は dpkg -i --force-depends などでインストールする。)
*** dpkg の --force-depends オプション ***
dselect とは直接関係ありませんが、(パッケージのバグで) 依存関係が満さ
れていないパッケージをインストールしたい時があります。
また、パッケージが remove も install もできない状態に陥いることが残念
ながら起こることがあります。その時は
dpkg -i --force-depends
や
dpkg -r --force-depends
等を使う必用がでてきます。--force-XXX を使ったインストールは dselect
では今のところできません。各種 --force-XXX オプションの一覧は
dpkg --force-help
で得られます。(このあたりが改善されないと、debian は難しいという評判
がでるでしょうね。)
--
中原 早生
広島大学総合科学部
nakahara@xxxxxxxxxxxxxxxxxxxxx