Debian の個々のパッケージをダウングレードする方法はありますか?

Debian の個々のパッケージをダウングレードする方法はありますか?

私は現在Debian "test"を実行しており、Gimpをバージョンから2.10.8-2バージョンにアップグレードしました2.10.8-2+b1。残念ながら、それは私には効果がありません。毎回衝突が発生するため、イメージを開くことができず、新しい空のイメージを作成することもできません。

リポジトリに少なくともいくつかのバージョンのパッケージがあることを願って、次のようにダウングレードしようとしました。

apt install gimp=2.10.8-2

そして

apt-get install gimp=2.10.8-2

しかし、両方とも失敗しましたVersion '2.10.8-2' for 'gimp' was not found

Debian のパッケージをダウングレードする安定した方法はありますか?満足のいかないアップグレードの後に​​一種の「ロールバック」が発生しますか?

stableリポジトリを追加し、時にはダウングレードを強制して問題のあるパッケージをブロックすることを検討しました。しかし、まず、あまりにも多くの依存関係をダウングレードする必要があるという点を考慮して、あまり大胆でないソリューションを望んでいました。解決するよりも多くの問題を引き起こす可能性があります。

答え1

これらのaptツールはロールバックをサポートしていないため、アップグレードをキャンセルする直接的な方法はありません。ダウングレードするパッケージを識別するか、または提供する適切aptなバイナリを見つける必要がありますdpkg。使用できる方法はいくつかあります。

最も一般的に使用するのはsnapshot.debian.org。これには、Debianアーカイブにアップロードされたすべてのパッケージのコピーが含まれており、特定のタイムスタンプの一貫したパッケージセットを含むスナップショットリポジトリも提供されます。あなたの場合は、次のようになります。gimpソースコードパッケージの適切なバージョンをクリックして、そのリポジトリをソースに追加します(ガイドラインはホームページを参照)。

gimp(すでに考慮されている)この特定のインスタンスで動作する別のアプローチは、Debian 10をリポジトリに追加することです。これは、ダウングレードするパッケージのバージョンがリポジトリで利用可能であるためです。現時点では、パッケージ以外のダウングレードは発生しませgimpん。libopenexr23libopenexr24

apt最後に、アーカイブ()に古いパッケージがまだ残っているので、/var/cache/apt/archivesキャッシュを使用するか、リポジトリに変換してそのパッケージをインストールできます。dpkg -i

  • すべてのパッケージを安全な場所にコピーしてください。

  • Packagesファイルを生成します。

    dpkg-scanpackages . > Packages
    

    (すべてのパッケージをコピーしたディレクトリにdpkg-dev必要ですdpkg-scanpackages。)

  • 圧縮Packagesファイル:

    gzip < Packages > Packages.gz
    

    (これにより、両方のファイルが保持されます)

  • Releaseファイルを生成します。

    apt-ftparchive -o "APT::FTPArchive::Release::Origin=cache-repository" release . > Release
    

    (あなたはしapt-utilsなければなりませんapt-ftparchive

  • 署名:

     gpg --yes --sign --armor --clearsign --output InRelease Release
    

deb file:/path/to/...その後、リポジトリにエントリを追加してそこからパッケージをインストールできます。 (aptAssumptionリポジトリを信頼できると言うと、署名フェーズをスキップできます。)

関連情報