CentOS7の話
以前さくらのVPSでmysqlをインストールしてちょっと使ってみたことがあったのだが、
久しぶりにDBをいじってみたいと思い、mysqlが起動しているか確認するために
systemctl status
を実行したら、赤字で
State: degrated
と表示された。
うわ!と思い、検索すると起動に失敗したサービスがある場合にそうなるらしいことがわかった。
きっと使ってないしょうもないサービスだろうから無効にしようと思い、
systemctl --failed
を実行すると
● firewalld.service loaded failed failed firewalld - dynamic firewall daemon
firewalldが起動していなかった。
さすがにそれはマズいだろうとちょっと焦ってなんでだろうと調べた結果思い当たったのは、しばらく前にpythonのシンボリックリンクを3系向けに変更したことだった。
それを変更したのはpythonで書いたcgiが動かなくなったからだったのだが、
firewallが起動しないことの方が問題なのでとりあえずシンボリックリンクを2系向けに戻した。
firewalldは起動するようになり、cgiはエラーになった。
cgiの1行目(これなんて言うんだっけ)を
#!/bin/python3.6
に直す。
これでcgiも動くようになった。
pythonのデフォルトバージョンが2系になってしまったが、
コマンドでpythonを実行することはあまりないのでいいか.....
それにしてもpythonの2系・3系問題はウザいね.....
CentOS8はみんなpython3系になっているようなのでこういうことは起こらないみたい。
で、本来確認したかったmysqlは動いてなかった。
このブログを検索
2020/02/15
2019/06/22
さくらのVPSを1台解約するにあたって移行
2台もいらない。
低スペックの方を残す。
よく使うcgiと、メールと、twitter botと、それぐらいしか使わないから。
centos6からcentos7への移行となる。
途中で気づいたがpythonも2.7から3.6の移行となる。
python3系にするとyumでエラーになる。
yumは2系を前提としているからだ。
/bin/yum
を直すのは以前にもやった。
mod_sslをインストールしようとしたら、
Downloading packages:
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax
なんてエラーも出たので
/usr/libexec/urlgrabber-ext-down
も直す。
こんなことでいいのかな。
以前centos6でやったhttpsを使う設定をしていき、
最後にfirewallで443を開けるところまで来て、
そういえば7はiptableじゃない....
いまどうなってるかな...
firewall-cmd --list-all-zones
とやると、エラーになる。
これもpython2系にしないとダメだ。
どいつもこいつもpythonを使っていて、しかも2系なんだな...
3系にするのは先走りなのか...
サービスで開ける。
firewall-cmd --add-service=https --zone=public
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
終わり。
低スペックの方を残す。
よく使うcgiと、メールと、twitter botと、それぐらいしか使わないから。
centos6からcentos7への移行となる。
途中で気づいたがpythonも2.7から3.6の移行となる。
python3系にするとyumでエラーになる。
yumは2系を前提としているからだ。
/bin/yum
を直すのは以前にもやった。
mod_sslをインストールしようとしたら、
Downloading packages:
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax
なんてエラーも出たので
/usr/libexec/urlgrabber-ext-down
も直す。
こんなことでいいのかな。
以前centos6でやったhttpsを使う設定をしていき、
最後にfirewallで443を開けるところまで来て、
そういえば7はiptableじゃない....
いまどうなってるかな...
firewall-cmd --list-all-zones
とやると、エラーになる。
これもpython2系にしないとダメだ。
どいつもこいつもpythonを使っていて、しかも2系なんだな...
3系にするのは先走りなのか...
サービスで開ける。
firewall-cmd --add-service=https --zone=public
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
終わり。
2019/03/02
python3をデフォルトにする@centos6
google analyticsがあるcgiがinternal server errorになっていることを報告してきて、
それを直している過程で、
perl (LWP)でやっているスクレイピングが時代遅れ
pythonの2系は時代遅れ
ということを悟ったので、3系(3.6)をインストールした。
2.6とか2.7とかいろいろ入ってしまったのできれいにしようと思ったのだが、
うまく消えないのでとりあえず3系がデフォルトで動くようにした。
# pip install beautifulsoup4
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python2.7/site-packages (4.7.1)
Requirement already satisfied: soupsieve>=1.2 in /usr/local/lib/python2.7/site-packages (from beautifulsoup4) (1.8)
Requirement already satisfied: backports.functools-lru-cache; python_version < "3" in /usr/local/lib/python2.7/site-packages (from soupsieve>=1.2->beautifulsoup4) (1.5)
#
beautifulsoupなる便利なものがあると聞いて使ってみようとしたら「まだ2.7なんか使ってんのかよ」と怒られた。
# python --version
Python 2.6.6
python
とだけやると、2.6.6が起動する。
python3.6
とやれば3系が動くようにはなっているが、面倒。
# python3.6
Python 3.6.7 (default, Dec 5 2018, 15:02:16)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
"python" はシンボリックリンクなので、
それを3系にリンクしなおせばよい。
# which python
/usr/bin/python
# which python3.6
/usr/bin/python3.6
pipも
# which pip3.6
/usr/bin/pip3.6
# which pip
/usr/local/bin/pip
# ln -s /usr/bin/python3.6 /usr/bin/python
ln: creating symbolic link `/usr/bin/python': ファイルが存在します
現在のリンクを消してから3系へのリンクを作る。
# unlink /usr/bin/python
# ln -s /usr/bin/python3.6 /usr/bin/python
# ln -s /usr/bin/pip3.6 /usr/local/bin/pip
ln: creating symbolic link `/usr/local/bin/pip': ファイルが存在します
pipも同様
# unlink /usr/local/bin/pip
# ln -s /usr/bin/pip3.6 /usr/local/bin/pip
# python
Python 3.6.7 (default, Dec 5 2018, 15:02:16)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# pip -V
pip 9.0.1 from /usr/lib/python3.6/site-packages (python 3.6)
pythonもpipも3系になった。
それを直している過程で、
perl (LWP)でやっているスクレイピングが時代遅れ
pythonの2系は時代遅れ
ということを悟ったので、3系(3.6)をインストールした。
2.6とか2.7とかいろいろ入ってしまったのできれいにしようと思ったのだが、
うまく消えないのでとりあえず3系がデフォルトで動くようにした。
# pip install beautifulsoup4
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python2.7/site-packages (4.7.1)
Requirement already satisfied: soupsieve>=1.2 in /usr/local/lib/python2.7/site-packages (from beautifulsoup4) (1.8)
Requirement already satisfied: backports.functools-lru-cache; python_version < "3" in /usr/local/lib/python2.7/site-packages (from soupsieve>=1.2->beautifulsoup4) (1.5)
#
beautifulsoupなる便利なものがあると聞いて使ってみようとしたら「まだ2.7なんか使ってんのかよ」と怒られた。
# python --version
Python 2.6.6
python
とだけやると、2.6.6が起動する。
python3.6
とやれば3系が動くようにはなっているが、面倒。
# python3.6
Python 3.6.7 (default, Dec 5 2018, 15:02:16)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
"python" はシンボリックリンクなので、
それを3系にリンクしなおせばよい。
# which python
/usr/bin/python
# which python3.6
/usr/bin/python3.6
pipも
# which pip3.6
/usr/bin/pip3.6
# which pip
/usr/local/bin/pip
# ln -s /usr/bin/python3.6 /usr/bin/python
ln: creating symbolic link `/usr/bin/python': ファイルが存在します
現在のリンクを消してから3系へのリンクを作る。
# unlink /usr/bin/python
# ln -s /usr/bin/python3.6 /usr/bin/python
# ln -s /usr/bin/pip3.6 /usr/local/bin/pip
ln: creating symbolic link `/usr/local/bin/pip': ファイルが存在します
pipも同様
# unlink /usr/local/bin/pip
# ln -s /usr/bin/pip3.6 /usr/local/bin/pip
# python
Python 3.6.7 (default, Dec 5 2018, 15:02:16)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# pip -V
pip 9.0.1 from /usr/lib/python3.6/site-packages (python 3.6)
pythonもpipも3系になった。