Ubuntu環境構築

= {{{環境構築(Ubuntu-server版)}}} =

[[PageOutline]]

|| 環境 || 自サバ ||
|| OS || Linux ||
|| ディストリビューション || Ubuntu 7.10 ||

== パーティション ==
|| 基本 || / || 500MB ||
|| 論理 || /home || 他残り全部 ||
|| 論理 || /tmp || 5GB ||
|| 論理 || /usr || 10GB ||
|| 論理 || /usr/local || 10GB ||
|| 論理 || /var || 10GB ||
|| 論理 || swap || 500MB ||

== パッケージインストール ==

最新のリストをチェック

{{{
$sudo aptitude update
}}}

更新されているものをダウンロードとインストールして最新へ

{{{
$sudo aptitude upgrade
}}}

※apt-getも使えるが併用しないほうが良い。[[BR]]
debian Searcgeからaptitudeを推奨している。

※既にインストールされているパッケージの確認は下記で可能。

{{{
$sudo aptitude
}}}

開発環境用パッケージのインストール
まずはサーチ

{{{
$sudo aptitude search build-essential
}}}

次にインストール
※これでgccなどの開発環境が整う
{{{
$sudo aptitude install build-essential
}}}

もしCD-ROMを入れてね的なのが表示されたら、

{{{
$sudo vim /etc/apt/sources.list
}}}

で下記の場所をコメントアウトする。

{{{
deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ – Release i386 (20071016)]/ gutsy main restricted

をコメントアウトなので、下記のようになります。

#deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ – Release i386 (20071016)]/ gutsy main restricted
}}}

もしくは、build-essentialした後に

{{{
$sudo aptitude update
}}}

{{{
$sudo aptitude upgrade
}}}

をしてあげればよい。

== Vimインストール ==

Ubuntuにはデフォルトで入っているが、
そのままだとsyntax onでエラーになる。
なのでaptitudeでインストールしておく。
※vim-runtimeが依存関係なので、一緒にインストールされる。

{{{
$sudo aptitude install vim
}}}

== openssh-serverインストール ==
サーバにsshで入るために必要。[[BR]]

{{{
$sudo aptitude install openssh-server
}}}

これを入れればとりあえずローカル環境で入れる。[[BR]]
例えば別PCでsshで入ってみる。
{{{
$sudo ssh -l ユーザー名 192.168.0.2
}}}

== ネットワークの設定 ==

次にローカルでは無く外部からsshで接続するために設定する。[[BR]]
設定するファイルは下記。

{{{
/etc/networks/interfaces
}}}

このinterfacesに設定を記述する。[[BR]]
デフォルトがDHCP自動取得だったので下記のようになっている。

{{{
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
}}}

== ユーザーとグループ追加 ==

今回mysqlを使用するためmysqlユーザーとグループを作成する
まずはグループの追加。

{{{
$sudo groupadd グループ名(mysql)
}}}

次にユーザーの追加

{{{
$sudo useradd -g グループ名(mysql) -d ディレクトリパス(/home/mysql) -m ユーザー名(mysql)
}}}

※今回はmysqlのdataディレエクトリを/home/mysql以下に作成するので、
 ディレクトリを指定している。

== mysqlのdataディレクトリの作成 ==

{{{
$cd /home
$sudo mkdir mysql
$sudo chown mysql mysql
$cd mysql
$sudo mkdir data
$sudo chown mysql data
}}}

== curlインストール ==
{{{
$sudo aptitude install curl
}}}

== easy_installインストール ==

{{{
$sudo curl -O http://peak.telecommunity.com/dist/ez_setup.py
}}}

上記コマンドを叩くと下記が表示される。

{{{
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 8960 100 8960 0 0 11375 0 –:–:– –:–:– –:–:– 22683
}}}

最後に下記コマンドを叩いてインストール完了

{{{
sudo python2.5 ez_setup.py
}}}

== docutilsインストール ==

Pythonで書かれたテキスト処理ツール群。
reStructuredTextという簡単な構文で、
構造化されたテキストファイルを「HTML,XMLやLaTeX」
などのフォーマットに変換することができる。

{{{
$sudo easy_install-2.5 -U -Z docutils
}}}

== ipythonインストール ==

標準のPythonのシェルと比較して、 マクロ、履歴、ログなどさまざまな機能を持ったインタラクティブシェル

{{{
$sudo easy_install-2.5 -U -Z ipython
}}}

== {{{Mecabインストール}}} ==

