別のディレクトリにdebパッケージファイルをインストールします。

別のディレクトリにdebパッケージファイルをインストールします。

私は通常/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スクリプトも必要です。

関連情報