[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:12768] Re: overwrite essential package



From: Daisuke Yamashita <yamad@xxxxxxxxxxxxxxxx>
Subject: [debian-users:12759] overwrite essential package
Date: Thu, 11 Feb 1999 19:44:37 +0900

> deb ファイルを作成して、dpkg -i fileutils-ja_3.16-1_i386.deb と
> やりましたが、当然、本家 fileutils と conflict するので、
> dpkg --force-conflicts -i fileutils-ja_3.16-1_i386.deb
> と、インストールしてしまいましたが、上手く本家パッケージを
> override するような方法というのはあるのでしょうか?
> Essential パッケージは remove も出来ないようなので。

packaging-manual の第 11 章 "Diversions" を参考にされるといいと思います。

実物を見せてもらったわけではないのでわかりませんが、多分、このパッケージ
には、実行バイナリと日本語メッセージ以外は、本家の fileutils と同じもの
がそのまま入っているのではないでしょうか(manpage や、他国語のメッセージ
など)。

そこで、パッチを当てた実行バイナリと日本語メッセージ「のみ」のパッケージ
を作成して、実行バイナリを divert させれば何とかできそうではあります。

ただ、この調子で *-ja というパッケージをどんどん増やしていくと、かえって
混乱してきて、とっつきやすくなるように、との配慮がかえってあだになりかね
ませんね。

さらに、それ以前に packaging-manual によれば、

| Do not attempt to divert a file which is vitally important for the
| system's operation - when using `dpkg-divert' there is a time, after
| it has been diverted but before `dpkg' has installed the new version,
| when the file does not exist.

ということなので、普段よく使う(ので日本語メッセージの作りがいがある)基本
的なコマンドなんかを divert すると何が起こるかわかりません。

…というわけで、一見単純ながら、実は非常に複雑な問題です。

さらに、このように翻訳されたメッセージをどこに入れるか、というポリシーが
本家でもまったく決まっていないという問題もあったりします。

ただ、現在のところは、ほとんどの場合各国語のメッセージはすべてパッケージ
と一緒にインストールされるようになっているので、パッチとメッセージを 
Debian の fileutils パッケージに取り込んでもらうのが、「つなぎとしては」
一番スマートだと思います。もちろん「つなぎ」ではない方法は言うまでもあり
ません。

--
Keita Maehara <maehara@debian.or.jp>