{{{
$sudo wget http://downloads.sourceforge.net/mecab/mecab-0.96.tar.gz?modtime=1181487226&big_mirror=0
$sudo tar xzvf mecab-0.96.tar.gz
$sudo ./configure \
–prefix=/usr/local/mecab \
–with-charset=utf8
$sudo make
$sudo make install
}}}

== {{{Mecab-ipadicインストール}}} ==

{{{
$sudo wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz?modtime=1185895550&big_mirror=0
$sudo tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz
$sudo ./configure \
–prefix=/usr/local/mecab \
–with-charset=utf8 \
–with-mecab-config=/usr/local/mecab/bin/mecab-config
$sudo make
$sudo make install
}}}

== {{{Sennaインストール}}} ==

{{{
$sudo wget http://osdn.dl.sourceforge.jp/senna/27317/senna-1.0.9.tar.gz
$sudo tar xzvf senna-1.0.9.tar.gz
$sudo ./configure \
–prefix=/usr/local/senna \
–with-charset=utf8 \
–with-mecab \
–with-mecab-config=/usr/local/mecab/bin/mecab-config
$sudo make
$sudo make install
}}}

== {{{MySQLインストール}}} ==

* http://qwik.jp/tritonn/

※–localstatedir=/home/mysql/data オプションはデフォルトでインストールした場合、[[BR]]
 /usr/local/mysql5/var/data のようになります。[[BR]]
 これだとroot権限でないとdataディレクトリ内を書き換えたりする事が出来ないため、[[BR]]
 /home/mysql/dataに指定しています。[[BR]]
 他にデータが大きくなることも踏まえて、パーティションが一番大きい/home以下に作成しています。

{{{
$sudo wget http://globalbase.dl.sourceforge.jp/tritonn/28539/mysql-5.0.51-tritonn-1.0.8.tar.gz
$sudo tar zxvf mysql-5.0.51-tritonn-1.0.8.tar.gz
$sudo ./configure \
–prefix=/usr/local/mysql5 \
–localstatedir=/home/mysql/data \
–libexecdir=/usr/local/mysql5/bin \
–with-unix-socket-path=/home/mysql/data/mysql.sock \
–with-tcp-port=5432 \
–sysconfdir=/home/mysql/data \
–with-charset=utf8 \
–with-collation=utf8_general_ci \
–with-extra-charsets=all \
–with-mysqld-user=mysql \
–enable-thread-safe-client \
–enable-local-infile \
–enable-assembler \
–with-zlib-dir=bundled \
–with-big-tables \
–with-readline \
–with-innodb \
–with-senna=/usr/local/senna \
–with-mecab=/usr/local/mecab \
–with-extra-charsets=complex
}}}

上記を実行するとエラーが出てconfigureが通らない。。。[[BR]]
エラーは下記のように出てました。

{{{
checking for termcap functions library… configure: error: No curses/termcap library found
}}}

ライブラリが無いよと怒られているので、[[BR]]
インストールする。

{{{
$sudo aptitude install libncurses5-dev
}}}

これでもう一回実行すると、[[BR]]
素直に通る。[[BR]]
なのでmakeとmake installを実行する。[[BR]]

{{{
$sudo make
$sudo make install
}}}

* my.cnfのコピー

{{{
$sudo cp /usr/local/src/mysql-5.0.51-tritonn-1.0.8/support-files/my-medium.cnf /etc/my.cnf
}}}

* mysql_install_db

{{{
$sudo /usr/local/mysql5/bin/mysql_install_db –user=mysql
}}}

エラーになった。。。

{{{
Installing MySQL system tables…
ERROR: 1062 Duplicate entry ‘localhost-‘ for key 1
080125 16:15:42 [ERROR] Aborting

080125 16:15:42 [Note] /usr/local/mysql5/bin/mysqld: Shutdown complete

Installation of system tables failed!
}}}

この原因は自サバのホスト名がlocalhostに設定されているかららしい。[[BR]]
Googleさんに聞いたら、
こんな事が書かれているサイトがありました。

*

{{{
このコマンドスクリプトを最初に実行する前、

# hostname localhost

を実行して、一時的にサーバのホスト名を、localhostというホスト名に置き換えれば、別々なrootユーザの作成を防ぐ事が出来ます。

ただし、この場合、

ERROR: 1062 Duplicate entry ‘localhost-root’ for key 1
ERROR: 1062 Duplicate entry ‘localhost-‘ for key 1

とデータベース初期化の際にエラーが表示されます。これは本来、

* root@’ホスト名’

が挿入されるべき箇所に、重複して

* root@localhost

が挿入されるからです。これは意図した動作でもあるので無視して構いません。

なお、データベースを初期化した後は、ホスト名は従来のものに戻して下さい。
}}}

