do-release-upgradeは、後でアップグレードするためにパッケージのみをダウンロードできますか?


33

lubuntu 10.10を実行していますが、11.04にアップグレードしたいと思います。私は非常に気まぐれなインターネット接続を持っているので、インストールを実行する前にすべてのパッケージをダウンロードしたいと思います。

これによると、これを行う簡単な方法はありません。バグレポートそのスレッドに言及したがまだ開いています。

私の質問:do-release-upgradeをハックしてパッケージのみをダウンロードする方法はありますか?apt-get dist-upgradeに「-d」を追加するようなものですか?

または、私が望む結果を得るための唯一の方法は、手動で行うことですか?

手動で行う必要がある場合、これらはそれを行うために必要な手順ですか、何か不足していますか?

  1. /etc/apt/sources.listおよびでサードパーティのリポジトリを無効にします/etc/apt/sources.list.d
  2. 変更リポジトリ/etc/apt/sources.listからmavericknatty
  3. 走る sudo apt-get update
  4. 実行sudo apt-get -d dist-upgradeしてパッケージのみをダウンロードします。すべてのパッケージがダウンロードされるまで、これを必要な回数だけ実行します。
  5. 実行sudo apt-get dist-upgradeしてアップグレードプロセスを完了します

それは私がやっていたことに近いようです。
ジョエルレンシンスタッド

回答:


13

最初の4つの手順は正しいですが、手順5はsudo do-release-upgrade(ではなくsudo apt-get dist-upgrade)必要です。ダウンロードしようとしたパッケージのすべて(またはほとんど)が既にに存在していることに気付くはず/var/cache/apt/archivesです。

do-release-upgradeの以前のバージョンには/var/cache/apt/archives、パッケージを新たにダウンロードする前にクリーンアップするバグがありましたが、IIRCはそのバグを修正しました。


私はこれをしました、そして、それは働きました。
メナケム

ここでGUIを使用してこれを行う方法を参照してください:askubuntu.com/a/418789/21794
Menachem

質問で説明されているプロセスは、1つのLTSから次のLTSへのアップグレードに使用できますか?12.04を実行したいサーバーを14.04に上げたいのですが、今月中に12.04リポジトリが削除される前にアップグレードを完全に準備する機会がないかもしれません。
DGW

9

複数のマシンをUbuntu 14.04 "trusty"にアップグレードするために、これを行うスクリプトを作成しました。「apt-get-other-release」と呼ばれます。簡単な使用:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

スクリプトは次の場所にあります。

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

バージョン1.0にはsha1sumがあります:87a466b2bb2d1ac5b0a08509246a450b8d1c7617

基本的にapt-get update; apt-get -d dist-upgradeは、sources.listファイルのプライベートセットで実行されています。結果は/ var / cache / apt- $ to_rel / archivesに保存され、 '-U'フラグはそれらをシステム全体の/ var / cache / apt / archivesにコピーし、アップグレード中にそれらが存在するようにします。

あるローカルホストから別のホストにアップグレードアーカイブをコピーして、帯域幅を節約することもできます。私はamd64とi386のアップグレードでこれを行い、名前に「amd64」が含まれていない* .debのみをコピーしました。その後apt-get-other-release -t trusty、i386マシンで別のマシンを実行しました。2つのマシンには異なるものがインストールされていたため、別の大きな山のパッケージがダウンロードされました。

フィードバックに感謝します。メールccに感謝します。askubuntuを次にいつ見るかわかりません。検索エンジンは私をよく知っています。

注:私は実際にそのように扱われたシステムのアップグレードを行っていません!来週のいくつかの時間。このスクリプトを公開することは、人々にとっては役に立つかもしれません。

>ベラ<


6

