CentOS 6 -> 7 バージョンアップその後に

こんにちはー

 

 

今回は準備万端になりましたので、あとはリブートを実施して普通に起動してきたらOKです。 あっという間にリブートして終了になればよいなと期待していましたがそんなことなく、二日かかりで対応しました。 この記録が少しでも皆さんのお役に立てばよいと思います。

 

では早速rebootこれでうまく起動するかドキドキ

コンソールでつなげて状況を見てみると"kernel panic"が発生してフリーズしていました。強制終了させて、再度起動するとアップデートが始まりました。ちょっとアップデートには時間がかかりますが、完了するとリブートして1つ1つプロセスが起動します。

ところが

[ * ** * ] A start job is running for Wait for Plymouth Boot Screen to Quit ( *** / no limit )

という表示がでて ***の部分に時間がカウントされていますが、すでに12分経っても起動しない 汗

 

WEBで調べてみると45分ぐらいで立ち上がるとも出ているのでとりあえず、もう少し気長に待ってみます。

 

その後45分過ぎてもこのままだったので、ランレベル3に設定をして再度起動を試したらログイン画面が無事に出てきました。 ランレベル3にて起動する方法はちょっと難しいので別に説明したいと思います。

 

sshが出来ない

起動したので、sshをしようとするとできない。sshdが起動していないので起動させましょう。

$ systemctl start sshd
$ systemctl enable sshd

これで今後リブートした時も起動してくれます。

 

grepライブラリ見つからない

grepを実行すると

grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

と表示されて実行が出来ない。そこでライブラリを確認

ldd /usr/bin/grep

        linux-vdso.so.1 =>  (0x00007ffdded34000)

        libpcre.so.0 => not found

        libc.so.6 => /lib64/libc.so.6 (0x00007f454e81c000)

        /lib64/ld-linux-x86-64.so.2 (0x00007f454ebea000)

 

libpcre.so.0が見つからないと言っていますので、リンクをコピーしてあげます。

link /usr/lib64/libpcre.so.1 /lib64/libpcre.so.0

再度調べてみると

 ldd /usr/bin/grep

        linux-vdso.so.1 =>  (0x00007ffc2d338000)

        libpcre.so.0 => /lib64/libpcre.so.0 (0x00007fb19969e000)

        libc.so.6 => /lib64/libc.so.6 (0x00007fb1992d0000)

        libpthread.so.0 /lib64/libpthread.so.0 (0x00007fb1990b4000)

        /lib64/ld-linux-x86-64.so.2 (0x00007fb199900000)

これで大丈夫です。

 

Apache起動エラー

次はApatcheの起動です。起動コマンドは変更になっていますが、エラーが次々でてなかなか先に進みません。Apacheは今までは2.2のバージョンを使用していましたが、今回のバージョンアップに伴いバージョンが2.4になっています。この2.2から2.4の変更で大幅にコマンドなどが変更になっているようです。

 

とりあえず起動してみる。

systemctl start httpd

エラーが発生しているのでstatus コマンドで詳細を確認

systemctl status httpd.service

   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)

   Active: failed (Result: exit-code) since 土 2020-10-10 16:12:16 JST; 1min 13s ago

     Docs: man:httpd(8)

           man:apachectl(8)

  Process: 2288 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)

 Main PID: 2288 (code=exited, status=1/FAILURE)

 

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: [Sat Oct 10 16:12:16.387008 2020] [so:warn] [pid 2288] AH01574: module ...pping

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: [Sat Oct 10 16:12:16.387072 2020] [so:warn] [pid 2288] AH01574: module ...pping

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: [Sat Oct 10 16:12:16.387096 2020] [so:warn] [pid 2288] AH01574: module ...pping

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: [Sat Oct 10 16:12:16.387118 2020] [so:warn] [pid 2288] AH01574: module ...pping

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: [Sat Oct 10 16:12:16.387171 2020] [so:warn] [pid 2288] AH01574: module ...pping

10月 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: httpd: Syntax error on line 222 of /etc/httpd/conf/httpd.conf: Syntax e...child

10月 10 16:12:16 v157-7-142-74.myvps.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE

10月 10 16:12:16 v157-7-142-74.myvps.jp systemd[1]: Failed to start The Apache HTTP Server.

10月 10 16:12:16 v157-7-142-74.myvps.jp systemd[1]: Unit httpd.service entered failed state.

10月 10 16:12:16 v157-7-142-74.myvps.jp systemd[1]: httpd.service failed.

Hint: Some lines were ellipsized, use -l to show in full.

 どうやら -lオプションを指定するともう少し詳細が見れるみたい。

ちなみに.serviceですが、つけなくても正しく動作しました。