らしいので、[[BR]]
ホスト名を変更してから実行してみた。

{{{
$sudo hostname ホスト名
}}}

これを実行してからターミナルを一度終了させて、[[BR]]
もう一度立ち上げた。

次にmysql_installdbを実行してみる。

{{{
WARNING: The host ‘ホスト名’ could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables…
OK
Filling help tables…
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql5/bin/mysqladmin -u root password ‘new-password’
/usr/local/mysql5/bin/mysqladmin -u root -h ホスト名 password ‘new-password’

Alternatively you can run:
/usr/local/mysql5/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/mysql5 ; /usr/local/mysql5/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql5/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com

}}}

OKっぽいね。
でも一番上に

{{{
WARNING: The host ‘ホスト名’ could not be looked up with resolveip.
}}}

って出てるなぁ~。

* mysql起動

{{{
$sudo /usr/local/mysql5/bin/mysqld_safe –user=mysql &
}}}

* rootでログインする

{{{
$ mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>
}}}

* rootのパスワードを設定と匿名ユーザーの削除

{{{
mysql> set password for root@localhost=password(‘パスワードを入力’);
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Database changed
mysql> delete from user where User=”;
Query OK, 0 rows affected (0.00 sec)

mysql> delete from db where User=”;
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
}}}

* ユーザーの作成

※http://dev.mysql.com/doc/refman/4.1/ja/grant.htmlを参考[[BR]]
WITH GRANT OPTION 節を使用すると、[[BR]]
ユーザは自分が所有する権限を他のユーザに与えることができます。[[BR]]
GRANT 権限をユーザに設定する際は注意が必要です。[[BR]]
2 人のユーザがお互いの権限を組み合わせることが可能になるからです。

* 管理者権限を持つユーザを登録する
※ユーザー名には「-」などが使えないみたいですね。
例)hoge-hoge は無理。

{{{
GRANT ALL PRIVILEGES ON *.* TO ユーザー名@localhost IDENTIFIED BY ‘パスワード’ WITH GRANT OPTION;
}}}

* 管理者権限を与えるパラメータについて

{{{
権限:ALL PRIVILEGES(すべての権限)
データベース名.テーブル名:*.*(すべてのデータベースのすべてのテーブル)
ユーザ名:user1@”%” (すべてのホスト「”%”」の、ユーザ「user1」)
user1@localhost(ローカルホストの、ユーザ「user1」)
GRANT実行権限:(GRANT構文を実行する権限)
}}}

* 通常のデータ操作が行えるユーザを登録する

{{{
mysql> GRANT SELECT,INSERT,UPDATE,DELETE
-> ON データベース名.*
-> TO ユーザ名@localhost
-> IDENTIFIED BY ‘パスワード’;
mysql> FLUSH PRIVILEGES;
}}}

== python2.5-dev ==

{{{
$sudo aptitude install python2.5-dev
}}}

== libxml2-devインストール ==

{{{
$sudo aptitude install libxml2-dev
}}}

== libxslt-devインストール ==

{{{
$sudo aptitude install libxslt-dev
}}}

上記「python2.5-dev」と「libxml2-dev」「libxslt-dev」が無いと
lxmlインストールでこける。

== lxmlインストール ==

{{{
$sudo easy_install-2.5 -U -Z lxml
}}}

== MySQLdbインストール ==

{{{
$sudo easy_install-2.5 -U -Z MySQL-Python
}}}

を実行すると

{{{
sh: mysql_config: not found
}}}

って怒られる。[[BR]]
これはmysql_configが見つからないと怒られている。[[BR]]
なので追加する。[[BR]]
まずrootになりそこからmysql_configを追加してやる。

rootになる。
{{{
$sudo -s
}}}

次にmysqlのパスを追加する。[[BR]]
まずは既存のパスの確認。

{{{
$echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
}}}

「/mysqlをインストールしたディレクトリ/bin」を追加してやる。

{{{
$export PATH=/mysqlをインストールしたディレクトリ/bin:$PATH
}}}

パスの確認。

{{{
$echo $PATH
/mysqlをインストールしたディレクトリ/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
}}}

ちゃんと通っておればOK。

次にmysql_configの確認。

{{{
$which mysql_config
/mysqlをインストールしたディレクトリ/bin/mysql_config
}}}

ちゃんとあるのでldconfigに追加する。

