ファイルを/usr/local/Java/jre/lib/ext
にインストールするdebianパッケージがあります。ここで、/usr/local/Java
は、jvmが実際にインストールされている場所(この場合は/usr/lib/jvm/Java-6-Sun
)へのシンボリックリンクです。
このパッケージの新しいバージョンは、jarを別の場所にインストールします。問題は、新しいバージョンをインストールすると、dpkgがそれ自体の後で整理しようとし、最終的に/usr/local/Java
シンボリックリンクが削除されることです。
これは、一時的であっても、非常に望ましくない状態です。
シンボリックリンクをそのままにしておくように説得するdpkgのフラグを見つけることができませんでした。また、シンボリックリンクに不変ビットを設定することはできないようです。
Debianパッケージ設定の変更は次のとおりです。
diff --git a/debian/dirs b/debian/dirs
--- a/debian/dirs
+++ b/debian/dirs
@@ -1 +1 @@
-usr/local/Java/jre/lib/ext
+usr/share/Java
diff --git a/debian/rules b/debian/rules
--- a/debian/rules
+++ b/debian/rules
@@ -30,7 +30,7 @@ install: build
# Add here commands to install the package into debian/tmp.
# $(MAKE) pure_install
- cp thejar.jar $(TMP)/usr/local/Java/jre/lib/ext
+ cp thejar.jar $(TMP)/usr/share/Java
# Build architecture-independent files here.
binary-indep: build install
usr/local/Java/jre/lib/ext
をdirs
に残しておくと望ましい効果が得られると思いますが、これは問題を解決するだけです。このパッケージがシンボリックリンクの維持に責任を負わないようにしたいと思います。
だから:私のオプションは何ですか?
シンボリックリンクはパッケージがインストールする単なるファイルであるため、通常の動作が適用されます。これらは私が考えることができるオプションです:
古いバージョンがアンインストールされると、シンボリックリンクが指すものはすべて削除されるため、これによってどのように改善されるかはわかりません。
Dpkg> 1.15.8の場合は、/etc/dpkg/dpkg.cfg.d/excludes
に次のデータを入力してみてください。
path-exclude=/usr/local/Java/jre/lib/ext
出典: dpkgで不要なファイルを除外してディスク容量を節約|RaphaëlHertzog 。
Archユーザーの場合、/ etc /pacman.confでNoExtract =を使用し、パスから先頭のスラッシュを除外します。 ArchWiki またはman pacman.conf
を参照してください。