.deb
ファイルを持たない.desktop
ソフトウェアがあります、私はそのファイルを作成しました。そのソフトウェア用に別のパッケージを作成したいのですが、ユーザーがそれをインストールすると、.desktop
ファイルが自動的に生成され、/usr/share/applications/
に配置されます。
どうすればいいですか?
.deb
アーカイブを抽出し、.desktop
ファイルを追加して、パッケージを再構築するだけのようです。これはかなり単純なプロセスです。抽出するには:
dpkg-deb -R package.deb extract_dir
注-R
は、制御ファイルも取得するための生の抽出です。次に、/usr/share/applications/
がまだ存在しない場合は、作成します。
mkdir -p extract_dir/usr/share/applications/
次に、.desktop
ファイルを追加して(名前がインストールする可能性のある他のものと競合しないように注意してください)、再構築します。
cp desktop_file.desktop extract_dir/usr/share/applications/
dpkg-deb -b extract_dir package_new.deb
dpkg-deb -b extract_dir .
を使用して、正規名でパッケージを作成することもできますが、最初にオリジナルを邪魔にならない場所に移動する必要があります。そうしないと、破損してしまいます。
そのパッケージを作成すると、ユーザーがインストールした後にスクリプトを実行したり、いくつかのコマンドを実行したりできます。これは、ソースパッケージのdebianフォルダーにある「postinst」シェルスクリプトの使用です。これから、.desktopファイルを生成するか、他のことを行うことができます。
'postinst':これは、パッケージのインストール後に(順番に)実行されるすべてのコマンドを含む通常のシェルスクリプトです。 dpkgはこれを自動的に実行します。
したがって、ソースパッケージをバイナリパッケージにパックする前にシェルスクリプトを作成し、「postinst」という名前を付けて、debianディレクトリに配置するだけです。
詳細を読む: https://askubuntu.com/questions/101962/script-to-only-execute-during-first-install-of-a-package