オンラインマシンに一度だけ戻るだけで、オフラインの Debian システムでディストリビューションのアップグレードを実行する方法はありますか?
apt-get update && apt-get dist-upgrade
オフライン マシンで を使用して と同等のことを実行できましたapt-offline
が、オンライン マシンに 2 回戻る必要がありました。
ワークフローは次のとおりです。
# OFFLINE machine:
apt-offline set step1.sig --update --upgrade --upgrade-type dist-upgrade
# The step1.sig file only contains references to Package and Release
# files, not any package names.
# ONLINE machine:
apt-offline get step1.sig --bundle step1.zip
# OFFLINE machine (this is the equivalent of apt-get update):
apt-offline install step1.zip
apt-offline set step2.sig --update --upgrade --upgrade-type dist-upgrade
# The step2.sig file now contains references to deb files.
# ONLINE machine:
apt-offline get step2.sig --bundle step2.zip
# OFFLINE machine (this is the equivalent of apt-get dist-upgrade):
apt-offline install step2.zip
apt-offline
コマンドライン ツール (またはその他)を使用して、オフライン マシンとオンライン マシン間の 1 回の往復でこれを行う方法に興味があります。
最初のステップでこれを試し、既存のパッケージのリストから何かを作成できることを期待しましたが、オフライン マシンの既知のパッケージ リストに現在何が含まれているかを考えると、最初のパスではアップグレードするものが何も見つかりません (これは当然のことです)。
apt-offline set packages.sig --install-packages `aptitude search '~i!~M' -F '%p'`
答え1
パッケージインデックスファイル(利用可能なパッケージ)を更新してから、パッケージセット(インストールするパッケージ)を更新する必要があります。に基づく更新されたインデックス ファイル。
オフライン マシンからオンライン マシンへの転送の最初の部分で、非同期パッケージ インデックス ファイルと非同期パッケージ セットを送信できます。
オンラインマシンでは、パッケージインデックスファイルを更新できますそれから新しいインデックス ファイルに基づいてパッケージ セットを更新し、対応するバンドルをダウンロードします。
オンライン マシンからオフライン マシンへの転送の 2 番目の部分で、結果のバンドルを送信できます。
問題はそれです
apt-offline set upgrade.sig --upgrade
ローカル マシンのパッケージ インデックス ファイルを使用します。別のパッケージ インデックス ファイルを使用するオプションはありません。そのため、このコマンドをオンライン マシンで実行することはできず、オフライン マシンとの往復を実行する必要があります。
解決策としては、apt-offline にローカルのパッケージ インデックス ファイルとは異なるパッケージ インデックス ファイルを使用するように指示することですが、現時点ではそれは不可能です。パッチを適用するか、独自のツールを作成することができます。