更新マネージャーに手順1〜3を実行させる方法があります。

  1. sudo update-managerGUIのターミナルウィンドウから実行(これは重要です)

    • 更新マネージャーを起動し、Ubuntuの次のバージョンにアップグレードすることを伝えて、実行を開始します。サードパーティのリポジトリを無効にし、メインリポジトリを最新バージョンに変更してから実行sudo apt-get updateします。
    • 次に、アップデートを実行するために、パッケージを削除、インストール、およびアップグレードする必要があることを通知する画面がポップアップ表示されます。
    • この段階で、ターミナルウィンドウに移動し、CTRL-Cを使用してプログラムを強制終了します。[これを行わず、更新マネージャーのキャンセルボタンを使用して更新をキャンセルすると、変更が元に戻されます]。
  2. sudo apt-get -d dist-upgradeすべてのパッケージがダウンロードされ、インストールの準備ができるまで、必要な回数だけコマンドラインから実行します

  3. 実行sudo do-release-upgradeして、ダウンロード済みのパッケージでアップグレードを完了させます。

  4. サードパーティのリポジトリをsudo apt-get update && sudo apt-get upgrade再度有効にし、再度実行してサードパーティのリポジトリを最新バージョンに更新します(リポジトリがubuntuの最新リリースに更新されていることを確認してください)


2

また、このためのスクリプトを作成しました。

https://github.com/neldredge/fetch-release-upgrade

使用法:スクラッチディレクトリで、実行

 ./fetch-release-upgrade.sh trusty

またはアップグレードする新しいリリース。必要なパッケージがというサブディレクトリにダウンロードされdebsます。その後、/var/cache/apt/archives実行する前にそれらを移動できdo-release-upgradeます。

私はまだuser270294のスクリプトを見ていませんが、それは同様のラインに沿って動作し、さらにいくつかの機能を持っているようです。


2

次のMenachemの答えのわずかに短いバージョンは私のために働いた:

  1. sudo do-release-upgrade1つのターミナルウィンドウで実行し、プロンプトが表示されるまで待ちます。

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    確認せず、開いたままにします

  2. 2番目のターミナルウィンドウで、実行します sudo apt-get dist-upgrade --download-only

  3. 完了したら、最初のターミナルウィンドウで自由に続行または中止します

プロのヒント:ターミナルマルチプレクサーをインストールしscreendo-release-upgrade内部で実行します。その後、screen -D -RRアップグレードプロセスを示す端末で何かが発生した場合に再接続できます。(幸運にも、今日の私のアップグレードはほぼ完了しました...)


これは良い方法ですが、途中でコンピューターの電源を切る必要がある場合は失敗する可能性があります。
メナケム

@Menachem:ありがとう。「失敗」とはどういう意味ですか、詳しく説明してください。はい、APTソースは一貫性のない状態になる可能性がありますが、それ以外はどうですか?
krlmlr

私はそれを試していないので、何が起こるか正確にはわかりません。do-release-upgradeをキャンセルすると変更が元に戻されますが、最新のapt-sourcesを使用してアップデートをダウンロードしているため、アップデートを再実行しようとすると不安定なシステムになる可能性があると考えていました後。
メナケム

インストールファイルをダウンロードするだけで何かが変わるかどうかはわかりませんが、これは単にインターネットからファイルをキャッシュするだけではありませんか?とにかく、このプロセスは私にとってはうまく機能しdo-release-upgrade、ダウンロード後に中断して再起動しました。
krlmlr

1
ええ。完了するまで定期的な更新を実行しない限り、問題ありません。
メナケム

0

免責事項:私はこれをやったことがありません。それは恐ろしいアイデアかもしれません。それはすべてを壊し、銀行口座を空にしてスペインの南に逃げるかもしれません。潜在的に危険なものと同様に、何かを行う前にバックアップを作成してください。


どの程度のものをインストールしたかわかりませんので、これは欠陥のあるソリューションかもしれませんが、CDからアップグレードできます。代替 isoをダウンロードしてマウントし、アップグレードスクリプトを実行します。

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

先に進む前に、wgetを使用して画像を取得する必要はありません。Bittorrentは標準のダウンロードマネージャーと同様に機能します。重要なことは、再開する何かが欲しいので、ダウンロードを停止して、別の時にそれを拾うことができるということです。これがwget-cフラグの機能です。

ISOを取得したら、次の手順は非常に簡単です。

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

私が話した欠陥は、これがCDに含まれているUbuntuに不可欠なもののみをアップグレードすることです。他のパッケージはアップグレードされません。

理論これは問題ないはずです。一部のアプリケーションが壊れたり、アップデーターによって強制的に削除されたりする場合がありますが、コアOSは安定したままです。

私の理論が正しい場合、これにより、Synapticまたは(インストールする場合)を使用して、必要なときにasを使用して他のパッケージをアップグレードできますaptitude


スペインの南が近い場合はどうなりますか?
マットジョイナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.