{{{
$cd /etc/ld.so.conf.d/
$touch mysql.conf
$vim mysql.conf
}}}

下記を追加する。

{{{
/mysqlをインストールしたディレクトリ/lib/mysql
}}}

追加したら下記コマンドを実行する。

{{{
$ldconfig
}}}

反映されたら、[[BR]]
easy_installをもう一度実行する。[[BR]]
※sudoは付けずに!付けて行うとパスが見れない状態でeasy_installを実行するので、[[BR]]
エラーになる。

{{{
easy_install-2.5 -U -Z MySQL-Python
}}}

== pysqliteインストール ==

{{{
$sudo easy_install-2.5 -U -Z pysqlite
}}}

インストールを実行するとエラーになる。
エラーで怒られてしまう。

{{{
src/connection.h:33:21: error: sqlite3.h: No such file or directory
}}}

sqlite3が無いよと怒られる。[[BR]]
なのでsqlite3をインストールしてあげる。

{{{
$cd /usr/local/src/
$sudo wget sudo wget http://www.sqlite.org/sqlite-3.5.4.tar.gz
$sudo tar zxvf sqlite-3.5.4.tar.gz
$cd sqlite-3.5.4
$sudo ./configure \
–prefix=/usr/local/sqlite \
–enable-threadsafe \
–enable-cross-thread-connections
}}}

してから、
makeする。

{{{
$sudo make
}}}

ここでエラー発生。

{{{
make: tclsh: Command not found
make: *** [sqlite3.c] Error 127
}}}

tclなんてコマンドが無いよと怒られているので、
aptitudeでsearchしてみる。

{{{
libsqlite-tcl
}}}

があるのでこちらをインストールするついでに
libsqlite3-devもインストールする。

* http://packages.debian.org/ja/sid/libsqlite3-dev

{{{
$sudo aptitude install libsqlite3-dev
}}}

* http://packages.debian.org/ja/sid/interpreters/libsqlite-tcl

{{{
$sudo aptitude install libsqlite-tcl
}}}

もう一度

{{{
$sudo make
}}}

今度はエラーが出なくなった。

{{{
$sudo make install
}}}

でインストール完了

== aprインストール ==

※Subversion・Apacheをインストールする場合は、

* apr(Apache Portable Runtime)
* apr-util
* neon
* swig

が必要になるためインストールしておく。[[BR]]
後はそれに依存するものもインストールする。

{{{
$sudo aptitude install libexpat1-dev
}}}


{{{
$sudo aptitude install expat
}}}

をインストールしておく。
そうしないとSubversionのmake時にエラーが出て途中で止まる。

* http://apr.apache.org/download.cgi#apr0
* http://ftp.kddilabs.jp/infosystems/apache/apr/

{{{
$cd /usr/local/src/
$sudo tar zxvf apr-1.2.12.tar.gz
$cd apr-1.2.12
$sudo ./configure \
–prefix=/usr/local/apr \
–enable-threads
$sudo make
$sudo make install
}}}

== apr-utilインストール ==

※aprと同じディレクトリにインストールする!

{{{
$sudo tar zxvf apr-util-1.2.10.tar.gz
$cd apr-util-1.2.10
$sudo ./configure \
–prefix=/usr/local/apr \
–with-apr=/usr/local/apr
$sudo make
$sudo make install
}}}

== swigインストール ==

* http://www.swig.org/download.html

※2007/10/2現在の最新はswig1.3.31だが、subversion1.4.5ではswig1.3.29を使用する

{{{
$cd /usr/local/src
$sudo tar zxvf swig-1.3.29.tar.gz
$cd swig-1.3.29
$sudo ./configure \
–with-python=/usr/local/python25/bin/python \
–prefix=/usr/local/swig
}}}

ちゃんと通ったので下記を実行。

{{{
$sudo make
$sudo make install
}}}

インストール出来た。

== opensslインストール ==

aptitudeで

{{{
$sudo aptitude search openssl
}}}

でインストールされていないか確認[[BR]]
されていなければインストールする。

{{{
$sudo aptitude install openssl
}}}

== neonのインストール ==

* http://www.webdav.org/neon/neon-0.25.5.tar.gz

{{{
$sudo ./configure \
–with-ssl \
–enable-shared \
–prefix=/usr/local/neon

$sudo make
$sudo make install
}}}

== Apacheインストール ==

* http://httpd.apache.org/download.cgi

