web-dev-qa-db-ja.com

すでにインストールされている場合は「アップグレード」できる「equivs-build」を使用してdebianパッケージを作成するにはどうすればよいですか?

.debコマンドを使用してequivs-buildパッケージを作成し、必要なcontrolpreinstpostinstなどを提供しました。versioncontrolファイルにも記載されていることに気付きました。ここで、更新されたソースコードを使用して.debパッケージを作成し、confを変更しないため、パッケージが既にインストールされている場合(もちろん、以前のバージョンの場合)にユーザーがパッケージをアップグレードできるようにします。関連ファイルなど。私が考えることができる1つの方法は、最初にインストールされたバージョンをチェックし、それに応じてアクションを実行するスクリプトを作成することです(つまり、インストールされている場合は、ソースコード、データベース移行などを更新し、そうでない場合は更新します、dpkg -i <package-name>)を使用してパッケージをインストールします。必要に応じてインストールまたはアップグレードを処理するdpkgのみ(dpkg upgrade <package-name>など)を使用して実現する方法があるかどうか疑問に思いました。

1
exAres

あなたが探しているコマンドは確かにdpkg -iです。これは、インストールされていない場合はインストールされ、すでにインストールされている場合はアップグレードされます。 dpkgは、ユーザーが変更した構成ファイルを変更しません。そのような場合(変更を保持する、変更を破棄するなど)をどうするかを尋ねられ、破棄したもの(パッケージによって提供される新しい構成ファイル、またはユーザーが変更した古いファイル)のバックアップを常に保持します。 )。パッケージによって/etc/にインストールされたファイルは、dpkgによって構成ファイルと見なされます。

1
muru