systemctl status httpd.service -l

10 10 16:12:16 v157-7-142-74.myvps.jp httpd[2288]: httpd: Syntax error on line 222 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/mod_dnssd.conf: Cannot load modules/mod_dnssd.so into server: /etc/httpd/modules/mod_dnssd.so: undefined symbol: unixd_setup_child

 これをみると/etc/httpd/conf.d/mod_dnssd.confのファイルが悪さをしているみたい。名前を変更して、読み込まないようにしてしまおう。結構今まで動作していたけど動作しなくなったコマンドなどがあります。

そのようなコマンドはどんどんコメントつけていきましょう。

詳細はこちらのサイトを見てみましょう。

Apache2.2の設定ファイルをApache2.4に移植するためにやったことまとめ - Qiita

 

Yum update失敗

 yum updateを実行して最新の情報にアップデートしようとしたら、el6のパッケージが絡んでいてエラーになってアップデートができません。

いろいろと細かくアップデートなどを実施してみたのですが、うまくいきませんでした。そこでyumのレポジトリいったん削除(old フォルダを作成してそちらへ移動)させて再度実行。 これはレポジトリがないと怒られて失敗

ちなみにレポジトリは通常「/etc/yum.repos.d」ここに格納されています。

次にCentOS-から始まるレポジトリがあるので、1つ1つoldフォルダから戻していきます。戻した後にファイルを開いていくとel6や6の数字があるものをすべて7に変更してから再度yum update残念ながらこれでも失敗。epelが悪さをしているようです。そこでepelをアップデートするも失敗に終わります。そこで失敗したファイルがel6のパッケージが多いので1つ1つel7にアップデートを試みるのですが

/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

このファイルがないと怒られて失敗に終わります。どこかからダウンロードできたのですが見つからないので、こちらに張り付けます。この内容をファイルを作成してみて下さい。

# cat /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)

mQINBFKuaIQBEAC1UphXwMqCAarPUH/ZsOFslabeTVO2pDk5YnO96f+rgZB7xArB
OSeQk7B90iqSJ85/c72OAn4OXYvT63gfCeXpJs5M7emXkPsNQWWSju99lW+AqSNm
jYWhmRlLRGl0OO7gIwj776dIXvcMNFlzSPj00N2xAqjMbjlnV2n2abAE5gq6VpqP
vFXVyfrVa/ualogDVmf6h2t4Rdpifq8qTHsHFU3xpCz+T6/dGWKGQ42ZQfTaLnDM
jToAsmY0AyevkIbX6iZVtzGvanYpPcWW4X0RDPcpqfFNZk643xI4lsZ+Y2Er9Yu5
S/8x0ly+tmmIokaE0wwbdUu740YTZjCesroYWiRg5zuQ2xfKxJoV5E+Eh+tYwGDJ
n6HfWhRgnudRRwvuJ45ztYVtKulKw8QQpd2STWrcQQDJaRWmnMooX/PATTjCBExB
9dkz38Druvk7IkHMtsIqlkAOQMdsX1d3Tov6BE2XDjIG0zFxLduJGbVwc/6rIc95
T055j36Ez0HrjxdpTGOOHxRqMK5m9flFbaxxtDnS7w77WqzW7HjFrD0VeTx2vnjj
GqchHEQpfDpFOzb8LTFhgYidyRNUflQY35WLOzLNV+pV3eQ3Jg11UFwelSNLqfQf
uFRGc+zcwkNjHh5yPvm9odR1BIfqJ6sKGPGbtPNXo7ERMRypWyRz0zi0twARAQAB
tChGZWRvcmEgRVBFTCAoNykgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB
AgAiBQJSrmiEAhsPBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBqL66iNSxk
5cfGD/4spqpsTjtDM7qpytKLHKruZtvuWiqt5RfvT9ww9GUUFMZ4ZZGX4nUXg49q
ixDLayWR8ddG/s5kyOi3C0uX/6inzaYyRg+Bh70brqKUK14F1BrrPi29eaKfG+Gu
MFtXdBG2a7OtPmw3yuKmq9Epv6B0mP6E5KSdvSRSqJWtGcA6wRS/wDzXJENHp5re
9Ism3CYydpy0GLRA5wo4fPB5uLdUhLEUDvh2KK//fMjja3o0L+SNz8N0aDZyn5Ax
CU9RB3EHcTecFgoy5umRj99BZrebR1NO+4gBrivIfdvD4fJNfNBHXwhSH9ACGCNv
HnXVjHQF9iHWApKkRIeh8Fr2n5dtfJEF7SEX8GbX7FbsWo29kXMrVgNqHNyDnfAB
VoPubgQdtJZJkVZAkaHrMu8AytwT62Q4eNqmJI1aWbZQNI5jWYqc6RKuCK6/F99q
thFT9gJO17+yRuL6Uv2/vgzVR1RGdwVLKwlUjGPAjYflpCQwWMAASxiv9uPyYPHc
ErSrbRG0wjIfAR3vus1OSOx3xZHZpXFfmQTsDP7zVROLzV98R3JwFAxJ4/xqeON4
vCPFU6OsT3lWQ8w7il5ohY95wmujfr6lk89kEzJdOTzcn7DBbUru33CQMGKZ3Evt
RjsC7FDbL017qxS+ZVA/HGkyfiu4cpgV8VUnbql5eAZ+1Ll6Dw==
=hdPa
-----END PGP PUBLIC KEY BLOCK-----

 これで無事にアップデートが完了して、yum updateも成功します。

