do-release-upgradeによるUbuntuアップグレードで「修復不可能な問題」と表示された時の対応
Ubuntu 14.04LTSから16.04LTSにアップグレードすべく、次のサイト等を参考にdo-release-upgradeで実施したところ、Ubuntu非公式レポジトリを有効にしていたために、ハマったのでメモ.
まずは、上記ブログにもあるように、バージョン確認をしてから、現行システムの更新を行い,マシンを再起動しました.
$ lsb_release -d Description: Ubuntu 14.04.5 LTS
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get dist-upgrade
さらに、下記の方法で、リリースチャネルの確認と設定をします.
$ cat /etc/update-manager/release-upgrades
自分は、最下行が"Prompt=never"になっていたので、viで上記ファイルを開き、"
Prompt=lts
に変更しました。
しかしその後
$ sudo do-release-upgrade
としたところ、次のエラーが表示されてしまいました。
自分が実行しているのは14.04LTSで、リリース前のUbuntuを実行しているわけはありませんが 3番目の
* Ubuntu以外から提供されている非公式パッケージ
には、心当たりがあります。しかし、どの非公式パッケージを入れたか、またどうやって削除するかが分からない.
結論から言うと,Canonicalパッケージやextrasが悪さをしているようでした. 自分は,これらのレポジトリに関する記述をコメントアウトすることで,先に進むようになりました.
$ sudo vi /etc/apt/sources.list (次の行をすべてコメントアウト) # deb http://archive.canonical.com/ubuntu trusty partner # deb-src http://archive.canonical.com/ubuntu trusty partner # deb http://extras.ubuntu.com/ubuntu trusty main # deb-src http://extras.ubunut.com/ubuntu trusty main
以上が終わった後,もう一度
$ sudo apt-get update $ sudo do-release-upgrade
を実行します.
これでもエラーが出る場合は,非公式パッケージ(ppa)が原因かもしれません. 私は、元々ppaが原因だと思っていたので、下記も実行しました.
によれば、コマンドラインで下記を実行することで、自分がインストールした非公式パッケージの一覧を表示させることができます.
$ grep -RoPish '(?<=ppa.launchpad.net/)[^/]+/[^/ ]+' /etc/apt | sort -u | sed 's/^/ppa:/'
自分は、これを実行したところ
ppa:jtaylor/ipython ppa:mc3man/trusty-media ppa:thefanclub/grive-tools ppa:webupd8team/java
などと出てきました.
今度はこれを消去します.これには、ppa-purgeというツールを導入しておきます. PPA の追加 / 削除 - 哲朗web
$ sudo apt-get install ppa-purge
使い方としては、例えば
$ sudo ppa-purge ppa:jtaylor/ipython
などとなります。この調子で、他の非公式パッケージも削除していきます。ちなみに上記がうまくいかない場合は,次のような方法もあるみたいです. 追加した ppa のリポジトリをリストから削除する方法
sudo add-apt-repository --remove ppa:jtaylor/ipython
これでもうまくいかない方は,launchpadのppa以外に,google chromeやdropbox等をaptで入れたことが原因かもしれません. これらのパッケージを消すには,まずdpkgで消す,次にsources.list.d/のリストから,debで始まるレポジトリの一行をコメントアウトする,という手順を取ります.
$ sudo dpkg -r google-chrome-stable $ sudo dpkg -r dropbox $ cd /etc/apt/sources.list.d/ $ sudo vi dropbox.list $ sudo vi google-chrome.list
以上を実行した上で
$ sudo apt-get update $ sudo do-release-upgrade
で,アップグレードできるかどうか,試してみてください.
さて、私の場合、上記でアップグレードが進んだのですが、完了一歩手前というところで 「処理中にエラーが発生しました」とコンソールに表示され、次々とエラーダイアログのGUIがポップアップする事態になりました。 再起動してくださいといったダイアログもあったため、その通りにしたら まったく起動しない最悪のケースに...
もしかしたら、リブート前に、次のように対応したら良かったのかもしれませんが...後の祭り. http://tech.uribou.tokyo/ubuntu_upgrade_to_16/
というわけで、私はあまり、do-release-upgrade をお勧めしたくなくなってきました. 無事、Live USBから復活できたら、次回その方法について記載しようと思います。