Pythonをビルド
[caty-depl] というタグで、Catyの配備に関するメモを書くことにした。時間順(今日は、上から下に向かう順でエントリーを書く)が前後してしまうことになるが、とりあえずPythonのビルドから。
さくらサーバー(さくらの専用サーバSempron)を使っているが、/usr/bin/python は、2.3.4だった。
[hiyama@microapplications ~]$ which python
/usr/bin/python
[hiyama@microapplications ~]$ python -V
Python 2.3.4
[hiyama@microapplications ~]$ ls -lFi /usr/bin/py*
1103933 -rwxr-xr-x 2 root root 5396 Jul 26 2008 /usr/bin/python*
1103853 lrwxrwxrwx 1 root root 6 Oct 7 2008 /usr/bin/python2 -> python*
1103933 -rwxr-xr-x 2 root root 5396 Jul 26 2008 /usr/bin/python2.3*
[hiyama@microapplications ~]$ python
Python 2.3.4 (#1, Jul 25 2008, 14:24:21)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path (以下、折り返した)
['',
'/usr/lib/python2.3/site-packages/setuptools-0.6c7-py2.3.egg',
'/usr/lib/python2.3/site-packages/TracXMLRPC-0.1-py2.3.egg',
'/usr/lib/python2.3/site-packages/Genshi-0.4.4-py2.3.egg',
'/usr/lib/python23.zip',
'/usr/lib/python2.3',
'/usr/lib/python2.3/plat-linux2',
'/usr/lib/python2.3/lib-tk',
'/usr/lib/python2.3/lib-dynload',
'/usr/lib/python2.3/site-packages',
'/usr/lib/python2.3/site-packages/PIL',
'/usr/lib/python2.3/site-packages/gtk-2.0']
suして、なんやかんや。
# wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz
# tar zxvf Python-2.6.4.tgz
# cd Python-2.6.4
# ./configure --prefix=/usr/local/python
# make
# make install
これで、
[hiyama@microapplications ~]$ /usr/local/python/bin/python -V
Python 2.6.4
prefixを、/usr/local/python じゃなくて /usr にすると、以下にインストールされる。
- /usr/bin/python
- /usr/lib/python2.6/
- /usr/include/python2.6/
標準的な利用では、/usr直下におくべきだろうが、とりあえずはこのままにして、パスを追加しておこう。
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi# User specific environment and startup programs
PATH=/usr/local/python/bin:$PATH:$HOME/bin
export PATH
unset USERNAME
[hiyama@microapplications ~]$ . ~/.bash_profile
[hiyama@microapplications ~]$ which python
/usr/local/python/bin/python
[hiyama@microapplications ~]$ python -V
Python 2.6.4
[hiyama@microapplications ~]$ python
Python 2.6.4 (r264:75706, Jan 21 2010, 23:22:41)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['',
'/usr/local/python/lib/python26.zip',
'/usr/local/python/lib/python2.6',
'/usr/local/python/lib/python2.6/plat-linux2',
'/usr/local/python/lib/python2.6/lib-tk',
'/usr/local/python/lib/python2.6/lib-old',
'/usr/local/python/lib/python2.6/lib-dynload',
'/usr/local/python/lib/python2.6/site-packages']
使っているシステムは
[hiyama@microapplications ~]$ uname -a
Linux microapplications.net 2.6.9-78.0.5.plus.c4 #1 Wed Oct 8 13:39:28 EDT 2008 i686 athlon i386 GNU/Linux
[hiyama@microapplications ~]$ cat /proc/version
Linux version 2.6.9-78.0.5.plus.c4 (mockbuild@builder16.centos.org) (ここで折り返した)
(gcc version 3.4.6 20060404 (Red Hat 3.4.6-10)) #1 Wed Oct 8 13:39:28 EDT 2008
[hiyama@microapplications ~]$ cat /etc/redhat-release
CentOS release 4.7 (Final)
[hiyama@microapplications ~]$ gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-10)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[hiyama@microapplications ~]$
ユーザーの追加
sudo useradd -g member m-hiyama がうまくいかない。
[hiyama@microapplications ~]$ sudo useradd -g member m-hiyama
hiyama@microapplications Password:
sudo: useradd: command not found
[hiyama@microapplications ~]$
hiyamaからsuしてみると:
# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/python/bin:/usr/bin:/bin:/usr/local/bin:/home/hiyama/bin
なんかパスが足りないみたいな。
[hiyama@microapplications ~]$ su -
Password:
Script started, file is /root/log/root_20100122-10:37:54.log[root@microapplications ~ 10:37:54]
# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin[root@microapplications ~ 10:38:01]
# which useradd
/usr/sbin/useradd[root@microapplications ~ 10:38:04]
# useradd -g member m-hiyama[root@microapplications ~ 10:39:07]
# passwd m-hiyama
Changing password for user m-hiyama.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.[root@microapplications ~ 10:39:24]
#
これで、hiyama以外にm-hiyamaもできた。
hiyama@microapplications ~]$ su - m-hiyama
Password:
[m-hiyama@microapplications ~]$ ls -al
total 40
drwx------ 3 m-hiyama member 4096 Jan 22 10:40 .
drwxr-xr-x 18 root root 4096 Jan 22 10:40 ..
-w-r--r-- 1 m-hiyama member 24 Jan 22 10:40 .bash_logout
-w-r--r-- 1 m-hiyama member 191 Jan 22 10:40 .bash_profile
-w-r--r-- 1 m-hiyama member 124 Jan 22 10:40 .bashrc
-w-r--r-- 1 m-hiyama member 383 Jan 22 10:40 .emacs
-w-r--r-- 1 m-hiyama member 120 Jan 22 10:40 .gtkrc
drwxr-xr-x 2 m-hiyama member 4096 Jan 22 10:40 .xemacs
-w-r--r-- 1 m-hiyama member 658 Jan 22 10:40 .zshrc
[m-hiyama@microapplications ~]$
普通のユーザーのパスに/usr/sbinがないのね。PATH=/usr/sbin:$PATH; sudo ... とすればいいのか。どうもそうらしい。
次は、、、
Mercurialをインストールしたほうがよさそう。だが、easy_installを使うのがよさそう。easy_install自体はyumでインストールできるらしいが、rpmを直接使ってみようか。
インストール作業は
- # rpm -i rpm 新規インストール
- # rpm -ivh rpm 進捗を'#'で表示(1個で2%)
- # rpm -U rpmアップグレード
- # rpm -Uvh rpm 進捗表示
- # rpm -e pkgfull アンインストール
yumに関してもメモしておく。
- $ yum info パッケージ情報、けっこうな量の出力
- $ yum check-update アップデート可能なパッケージの一覧を表示
- $ yum list 利用可能なパッケージの一覧を表示
- $ yum list installed インストール済みパッケージの一覧を表示
- $ yum list updates アップデート可能なパッケージの一覧を表示
- $ yum search keyword キーワードでパッケージを検索する。
必要なソフトウェアスタックを自分で構成するって作業がなー、好きな人にはいいだろうが、僕みたいなモノグサには苦痛以外のなにものでもないな。あーー、嫌だイヤだ。
やっぱり、Amazon EC2を使って出来上がりマシンイメージを保存して使いまわすのがいいのかもしれないな。
サーバーを調べる
とにかく僕はサーバー管理/システム管理が大嫌いだから、さくらサーバーもH君に完全に任せていた。で、こいつは未知のマシンも同様。
「なにがどうなっているんじゃい??」を調べるために、使った/使うであろうコマンドやファイルを列挙。
- hostname この機械の名前
- uname -a もっと詳しく
- cat /proc/version OSに関する情報
- cat /etc/sysconfig/network ネットワーク基本情報、HOSTNAMEも入っている
- /sbin/service network status ネットワークがおよそどうなっているか?
- ls /etc/sysconfig/network-scripts/ifcfg-* どんなインターフェースがあるかな?
- cat /etc/sysconfig/network-scripts/ifcfg-eth0 IPアドレスとネットマスクが分かる
- cat /etc/sysconfig/network-scripts/ifcfg-lo こっちはローカル・ループバック
- cat /etc/resolv.conf ネームサーバーが書いてある
- less /etc/nsswitch.conf 情報を調べるバックエンドを何使っているか?
- cat /etc/hosts とりあえず見ておく
- /sbin/ifconfig ここにもIPアドレス
- top 走っているプロセス
- ps -lA | grep XXX プロセスを探す
- sudo /usr/sbin/lsof -i | less ソケットを使っているプロセス
- df ディスクはどんな感じ
- cat /etc/mtab マウントは?
- cat /etc/fstab ファイルシステムは?
- rpm -ql httpd | less Apacheのインストール状況
ドメインとWebサーバー
ドメインの制度的なことがさっぱりわからん。さくらにドメインオプション付けているけれど、、、
https://secure.sakura.ad.jp/menu/top/ のメニューから分かる情報は:
ドメイン名 | 状態 | 種別 | 有効期限日 |
---|---|---|---|
microapplications.net | 利用中 | ネームサーバ | - |
commuworld.org | 利用中 | ネームサーバ | - |
microapplications.net
シリアル | 2008061600 |
更新間隔(Refresh) | 3600 |
リトライ(Retry) | 900 |
有効期限(Expire) | 3600000 |
最小TTL | 3600 |
ゾーン情報:
エントリ名 | タイプ | データ |
---|---|---|
@ | NS | ns1.dns.ne.jp. |
NS | ns2.dns.ne.jp. | |
A | 219.94.153.157 | |
MX | 10 @ | |
www | CNAME | @ |
CNAME | @ | |
ftp | CNAME | @ |
juncture | CNAME | @ |
commuworld.orgも同様だが
エントリ名 | タイプ | データ |
---|---|---|
@ | NS | ns1.dns.ne.jp. |
NS | ns2.dns.ne.jp. | |
www | A | 219.94.153.157 |
dev | CNAME | www |
これが情報の全て。新しいドメインを貼りつけたいときは、さくらに申請するようだ。
登録担当者が申請情報確認し、作業が終了しましたら ×××@chimaira.org 宛てにご報告差し上げます。
それはそうとして、
$ service httpd status
httpd (pid 25779 25778 25777 25776 25775 25774 25773 25772 4220) is running...