このブログを検索

ラベル python2 の投稿を表示しています。 すべての投稿を表示
ラベル python2 の投稿を表示しています。 すべての投稿を表示

2020/02/15

systemctl status を実行したら degrated と表示された @CentOS7

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は動いてなかった。

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

終わり。


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系になった。