`do-release-upgrade`は実際に何をしますか?


30

do-release-upgrade「リリースアップグレードを行う」ことを知っています。しかし、少し低いレベルで実際に何をするのでしょうか?

Debianの方法aptitude updateなどaptitude full-upgrade、ソースをセットアップした後、さらに手動でアップグレードする予定です。実際、私はそれを完全にインタラクティブにするつもりですaptitude。しかし、sources.listを保存する以外 do-relase-upgradeは、他に何をするのか興味があります。

回答:


32

do-release-upgradeパッケージ「update-manager-core」の一部です。このスクリプトは、どのリリースにアップグレードするかを決定し、サポートされているかどうかを確認し、後者について文句を言うようです。–動作すると確信している場合は、リリース固有のUpgradeToolをダウンロードして実行します。

「update-manager-core」パッケージの一部はファイル/etc/update-manager/meta-releaseであり、ここでURL http://changelogs.ubuntu.com/meta-releaseを見つけることができ、そこにダウンロードするUpgradeToolのURLがあります。

ダウンロードされたUpgradeTool tarballは、ソースパッケージ「ubuntu-release-upgrader」(「update-manager」になる前)からパッケージ化されます。バージョンは、ターゲットリリースの最新の更新に対応しています。

ソースには、いびつで白髪のリリース時からの古いREADMEがあります。リリースアップグレード中に行うべきことについて説明します。また、より詳細なUpgradeTool提案へのリンクにも言及しています。

ここに記載されているアクションをリストし、実際に実装されているかどうかを確認します。

  • リポジトリ関連
    • 新しいsources.listエントリに切り替えます
    • 不明なサードパーティのリポジトリを削除する
    • スワップミラーの可能性(実装されていません)
  • パッケージ関連
    • アップグレードする前に壊れたパッケージがないことを確認してください
    • アップグレードする前に現在のリリースを更新する(apt-get updateのみ)
    • 特定のパッケージを削除してインストールする
    • {ubuntu、kubuntu、edubuntu} -desktopがインストールされているかどうかを確認してください
    • 古いカーネルを取り除く
    • 削除ブラックリストと-ホワイトリストがあります
    • 以前のリリースに存在していた古いパッケージを削除または置換します
  • 構成に関連する(奇妙な可能性:以下を参照)
    • デフォルトのユーザーを新しいグループに追加する(チェックしたバージョンでは実行されません)
    • いくつかの設定ファイルを確認してください

UpgradeToolは、次のファイルを使用してリリースごとに構成されます(開いて確認してください!):

  • DistUpgrade.cfg
    • UpgradeTool関連の構成
    • リリース関連の構成
    • リポジトリ(例[ソース] ValidMirrors)
    • カスタム変更([Distro] PostInstallScript)
    • 特別なパッケージ; DistUpgradeController.pyによってのみ処理されます:
      • [Distro] RemoveObsoletes、ForcedObsoletes、BaseMetaPkgs、MetaPkgs
      • [meta_package_name] ForcedObsoletes
    • ...そしてDistUpgradeCache.pyによって:
      • [Distro] MetaPkgs、RemovalBlacklist、RemoveEssentialOk、BadVersions、BaseMetaPkgs、PurgeObsoletes、降格、KeyDependencies
      • [Distroおよびmeta_package_name] KeepInstalledPkgs、KeepInstalledSection、PostUpgrade *
      • [KernelRemoval] *
  • DistUpgradeQuirks.py
    • 特定の機能(同じファイル)とプラグイン(pluginsディレクトリ)を実行(リリース)します
    • 関数には特定の名前(例from_nattyPreCacheOpen())とプラグインの特別なcondition属性(例:*またはPostInitialUpdate)が必要です
    • これらの関数の1つはStartUpgrade()、別のグラブバッグ自体です。とりわけ_applyPatches()、それはを呼び出し、patchesディレクトリ内のファイルを調べます。
    • これらはすべて私のインストールではほとんど何もしません(i386、natty-updatesより古いパッケージではありません)
  • DistUpgradeCache.pyの詳細
    • get_kernel_list.sh(信頼できない状態で)実行され、1つのカーネルがインストールされていることを確認します
    • Nvidiaドライバーに関するいくつかの取り扱い

チェック済みバージョン:

  • natty→oneiric
  • oneiric→正確
  • 正確→信頼(2014-04-18現在)
  • trusty→utopic(2014-10-23のリリースまでの時間)

3
do-release-upgradeを使用するたびに、ブート不能なシステムになってしまいました:)
user205301 14年

nvidiaのバイナリドライバ、multiarch変更、ndiswrapperを、(例えば、サーバのカーネルを非推奨)/取り外しアーキテクチャとカーネルタイプを追加:物事の例を行うリリースアップグレードハンドルなど
NGRhodes

@NGRhodesあなたのコメントは私にはあまりにもあいまいです:nd​​iswrapperは、最近ではなく、元気な昔の特別なケースでした。アーキテクチャは追加も削除もされません(amd64はi386を外部として追加しますが、これは「マルチアーキテクチャの変更」でカバーします)。–「廃止された」ものは何もありません。パッケージが削除されたかどうかはわかりません。
ロバートシーマー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.