.deb
を使用して作成したファイルを使用してインストールしたいファイルがありますequivs-build
。私が理解できないのは、ファイルに必要な構文です.equivs
。
これは私のファイルレイアウトです。
myapp.equivs
myapp/
files/
script.sh
私が言いたいのは、equivs-build
設定script.sh
ファイルがにあることです/usr/share/myapp/script.sh
。私はいくつかのテストをしましたが、次の構文のどれもFiles
期待どおりに機能しないようです。
テスト1
Files: ./myapp/files/script.sh /usr/share/myapp/script.sh
結果:ファイルがにインストールされました/usr/share/myapp/script.sh/myapp/files/script.sh
。
テスト2
Files: ./demo/files/script.sh /usr/share/myapp/
結果:ファイルがにインストールされました/usr/share/myapp/myapp/files/script.sh
。
テスト3
Files: ./demo/files/script.sh /usr/share/myapp
結果:ファイルがにインストールされました/usr/share/myapp/myapp/files/script.sh
。
すべての場所にファイルをインストールするようにquivs-buildにどのように指示しますか?
答え1
私も同じ問題があります。私の考えでは、Equivsは非常にシンプルなパッケージを作るために作られたと思います。より深いソースディレクトリ構造を持つパッケージではありません。
回避策として、次のようにequals-build perlスクリプトを「修正」しました。
/usr/bin/equivs-build
(約70行目):
die "Cannot parse Files line: '$_'\n" unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
#$install_files{"$2/$1"} = $1;
$install_files{"$2"} = $1; # do not append source path to target path
これで、制御ファイルのファイル名を使用して完全なソースパスとターゲットパスを指定できます。つまり
Files: opt/sounds/test.wav /opt/sounds/test.wav
opt/sounds/test4.wav /opt/sounds/default.wav
この方法では、深いソースディレクトリ構造を使用できます。ボーナスとして必要な場合は、別の宛先ファイル名を指定することもできます。
お役に立てば幸いです。