2014年3月19日水曜日

Python3をyumでインストールして、pipを使えるようにします。 CentOS6


Python3.3.0をyumでインストールして、pipを使えるようにします。
また、python3で動くアプリケーションとしてNetstat-monitorを動かしてみます。
環境は、CentOS release 6.4です。

Python3のインストール

yumレポジトリの準備
# cd /etc/pki/rpm-gpg/
# wget -q http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
# rpm --import RPM-GPG-KEY-puias
# vim /etc/yum.repos.d/puias-computational.repo
[PUIAS_6_computational]
name=PUIAS computational Base $releasever - $basearch
mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias

yumでpython3をインストール
# yum install python3.x86_64 python3-tools.x86_64

python3がインストールされた事を確認
# python3 --version
Python 3.3.0

python3のパスを確認
# which python3
/usr/bin/python3

pipのインストール

# wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz --no-check-certificate
# tar xzvf  distribute-0.6.49.tar.gz
# cd distribute-0.6.49
# python3 setup.py install
# cd /usr/lib/python3.3/site-packages/distribute-0.6.49-py3.3.egg
# python3 ./easy_install.py pip

pipがインストールされた事を確認
# pip -V
pip 1.5.4 from /usr/lib/python3.3/site-packages/pip-1.5.4-py3.3.egg (python 3.3)

ここまでの手順をFabricにまとめました。こちらです。
https://github.com/takeshiyako2/fabric-scripts#install-python3

Netstat-monitorのインストール

python3で何かアプリケーションを動かしてみましょう。
Netstat-monitor(https://github.com/stalexan/netstat-monitor)を使用してみます。
このアプリケーションは、netstat --inet -alp を tail 表示してくれます。フィルターも設定できるみたいなので、色々とデバッグに使えそうです。

netaddrモジュールをインストール
# pip install netaddr

モジュール確認
# python3 -c "help('modules')"

# wget -O /tmp/netstat-monitor-last.tgz https://github.com/stalexan/netstat-monitor/tarball/master --no-check-certificate
# cd /tmp
# tar zxvf netstat-monitor-last.tgz
# cd stalexan-netstat-monitor-*

Netstat-monitorを実行
# python3 ./netstat-monitor

以下のようなログがずらずらっと表示されてきます。
Mar 19 18:43:46 tcp   12  td-agent 100.100.100.100:51011 s3-ap-northeast-1.amazonaws.com:443 ESTABLISHED 951   /usr/bin/ruby        /usr/bin/ruby /usr/sbin/td-agent --group td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
Mar 19 18:43:46 tcp   13  td-agent 100.100.100.100:32999 s3-ap-northeast-1.amazonaws.com:443 CLOSE_WAIT  951   /usr/bin/ruby        /usr/bin/ruby /usr/sbin/td-agent --group td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
Mar 19 18:43:46 udp   14  root     100.100.100.100:123   0.0.0.0:0                        3078  /usr/sbin/ntpd       ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
Mar 19 18:43:46 udp   15  root     127.0.0.1:123        0.0.0.0:0                        3078  /usr/sbin/ntpd       ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
Mar 19 18:43:46 udp   16  root     0.0.0.0:123          0.0.0.0:0                        3078  /usr/sbin/ntpd

かんたんですね!