AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

do-release-upgrade ( 14.04 から 16.04 ) で エラー3つ

あるサーバ作業に使ってる、Ubuntu

最近アップデートふってこないなと思ったのですが、14.04 と気づいた。

作業ログも増えてきたので、整理も兼ねて、次の LTS にあげてみることに。

いくつか思うように行ってませんが、最終的には 16.04 になりました!

  • 問題1:do-release-upgrade 動かない ※解決!
  • 問題2: FATAL -> Failed to fork. ※解決!
  • 問題3:Kernel version not supported ※未解決

事前

Ubuntu 14.04.6 LTS。よく動いてくれてたなぁ。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.6 LTS
Release: 14.04
Codename: trusty


40GB以上使ってたディスク容量も、整理したら25GB程度に収まった。

ここからスタートです。



作業

そもそも do-release-upgrade の使い方すら忘れてるので、復習から。

このサイト、ものすごく詳しい。大きな流れは、こちらで学ばせてもらいました。感謝。

問題1:do-release-upgrade 動かない

前準備おえて、さあアップグレードと思ったら、do-release-upgrade が次のエラーで落ちる

ImportError: No module named 'apt_pkg'

ファイル見てみるとPython3だった。

$ file /usr/bin/do-release-upgrade
/usr/bin/do-release-upgrade: Python script, ASCII text executable

やってみたところ、たしかに import できない。

$ python3
Python 3.5.3 (default, Apr 22 2017, 00:00:00)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import apt_pkg
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named 'apt_pkg'


探しだしたのは次の情報。


該当パッケージは導入済みだったので、再インストール。

sudo apt-get install python3-apt --reinstall

でも変わらず。コメントみてくと、該当しそうなのがあったので、真似してみた。

たぶん python3-apt は 3.4 関係だけど、僕の環境は Python 3.5.x だったのが原因っぽい。

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{34m,35m}-x86_64-linux-gnu.so

これで、コマンド動くようになりました!


問題2: FATAL -> Failed to fork.

sshd 別ポートであげるよ、などのメッセージを経て、アップグレード始まったかと思ったら、途中で落ちる。

FATAL -> Failed to fork.

chrome とか td-agent 入ってるのが原因だったか?と思い、こちらをみて少し整理。

でも落ちる。

FATAL -> Failed to fork.


メモリ足りないのかと思い、再起動して、apache2, mysql も停止してみる。

さっきより進んだところで、同じエラー。

ふと、OpenVZのVPSだったことを思い出し、過去のリソース不足を思い出す。

3コア 1GB(最大2GB) から 6コア 2GB (最大4GB) に変更。

進んだ〜〜〜〜!


問題3:Kernel version not supported

アップグレード中に、このメッセージが出てきた。

OK としたら、アップグレードプロセス自体は進んだのですが。。。大丈夫なのかな? > 僕のOS

│ Kernel version not supported

│ This version of the GNU libc requires kernel version 3.2 or later. Older versions might work but are not officially supported. Please
│ consider upgrading your kernel.

完了

その後、各種設定ファイルの置き換え確認をへて、再起動。

sshdが起動してこない問題はあったものの、コンソール作業をいれて無事に接続できました。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial

すごいよ、Ubuntu。ありがとう!


その他

スナップショットとれると、思い切ったこともできますね

MySQL は DBマイグレーションが走ったので、ちょっと焦りました。

OSがサポートする各種パッケージのバージョンも上がるんだから当たり前ですね。。

さっそく 18.04 のメッセージでてるので、よくまえ準備して、次をやろうっと。