私は通常/tftpboot/linux/にインストールされているDebianパッケージを開発しています。このパッケージは、Debianベースのサーバーシステムであるユニバーサルコーポレートサーバー(UCS)にも配布されています。
他のディレクトリ(/var/lib/univention-client-boot)にはこれらのファイルが必要です。システムがUCSであることを認識するように適切なdebianファイルを調整し、ファイルをそのディレクトリに移動するか、このdebファイルのインストール中にそのディレクトリをリンクできますか?
答え1
dpkg
一緒に働くために必要なものを理解する人が必要です/
。そのような獣については聞いたことがありません。
これが単純な事故の場合は、パッケージの圧縮を特定の場所に手動で解くことができます。
dpkg-deb --extract whatever.deb /var/lib/univention-client-boot/
これは単にその場所をルートダンプアーカイブとして使用します。インストールされているパッケージのロギングはなく、事前/後インストールスクリプトは実行されません。
.debを直接ビルドする場合は、-UCS
そのシステム用に別々のバージョンを作成する必要があります(たとえば、ビルドに追加)。 .debをビルドする前に、準備領域に必要なディレクトリ構造を作成する必要があります。
答え2
.postinstスクリプトでこれを行うことができます。 UCSサーバーにインストールされていることを確認し、必要なディレクトリ構造(/var/lib/var/lib/univention-client-bootの下)とSymlnksを作成します。
Debianポリシーに従うには、シンボリックリンクを絶対パスではなく相対パス(シンボリックリンクを含むディレクトリに相対)に設定する必要があります。プライベートパッケージの場合、Debian ポリシーに厳密に従う必要はありません。
また、パッケージを削除するときにシンボリックリンク(空の場合はディレクトリ)を削除する.postrmまたは.prermスクリプトも必要です。