AWSのLightsailのWordPress(BitNami)へ移行する際の要点まとめ
BitNami(AW…
色々あってPythonが必要になったので、セットアップのメモ。個人で管理しているサーバをそろそろCentOS6.6からCentOS7へ変えていきたいので、ちょうど良い機会と思い、CentOS6.6とCentOS7.1の両環境でのPythonの開発環境のセットアップを試してみた。なお、この記事はセットアップに関するもので、使い方については他を参照することとしたい。
まずは、下記のソフトウェアをインストールする。
yyuu/pyenv
これは何をするものかというと、マシンに同時に複数の異なるバージョンのPythonをインストールし、使えるようにするものだ。バージョンマネージャと呼ばれる分類のソフトウェアだ。というわけでインストールをしてみる。基本的には、上記のGithubにあるやり方で進める。さくっとターミナルで打つコマンドの手順を書いていく。
$ sudo yum install -y bzip2-devel patch $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile $ pyenv -v pyenv 20150913-14-gd462e15
$ sudo yum install -y git $ sudo yum install -y bzip2-devel readline-devel openssl-devel sqlite-devel patch $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source ~/.bash_profile $ pyenv -v pyenv 20150913-14-gd462e15
最終行の、
$ pyenv -v
でpyenvのバージョン情報が表示されれば、pyenvは正しくインストールされている。これができていないと次に進めない。
さて、こうしてみるとCentOS7.1のほうが管理者権限にてインストールするパッケージ自体が少なくてスッキリしている感じがする。まあ、実際にこうしてやりたいことを異なるOSバージョンで打ってみると違いが分かるというもの。注意としては、CentOS6.6では初期状態では、意外と入っていそうでgitがインストールされていないので、それは強調しておく。ちなみに、CentOS7.1とCentOS6.6で、ともにpatchというパッケージをインストールしたが、これは別に新しいバージョンのPythonだけを使いたい場合は不要である(Python 3.5.0では不要であった)。確認したところ、Python 2.7.10のインストールではpatchのパッケージがない場合はエラーが出てインストールができないことが確認できている。
pyenvの開発者の方が、システムレベルでソフトウェアをインストールしなくても依存関係をクリアしてPythonをインストールできる、それはとても便利なスクリプトを公開している。それがこちら。
yyuu/pyenv-installer
オマケなので、依存関係のためのパッケージが多いCentOS6.6で試してみた。pyenvがインストールされるまで、わずかこれだけである(エディタの記入内容で行数が増えているように見えるが、実際は少ない)。
$ sudo yum install -y git patch $ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash $ vi ~/.bash_profile ## 下記を記述 ## export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" $ source ~/.bash_profile $ pyenv -v pyenv 20150913-14-gd462e15
システムレベルでなく、依存関係をクリアするって何やっているんだろう?と思い、スクリプトの中身を覗いてみた。何やら開発者が作成したpyenv向けのプラグインをいくつか同時にセットアップしている様子しか見られなかった。そうすることで依存関係をクリアしているのだろうか?このあたりはもっとちゃんとみないといけないので、興味のある方はスクリプトの中身を見てみると良いと思う。あとは、通常通りの依存関係をクリアしてセットアップしたpyenvとの動作の違いについては、pyenv-installerのやり方では、通常の依存関係を解消した場合よりも少しターミナルのコマンド入力直後の応答速度が落ちた気がする。なので、通常のインストールができるのであれば、通常通りシステムレベルで依存関係を解消するほうが良いかもしれない。ちなみに、こちらのインストールスクリプトは、Githubのスター数が2015年10月6日時点だと、173で、pyenvの3151と比べるとだいぶ少ないので、さほど労力でもないし、あまり選ぶ意味はないかもしれない。どちらかというと、サーバ操作がよく分からない人向けで、さっさとPythonを使えさえすれば良いという場合はおそらくは用途としてハマるやり方だ。あとは考えられるとしたら、管理者権限に制約がある環境で、gitがインストールされている場合とか。
次に開発ごとにpythonにインストールされているパッケージ環境自体を切り替えるために、virtualenvをインストールする。
Virtualenv — virtualenv 13.1.2 documentation
こちらは、OS別でコマンドは異なることはない。以下にコマンドを示す。
$ pyenv install 3.5.0 $ pyenv global 3.5.0 $ python -V Python 3.5.0 $ pip install virtualenv $ virtualenv --version 13.1.2
virtualenvをインストールするには、pyenvにて、何かしらのバージョンのPythonをインストールし、global(対象ユーザのシステム全体)に設定しておく必要がある。ここでは、3.5.0をインストールし、globalに設定した。もし、他のバージョンをインストールしたい場合は
$ pyenv install --list
と入力して、pyenvがインストール可能なPythonバージョンを表示して、
$ pyenv install (任意のバージョン)
とすればよい。
Pythonのセットアップというより、Vagrantの環境に感動した(Vagrantで構築して手順をおこしてた)。作っては壊す、はなかなかにこういったチュートリアル作成には便利だ。あとは、pyenvは俗言うなんとかenv系のソフトウェアだ。今回、pyenvを調べている時に、anyenvという、Python,Ruby,Node.js,Go…など多彩な言語に対応したバージョンマネージャを発見したので、ちょっと試してみたいなあと思った。最近は、Node.js,Perl,Python,Rubyあたりがなんらかの機会で使うタイミングがあるので、ハマれば面白いかもしれない。
プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。
Discussion about this post