web-dev-qa-db-ja.com

リカバリモードでdpkgオプションを選択すると、どのコマンドが実行されますか?

最近、次のような状況に遭遇しました。

  • コンピュータを正常に起動できませんでした。 (ブートローダーとUbunutuのロード画面の後、ログインページの前にログインページが表示されず、カーソルが点滅していました。)
  • 回復モードに入ることができました。ブートを完全に続行すると、ターミナルに移動して、apt-getでパッケージを追加/削除できます。
  • リカバリモードで完全に起動する前に、インストールされたパッケージを修復するオプションの1つがdpkgであるメニューが表示されました。このオプションを選択した場合、103個のパッケージを再インストールすると修復できるとシステムが計算しました。しかし、再インストールのためにパッケージをダウンロードしようとすると、その操作に対して「はい」と言ってネットワークの問題が発生しました。
  • 修復するために提供されているパッケージのリストを確認し、「ダーツを投げて祈る」戦略を使用することで状況を解決でき、Sudo apt-get install --reinstall ubuntu-gnome-desktop完全にリカバリモードに入った後に表示されるプロンプトから。これにより、103個のパッケージの再インストールがトリガーされました。これが完了すると、Ubuntuを正常に起動できます。

私が持っている質問は:

ブート時にコマンドプロンプトでdpkgメニューオプションと同じ操作を実行するコマンドは何ですか?

3
Jacob Horbulyk

この機能は 友好的な回復メニュー によって提供され、特に dpkgプラグイン (「壊れたパッケージの修復」というタイトルのメニューエントリが追加され、適切に翻訳されます)ユーザーがシステムを使用するように構成した言語で)。

このプラグインは、壊れたパッケージを修復するために2つの異なるアプローチを使用します。

  • dist-upgrader が利用可能な場合、次のコマンドを実行して、システムを修復します

    env RELEASE_UPGRADER_NO_SCREEN=1 python3 /usr/lib/python3/dist-packages/DistUpgrade/dist-upgrade.py \
      --partial --frontend DistUpgradeViewText \
      --datadir /usr/share/ubuntu-release-upgrader
    
  • それ以外の場合は実行されます

    dpkg --configure -a
    apt-get update
    apt-get install -f
    apt-get dist-upgrade
    

メニュー選択と同じ効果を得るには、dist-upgraderを使用して最初のコマンドを試してください。存在しないために失敗した場合は、dpkg --configure -aで始まる4つのコマンドを実行してください。

これらのオプションはどちらも、壊れたパッケージを修復するだけでなく、インストールされているリリースで利用可能なパッケージの最新バージョンにシステムをアップグレードすることに注意してください。 (壊れたパッケージの修復には欠落しているパッケージのインストールが含まれる場合があり、構成されたリポジトリーからのパッケージの現在のバージョンを使用してのみ実行できるため、これは必要です。)

5
Stephen Kitt