「do-release-upgrade」がバージョンをスキップするのはなぜですか?


14

私は答えこの質問についてdo-release-upgrade、私はそれが人生の15.04ビーイング側によるものであったと仮定、唯一の15.10に14.10 15.04へのアップグレードを許可しません。

ユーザー(@xangua)は、でリリースをスキップすることはできないと投稿したdo-release-upgradeので、14.04ボックスでコマンドを実行してこの情報を調べましたが、これが混乱の始まりです。

14.04から15.04に直接アップグレードしたいですか?

もちろん、これは15.04がサポート終了であるため、私の回答を無効にしますが、サポート終了に基づいていない場合、なぜこのコマンドはバージョンをスキップしているように見えますか?

アップグレードによって14.10から何かがダウンロードされていることを示すものはなく、software-updaterUbuntu 15.04がダウンロード可能になったと言っていますが、これについての明確な説明はすばらしいでしょう。


2
14.04システムが15.04にアップグレードするのは、これがサポートされていないためです。たとえば、15.04のリリースノートには、14.10からのアップグレードのみが記載されています。do-release-upgrade14.04システムで実行すると、「新しいリリースが見つかりません」というメッセージが表示されます。これは、14.04システムは14.10にしかアップグレードできないため、14.10がEOLになったためです。
fkraiem

1
そのため、システムに何か異常があるはずです。お使いのバージョンはubuntu-release-upgrader-core何ですか?
fkraiem

1
この情報を提供することはできません。コマンドをいじってインストールがなくなったため、再インストールはアップグレードの停止によって引き起こされたエラーを修正するより簡単でした。
マークカービー

1
@fkraiemは、リポジトリマネージャーが自分のやり方で「スクリプト化」できるため、バージョンのスキップがサポートされています。
Braiam

回答:


12

元の推測は正しかった。15.04は2016-02-04までサポートされているため、現在のdo-release-upgradeリリースと比較して、サポートされている次のリリースにアップグレードしようとしています。

以下に、通常のアップグレードプロンプトモードの説明を示します/etc/update-manager/release-upgrades

新しいリリースが利用可能かどうかを確認します。複数の新しいリリースが見つかった場合、リリースアップグレードは、現在実行中のリリースにすぐに続くリリースへのアップグレードを試みます。

私が14.04にいるのであれば、14.10に連れて行こうとしているはずですが、今do-release-upgradeは代わりにOP(および私)を15.04に連れて行こうとしています。

その/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyため、どのリリースにアップグレードするかを判断するときに、サポートされていないリリースをスキップするように見えます(開発者フラグを使用している場合を除く)。

    # then see what we can upgrade to
    upgradable_to = ""
    for dist in dists:
        if dist.date > current_dist.date:
            # Only offer to upgrade to an unsupported release if running
            # with useDevelopmentRelease, this way one can upgrade from an
            # LTS release to the next supported non-LTS release e.g. from
            # 14.04 to 15.04.
            if not dist.supported and not self.useDevelopmentRelease:
                continue
            upgradable_to = dist
            self._debug("new dist: %s" % upgradable_to)
            break

私はこれを回避することをお勧めしないことを追加する必要がありdo-release-upgrade -dます。prompt=normal14.10がEoLなので、で試してみたときに404を受け取りました。また、せん妄ではdo-release-upgrade -p、16.04にまっすぐに連れて行こうと試みたに違いないと思います。ゼニアルに連れて行っていることに気づいた時には、すべてが壊れていて、工場から復旧しなければなりませんでした。最終的に、16.04がリリースされるまで待って、新規インストールを行うことにしました。


1
それをバックアップするものはありますか、それとも推測しただけですか?
ケンシャープ

1
詳細を追加しました。OPと同じ問題が発生していました。
mmaluff

3
あいまいさに陥るだろうと思った質問に対する堅実な回答:)
マークカービー

2
この優れた回答で説明されている動作は引き続き適用され、Software Updaterおよびを介したアップグレードにも適用されますdo-release-upgrade。現在、16.04 LTSシステムは、17.04へのアップグレードを自動的に提供しますが、サポートは終了しているため、16.10をスキップして直接アップグレードします。これらの回答は、この修正の恩恵を受けるでしょう。または、現在の動作を完全に説明する新しい回答を投稿できます。何かを投稿しますか?
エリアケイガン

5

do-release-upgradeは、「バージョンのジャンプ」について何も知りません。Ubuntuリポジトリメンテナからアップグレードプランをダウンロードするだけです。これはdo-release-upgrade READMEで指定されています

2)アップグレードツールは、アップグレードの実行方法(たとえば、最初に特定のライブラリをアップグレードするなどの追加手順)の更新された情報ダウンロードできる必要があります。

また、自動アップグレードに関する仕様では:

使用可能な配布に関する情報を含むメタリリースファイルは中央サーバーに保存され、update-managerの実行ごとにIf-Modified-Sinceでテストされます。新しいバージョンが見つかった場合、update-managerはそれを視覚的に表示します。

これにより、do-upgrade-releaseおよびその他のツールをシームレスにアップグレードできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.