{{{
$sudo wget
$sudo tar zxvf httpd-2.2.6.tar.gz
$cd httpd-2.2.6
$sudo ./configure \
–enable-mods-shared=most \
–enable-auth-digest \
–enable-dav \
–enable-dav-fs \
–enable-dav-lock \
–enable-cgi \
–enable-cgid \
–enable-so \
–enable-rewrite \
–enable-ssl \
–prefix=/usr/local/apache226 \
–with-ssl \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr

$sudo make
$sudo make install
}}}

* apache226にシンボリックリンクを貼る

{{{
$cd /usr/local
$sudo ln -s apache226 apache
}}}

※今回はApache実行ユーザ=webadminで行う。

* webadminグループを追加する。

{{{
$sudo groupadd webadmin
}}}

* webadminユーザーを追加する。

※ユーザー追加のコマンドが[[BR]]
useradd -g グループ名 -d /home/ユーザーディレクトリ名 -m ユーザー名なので、
今回はwebadminに置き換えて実行する。

{{{
$sudo useradd -g webadmin -d /home/webadmin -m webadmin
}}}

* webadminディレクトリ以下にlogsディレクトリを作成する。

{{{
$cd /home/webadmin
$sudo mkdir logs
$sudo chown webadmin:webadmin logs
}}}

* Apache実行ユーザ=SVNリポジトリ権限のユーザとなるように、UserとGroupを変更する。[[BR]]
(※Apache実行ユーザ=webadmin)

{{{
$cd /usr/local/apache/conf
$sudo vim httpd.conf
}}}

下記の通り変更する。

{{{
#User daemon
#Group daemon
User webadmin
Group webadmin
}}}

* SSL設定ファイルの読み込み

※以下のInclude行がコメントアウトされているので解除する

{{{
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
}}}

* httpd-ssl.confの設定

{{{
$cd /usr/local/apache226/conf/extra
$sudo vim httpd-ssl.conf
}}}

今回は以下のような設定にする。

※/usr/local/apache226/conf/以下に各設定ファイルを置くようにする。

{{{
SSLCertificateFile “/usr/local/apache2/conf/server.crt”
SSLCertificateKeyFile “/usr/local/apache2/conf/server.key”

SSLCertificateFile “/usr/local/apache226/conf/ssl.crt/server.crt”
SSLCertificateKeyFile “/usr/local/apache226/conf/ssl.key/server.key”
}}}

