Repreproで破損したファイルのリストを修正する

Repreproで破損したファイルのリストを修正する

dputローカル reprepro インスタンスにパッケージを追加すると、次のメッセージが表示されます。

...
Exporting indices...
Corrupted file list data for pool/main/q/qualys-cloud-agent/qualys-cloud-agent_2.6.0-88_all.deb
Corrupted file list data for pool/main/q/qualys-cloud-agent/qualys-cloud-agent_2.6.0-88_all.deb
Calculating packages to pull...
Installing (and possibly deleting) packages...
Exporting indices...
Deleting files no longer referenced..

私はDebian BusterでRepreproバージョン5.3.0を実行しています。

破損したファイルを回復(または削除)する方法は?

答え1

これは、コントロールコンポーネントにファイルを含む(ほぼ)すべてのバイナリパッケージ*.debと共に、バイナリpackage()自体の内部問題のように見えます。次のコマンドを使用して表示できます。reprepromd5sums

ar -x qualys-cloud-agent_2.6.0-88_all.deb    # extracts {control,data}.tar.xz
tar -xf control.tar.xz                       # extracts control,md5sums
cat md5sums

最善の解決策は、インストールする前にローカルにインストールし(パッケージ内で)md5sumを使用して確認することqualys-cloud-agent_2.6.0-88.1です。2.6.0-88dputdebsumsdebsums

dpkg -i qualys-cloud-agent_2.6.0-88.1_all.deb
debsums -c qualys-cloud-agent

検査に合格したら、行ってもいいですdput <your_repo> qualys-cloud-agent_2.6.0-88.1_all.changes


パッケージのバージョンをアップグレードすると、リポジトリからこのパッケージをインストールするすべての人がアップデートを受け取ることができるため、非常に重要です。バージョンを本当にアップグレードしたくない場合(誰もリポジトリを使用しないと確信できます)、次のことができます。

reprepro -Vb /path/to/repo remove buster qualys-cloud-agent
reprepro -Vb /path/to/repo include buster qualys-cloud-agent_2.6.0-88_all.changes

失敗した場合は、debsums次のことが役に立ちます。

  • パッケージの構築方法を学びます(dpkg-buildpackage、、、)cpackdpkg-deb
  • /var/lib/dpkg/info/qualys-cloud-agent.md5sumsフォーマットの問題を見つけるために抜粋を確認してください。
  • 代わりreprepro includedebreprepro include

関連情報