その後el6のパッケージを一応el7にアップデートしていきます。ちょっと面倒ですがやっておくと後々よいと思うので実施してみてください。

# yum list *el6*
インストール済みパッケージ
grep.x86_64 2.20-6.el6 @base/6
mongodb-org.x86_64 4.2.9-1.el6 @mongodb/6
mongodb-org-mongos.x86_64 4.2.9-1.el6 @mongodb/6
mongodb-org-server.x86_64 4.2.9-1.el6 @mongodb/6
mongodb-org-shell.x86_64 4.2.9-1.el6 @mongodb/6
mongodb-org-tools.x86_64 4.2.9-1.el6 @mongodb/6
mysql-community-client.x86_64 5.6.49-2.el6 @mysql56-community/6
mysql-community-common.x86_64 5.6.49-2.el6 @mysql56-community/6
mysql-community-devel.x86_64 5.6.49-2.el6 @mysql56-community/6
mysql-community-libs.x86_64 5.6.49-2.el6 @mysql56-community/6
mysql-community-release.noarch el6-5 @/mysql-community-release-el6-5.noarch/6
mysql-community-server.x86_64 5.6.49-2.el6 @mysql56-community/6
mysql-connector-python.x86_64 2.1.7-1.el6 @mysql-connectors-community/6
mysql-utilities.noarch 1.6.5-1.el6 @mysql-tools-community/6
mysqlclient16.x86_64 5.1.61-4.ius.el6 @ius/6
python-argparse.noarch 1.2.1-2.1.el6 @base/6
python-iwlib.x86_64 0.1-1.2.el6 @anaconda-CentOS-201303020151.x86_64/6.4
python-prioritized-methods.noarch 0.2.1-5.2.el6 @base/6
python-repoze-what.noarch 1.0.8-6.el6 @anaconda-CentOS-201303020151.x86_64/6.4
python-repoze-what-pylons.noarch 1.0-4.el6 @anaconda-CentOS-201303020151.x86_64/6.4
python36u.x86_64 3.6.8-1.el6.ius @ius/6
python36u-debug.x86_64 3.6.8-1.el6.ius @ius/6
python36u-devel.x86_64 3.6.8-1.el6.ius @ius/6
python36u-gunicorn.noarch 19.8.1-1.ius.el6 @ius/6
python36u-libs.x86_64 3.6.8-1.el6.ius @ius/6
python36u-lxml.x86_64 4.2.0-1.ius.el6 @ius/6
python36u-mod_wsgi.x86_64 4.6.2-1.ius.el6 @ius/6
python36u-pip.noarch 9.0.1-1.ius.el6 @ius/6
python36u-redis.noarch 2.10.6-1.ius.el6 @ius/6
python36u-setproctitle.x86_64 1.1.10-2.ius.el6 @ius/6
python36u-setuptools.noarch 39.0.1-1.ius.el6 @ius/6
python36u-test.x86_64 3.6.8-1.el6.ius @ius/6
python36u-tkinter.x86_64 3.6.8-1.el6.ius @ius/6
python36u-tools.x86_64 3.6.8-1.el6.ius @ius/6
qrencode-libs.x86_64 3.4.2-1.el6 installed

これで一覧が出てきますのでその後出てきたパッケージ名に対して

yum remove [パッケージ名]

yum install [パッケージ名]

 

これを永遠と繰り返します。それでもエラーになってしまうのもありますし、el7にはないパッケージもありますので、その場合はremoveのみで終わらせました。

今現在もかなりのel6パッケージが残っています。 これはまた時間が出来た時にでも整理したいと思います。

 

いったんはこれでCentOS7へのバージョンアップ完了としたいと思います。

 

うまくアップデートできない方はどしどしコメント下さい。出来る限りサポートいたします。