* 秘密鍵/自己署名証明書作成(参考URL:http://linux.kororo.jp/cont/server/openssl_command.php)

{{{
$cd /usr/local/apache226/conf
$sudo mkdir ssl.crt
$sudo mkdir ssl.key
$sudo chown webadmin:webadmin ssl.crt
$sudo chown webadmin:webadmin ssl.key
$cd ssl.key
$sudo /usr/bin/openssl genrsa -des3 -out server.key 1024
}}}

対話式にPasswordを聞かれるので、入力してEnter

{{{
Enter pass phrase for server.key: パスワードを入力する
Verifying – Enter pass phrase for server.key: パスワードを入力する
}}}

次に

{{{
$cd ../ssl.crt
$sudo /usr/bin/openssl req -new -x509 -days 365 -key ../ssl.key/server.key -out server.crt
}}}

また対話式にPasswordを聞かれるので、入力してEnter

{{{
Enter pass phrase for server.key: パスワードを入力する
}}}

※項目の入力は任意だが仮でも良いので、入力しておく

{{{
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:foo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:foo
Organizational Unit Name (eg, section) []:foo
Common Name (eg, YOUR name) []:foo
Email Address []:foo@exmaple.com
}}}

* httpd-vhostsを有効にする

{{{
$sudo vim /usr/local/apache226/conf/httpd.conf
}}}

下記のコメントアウトを外す

{{{
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

 ↓
Include conf/extra/httpd-vhosts.conf
}}}

* 443ポートを空ける

ルータやiptablesを確認する。

* Apache起動

{{{
$sudo /usr/local/apache/bin/apachectl start
}}}

* 確認

{{{
http://ドメイン名/
https://ドメイン名/
}}}

正常なら「It works!」と表示される。

== clearsilverインストール ==

* http://www.clearsilver.net/downloads/

{{{
$sudo wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
$sudo ./configure \
–prefix=/usr/local/clearsilver \
–with-apache=/usr/local/apache226 \
–with-python=/usr/bin/python
$sudo make
$sudo make install
}}}

== subversionのインストール ==

xpatでworningが出るが無視。[[BR]]
インストール時のみ見つからないとworningが出ているだけ。

例)libtool: link: warning: `/usr/lib/gcc/i486-linux-gnu/4.1.3/../../..//libsqlite3.la’ seems to be movedなど

* http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz

{{{
$cd /usr/local/src
$sudo wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz
$sudo tar zxvf subversion-1.4.5.tar.gz
$cd subversion-1.4.5
$sudo ./configure \
–prefix=/usr/local/subversion145 \
–enable-dso \
–with-ssl \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr \
–with-apxs=/usr/local/apache226/bin/apxs \
–with-neon=/usr/local/neon \
–with-swig=/usr/local/swig \
–with-editor=/usr/bin/vim \
–without-jdk

$sudo make
$sudo make install
}}}

* subversionにシンボリックリンクを貼る

{{{
$cd /usr/local
$sudo ln -s subversion145 subversion
}}}

* tracなどの為にpythonバインディング「svn-python」をインストール

subversionをインストールしたディレクトリで

{{{
$cd /usr/local/src/subversion-1.4.5
$sudo make swig-py
$sudo make install-swig-py
$sudo vim /usr/lib/python2.5/site-packages/svn-python.pth
}}}

/usr/local/subversion145/libにsvn-pythonがあるか確認する。

で下記を記述する

{{{
/usr/local/subversion/lib/svn-python
}}}

* pythonからsubversionを読めているか確認する

{{{
$iptyhon
}}}

でインタラクティブシェルを起動。

{{{
#!python
In [1]: import svn

In [2]: from libsvn import fs
}}}

エラーが出ないことを確認する。

== SVNのレポジトリ作成 ==

/home/webadmin以下にsvn用のディレクトリを作成する。[[BR]]
※今回はapache実行ユーザーの「webadmin」に作成する。[[BR]]
「webadmin」のホームディレクトリ以下に「svn」というディレクトリを作成し、[[BR]]
そこを「svn」用のディレクトリにした。

{{{
$cd /home/webadmin
$sudo mkdir svn
$sudo chown webadmin:webadmin svn
}}}

試しに「hoge」というリポジトリを作成する。

{{{
$sudo /usr/local/subversion/bin/svnadmin create /home/webadmin/svn/hoge
$sudo sudo chown webadmin:webadmin hoge
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/trunk -m “create”
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/branches -m “create”
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/tags -m “create”
$sudo chown -R webadmin:webadmin hoge
}}}

データをインポートする

{{{
$svn import (インポート元の絶対パス) (インポート先) -m “initial project”
}}}

なので、[[BR]]
hogeをさっき作った/home/webadmin/svn/hoge/trunkへインポートする。

{{{
$svn import ./hoge file:///home/webadmin/svn/hoge/trunk -m “initial project”
}}}

== Django-svnのco(チェックアウト) ==

{{{
$cd /usr/local/src
$sudo /usr/local/subversion/bin/svn co ./Django-svn
}}}

* Djangoにシンボリックリンクを貼る

{{{
$cd /usr/lib/python2.5/site-packages/
$sudo ln -s /usr/local/src/Django-svn ./django
}}}

== JPEGインストール ==

画像関係を扱う場合に必要。
Python Imaging Libraryを使用するのに必要だったので、
インストール。

{{{
$sudo aptitude install libjpeg-dev
}}}

== Freetypeインストール ==

フォント関連のライブラリ。
Python Imaging Libraryを使用するのに必要だったので、
インストール。

{{{
$sudo aptitude install libfreetype6-dev
}}}

== PNGインストール ==

画像フォーマットの一つ。
Python Imaging Libraryを使用するのに必要だったので、
インストール。

{{{
$sudo aptitude install libpng12-dev
}}}

== Python Imaging Libraryインストール ==

* http://effbot.org/zone/pil-index.htm

{{{
$sudo wget http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz
$sudo tar zxvf Imaging-1.1.6.tar.gz
$cd Imaging-1.1.6
$sudo python setup.py build
}}}

buidした後に

{{{
——————————————————————–
PIL 1.1.6 BUILD SUMMARY
——————————————————————–
version 1.1.6
platform linux2 2.5 (r25:51908, Aug 10 2007, 19:11:31)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)]
——————————————————————–
*** TKINTER support not available
— JPEG support ok
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok

*** Warning: zlib 1.2.1.2 may contain a security vulnerability.
*** Consider upgrading to zlib 1.2.3 or newer.
*** See: http://www.kb.cert.org/vuls/id/238678
http://www.kb.cert.org/vuls/id/680620
http://www.gzip.org/zlib/advisory-2002-03-11.txt

——————————————————————–
}}}

こんな感じになってれば、OK。確認する所は、

{{{
— JPEG support ok
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok
}}}

次に

{{{
$sudo python setup.py install
}}}

でインストールが完了したら、実際に使用できるのかを確認。

{{{
$ipython
}}}

でインタラクティブシェルにて確認する。[[BR]]
下記の通りPILライブラリからImageをインポートする。

{{{
#!python

In [1]: from PIL import Image

In [2]:

}}}

importしてエラーにならなければ、OK。

{{{
$ldconfig -p | grep ‘svn’
}}}

してパスが通っていないので、[[BR]]
追加する。

{{{
$sudo vim /etc/ld.so.conf.d/svn.conf
}}}

下記を記述する。

{{{
/usr/local/subversion/lib
}}}

記述後に反映させる。

{{{
$ldconfig
}}}

次に確認する。

{{{
$ldconfig -p | grep ‘svn’
}}}

下記のように表示されればOK

{{{
libsvn_wc-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_wc-1.so.0
libsvn_wc-1.so (libc6) => /usr/local/subversion/lib/libsvn_wc-1.so
libsvn_swig_py-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_swig_py-1.so.0
libsvn_swig_py-1.so (libc6) => /usr/local/subversion/lib/libsvn_swig_py-1.so
libsvn_subr-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_subr-1.so.0
libsvn_subr-1.so (libc6) => /usr/local/subversion/lib/libsvn_subr-1.so
libsvn_repos-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_repos-1.so.0
libsvn_repos-1.so (libc6) => /usr/local/subversion/lib/libsvn_repos-1.so
libsvn_ra_svn-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_ra_svn-1.so.0
libsvn_ra_svn-1.so (libc6) => /usr/local/subversion/lib/libsvn_ra_svn-1.so
libsvn_ra_local-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_ra_local-1.so.0
libsvn_ra_local-1.so (libc6) => /usr/local/subversion/lib/libsvn_ra_local-1.so
libsvn_ra_dav-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_ra_dav-1.so.0
libsvn_ra_dav-1.so (libc6) => /usr/local/subversion/lib/libsvn_ra_dav-1.so
libsvn_ra-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_ra-1.so.0
libsvn_ra-1.so (libc6) => /usr/local/subversion/lib/libsvn_ra-1.so
libsvn_fs_fs-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_fs_fs-1.so.0
libsvn_fs_fs-1.so (libc6) => /usr/local/subversion/lib/libsvn_fs_fs-1.so
libsvn_fs-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_fs-1.so.0
libsvn_fs-1.so (libc6) => /usr/local/subversion/lib/libsvn_fs-1.so
libsvn_diff-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_diff-1.so.0
libsvn_diff-1.so (libc6) => /usr/local/subversion/lib/libsvn_diff-1.so
libsvn_delta-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_delta-1.so.0
libsvn_delta-1.so (libc6) => /usr/local/subversion/lib/libsvn_delta-1.so
libsvn_client-1.so.0 (libc6) => /usr/local/subversion/lib/libsvn_client-1.so.0
libsvn_client-1.so (libc6) => /usr/local/subversion/lib/libsvn_client-1.so

}}}

これをしておかいないとTracを動かした場合に、[[BR]]

{{{
SubversionException: (“Failed to load module for FS type ‘fsfs'”, 160033)
}}}

なんてエラーが出てしまうので注意。[[BR]]
これでちょっとはまったw[[BR]]
CentOSの場合は、trac-adminコマンドの時点でエラーになったが、[[BR]]
Ubuntuの場合はここでエラーになった。[[BR]]
そんな違いがあるとは・・・。

後は、[[BR]]
「trac-admin resync」的なのが出た場合には、[[BR]]
Trac TimelineとSVN repositoryが同期されていなために出ているエラーなので、[[BR]]
同期してあげる。

{{{
$cd /home/webadmin/trac
$sudo trac-admin hoge resync
Resyncing repository history…
3 revisions cached. Done.
}}}

でOK。

== mod_wsgiインストール ==

* http://modwsgi.googlecode.com/files/mod_wsgi-1.0c3.tar.gz

{{{
$sudo wget http://modwsgi.googlecode.com/files/mod_wsgi-2.0c4.tar.gz
$sudo tar zxvf mod_wsgi-2.0c4.tar.gz
$sudo ./configure \
–with-apxs=/usr/local/apache226/bin/apxs \
–with-python=/usr/bin/python
}}}

した結果が下記。

{{{
> –with-apxs=/usr/local/apache226/bin/apxs \
> –with-python=/usr/bin/python
checking Apache version… 2.2.6
configure: creating ./config.status
config.status: creating Makefile
}}}

次にmake

{{{
$sudo make
}}}

した結果が下記。

{{{
/usr/local/apache226/bin/apxs -c -I/usr/include/python2.5 -DNDEBUG mod_wsgi.c -L/usr/lib/python2.5/config -lpython2.5 -lpthread -ldl -lutil
/usr/local/apr/build-1/libtool –silent –mode=compile gcc -prefer-pic -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache226/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr/include/apr-1 -I/usr/include/python2.5 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
/usr/local/apr/build-1/libtool –silent –mode=link gcc -o mod_wsgi.la -rpath /usr/local/apache226/modules -module -avoid-version mod_wsgi.lo -L/usr/lib/python2.5/config -lpython2.5 -lpthread -ldl -lutil
}}}

次にmake install

{{{
$sudo make install
}}}

した結果が下記。

{{{
/usr/local/apache226/bin/apxs -i -S LIBEXECDIR=/usr/local/apache226/modules -n ‘mod_wsgi’ mod_wsgi.la
/usr/local/apache226/build/instdso.sh SH_LIBTOOL=’/usr/local/apr/build-1/libtool’ mod_wsgi.la /usr/local/apache226/modules
/usr/local/apr/build-1/libtool –mode=install cp mod_wsgi.la /usr/local/apache226/modules/
cp .libs/mod_wsgi.so /usr/local/apache226/modules/mod_wsgi.so
cp .libs/mod_wsgi.lai /usr/local/apache226/modules/mod_wsgi.la
cp .libs/mod_wsgi.a /usr/local/apache226/modules/mod_wsgi.a
ranlib /usr/local/apache226/modules/mod_wsgi.a
chmod 644 /usr/local/apache226/modules/mod_wsgi.a
PATH=”$PATH:/sbin” ldconfig -n /usr/local/apache226/modules
———————————————————————-
Libraries have been installed in:
/usr/local/apache226/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,–rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
chmod 755 /usr/local/apache226/modules/mod_wsgi.so
}}}

* httpd.confへ追記する。

{{{
$sudo sudo vim /usr/local/apache226/conf/httpd.conf
}}}

下記を記述する。

{{{
LoadModule wsgi_module modules/mod_wsgi.so
}}}

== TracPygmentsインストール ==

Tracでソースコードをシンタックスハイライトしてくれる。

{{{
$sudo easy_install-2.5 -U -Z TracPygments
}}}

== Tracインストール ==

* http://ftp.edgewall.com/pub/trac/

{{{
$cd /usr/local/src
$sudo wget http://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz
$sudo tar xzf trac-0.10.4.tar.gz
$python2.5 ./setup.py build
$python2.5 ./setup.py install
}}}

== Tracのプロジェクトを作成 ==

{{{
$cd /home/webadmin
$sudo mkdir trac
$sudo chown -R webadmin:webadmin trac
$trac-admin hoge initenv
}}}

これで対話的に聞かれるので設定する。

{{{
Project Name [My Project]> hoge /* ここはプロジェクト名を記述 */
Database connection string [sqlite:db/trac.db]> /* デフォルトがsqliteなのでそのままEnter */
Repository type [svn]> /* デフォルトのままなのでEnter */
Path to repository [/path/to/repos]> /home/webadmin/svn/hoge /* ここには先ほど作成した「jsample」のリポジトリを指定 */
Templates directory [/usr/local/python/share/trac/templates]> /* デフォルトのままなのでEnter */
}}}

で完了。
Apacheを再起動して接続出来るか確認する。

== Beautifulsoupをインストール ==

ファイルをpythonが読み込める場所に保存するのみらしいので、[[BR]]
今回は「site-pakages」の下において置いた。

{{{
$sudo wget
}}}

これだけです。[[BR]]
後は読み込めるかテストしてみる。

{{{
$ipython

In [1]:from BeautifulSoup import BeautifulSoup
}}}

== PyCryptoをインストール ==

*

{{{
$sudo wget
$sudo tar zxvf pycrypto-2.0.1.tar.gz
$cd pycrypto-2.0.1
$sudo python setup.py build
$sudo python setup.py install
}}}

== Universal Feed Parserをインストール ==

* http://feedparser.org/

{{{
$ wget http://feedparser.googlecode.com/files/feedparser-4.1.zip
$ unzip feedparser-4.1.zip -d feedparser-4.1
$ cd feedparser
$ sudo python setup.py install
}}}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です