モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

ubuntu 18.04.1でapt upgradeに失敗

正確には何をしたらおかしくなったのか分かりませんが… また、実際焦っていたのでエラーメッセージなども保存していない。スミマセン。

  • まず普通のデスクトップアプリ「ソフトウェアの更新」で更新しようとした
  • しかし、幾つかファイルがダウンロードできずに更新に失敗
  • そこでサーバを日本からメインに変更(これが悪かったか?)
  • やはり失敗
  • ターミナルからapt update & apt upgrade
  • libgs9-commonのバージョンが合わないのでインストールが出来ないという内容のメッセージが出る。
  • このバージョン番号が末尾が18.04.2なのですが、何かが間違ってないっすかねぇ?
  • apt --fix-broken installしろと出たのでやってみる
  • 無駄無駄無駄ァーッ という感じでやっぱlibgs9がアカンのでダメとなる
  • 以降、apt removeもできなくなる (apt --fix-broken installしろと出続ける)

というわけで困ったのですが、検索して得た以下の情報を元にaptのステータスをいじったところナントカ治りました(汗 そのURLを貼りたいのですがこれまた失念…stackoverflowだったと思ったのですが、ubuntuフォーラムかもしれない。 ともかく。

cp /var/lib/dpkg/status /var/lib/dpkg/status.bak # 念の為、今のステータスファイルを保存
cp /var/backups/dpkg.status.*.gz /var/lib/dpkg # すべての連番ファイル圧縮バックアップがコピーされる
gunzip -d /var/lib/dpkg/dpkg.status.*.gz # バックアップを展開する。
cp -f /var/lib/dpkg/dpkg.status.n /var/lib/dpkg/status # nは任意の番号。もっとも大きい番号のが直前のようだ。
# この状態で、以前は実行不可能だったaptが実行可能になっている。

という情報を得たのでやってみたのですが、apt update->upgradeすると、結局libgs9で同じことに。 そこでふとひらめきました。

「statusファイルを復帰させたらそこでapt remove libgs9-commonする」

という。 あとバージョン番号がなんか18.04.2という、ん〜まだリリース前じゃね?みたいな雰囲気のファイルだったので、もしかしてと思い、upgradeではなくdist-upgradeにしてみました。 結局、やったことは

statusファイル復帰
↓
apt remove libgs9-common
↓
apt update
↓
apt dist-upgrade

そしたら無事終了しました! まぁ偶然サーバのほうで何か修正が入っただけかもですが(^^;

ではでは〜