Ubuntuパッケージ(.deb)推奨インストールフォルダとバイナリ名


0

自分用にビルドした実行可能jarの.debファイルをビルドしています。.debをビルドして、プログラムをにインストールしました/usr/bin

jarファイルを持っているので、という実行可能ファイルがありました/usr/bin/mylovelyprogram.jar。ディレクトリ内の他のファイルには拡張子がないことに気付きました。

今、私は拡張機能を持っているかどうかは重要ではないことを知っていますが、私のプログラムが際立っていたので気にしました。パッケージ化された実行可能ファイルの名前を変更しjarsて、拡張子がなくなるようにするのが普通だったのだろうか?または、他の標準がある場合、たとえばjarを別の場所に置き、シンボリックリンクを使用しますか?可能な場合は既存の標準に準拠したいので、主にプログラムを配布することに決めた場合に悪い習慣に陥ることはありません。

回答:


1

ローカルパッケージ(ネットワークインストール全体ではなく、1台のコンピューターに固有のもの)の「標準」UNIXロケーションは/ usr / localです

多くのLinuxディストリビューションは、この標準を破り、すべてを/ usrにダンプすることを選択します。(一部のアプリケーションがルートパーティションを埋めようと決めたとき、それは嫌いではありませんか?

jarファイルは事実上ライブラリであり、/ usr / local / lib / myapp /のような場所にある必要があります

Java仮想マシンを使用してjarファイルを呼び出す小さなスクリプトが/ usr / local / binにあるはずです。

#!/bin/sh
java -jar /usr/local/lib/myapp/myjar.jar $*

そしてもちろん、/ usr / local / binが$ PATHにあることを確認する必要があります

この配置により、ソフトウェアがオペレーティングシステムソフトウェアと混ざるのを防ぎ、十分なスペースがあるはずのパーティションに保持します。また、Linux以外のシステムにもうまく適合します。Javaであるため、実行されることを完全に期待していますか?それは、結局のところJavaの要点ですね。クロスプラットフォーム?


.debで/ usr / local / lib / myapp /にインストールするように再構築しました-アドバイスありがとうございます。ただし、パッケージの削除をテストすると、「dpkg:directory '/ usr / local / lib' not empty empty not not remove」という警告が表示されました。(および他のいくつかの同様の警告)。dpkgがそのディレクトリを削除しようとさえしたくない(明らかな理由で!)
ピーター

1

/usr/binほとんどの場合、他のファイルはJavaアプリケーションではありません。

jarはそれ自体が実行可能ファイルではないため、実行可能ファイルで開いて実行する必要がありjavaます。ダブルクリックするとjava -jar your.jar、バックグラウンドで(実行の)魔法が実行されます。

あなたのjarファイルはに属していません/usr/bin/opt/yourapp賢くなります。参照してくださいここでこの質問を

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.