Postgres8.0の設定メモ

ログ出力の設定

postgresのログをsyslogへ吐くように変更。


/usr/local/pgsql/data/postgresql.confを以下のように変更。

〜略〜
log_destination = 'syslog'
〜略〜
log_statement = 'all'
〜略〜


/etc/syslog.confに以下を追加。

local0.*        /var/log/postgresql.log
TCP接続の設定

標準ではUNIXドメインソケットでの接続しかできない為、
TCP接続を行えるように変更する。

/usr/local/pgsql/data/postgresql.confを以下のように変更。

listen_addresses = '*'


/usr/local/pgsql/data/pg_hba.confへ以下を追加。
LANからのアクセスを許可し、パスワードによる認証を行う。

host    all    all    192.168.0.0/24    password
自動起動の設定

・/etc/rc.d/rc.local

su postgres -c "/usr/local/pgsql/bin/pg_ctl start"

Postgres8.0をインストールする。

Windowsマシンへpostgres8.0をインストールしてみたんだけど、
せっかくなんでLinuxマシンへもインストールしてみる。


1.RPMのアンインストール

最初からPosgresがインストールされている場合、
2重にインストールされることになる為、インストールされているものをまずは削除する。
依存関係があるものも全て削除しました。

rpm -e postgresql-devel
rpm -e postgresql
rpm -e postgresql-server
rpm -e postgresql-pl
rpm -e postgresql-contrib
rpm -e postgresql-freeradius
rpm -e freeradius-postgresql
rpm -e postgresql-jdbc
rpm -e postgresql-python
rpm -e postgresql-odbc
rpm -e postgresql-docs
rpm -e postgresql-tcl
rpm -e postgresql-libs
rpm -e mod_auth_pgsql
rpm -e planner
rpm -e perl-DBD-Pg
rpm -e libdbi-dbd-pgsql
rpm -e qt-PostgreSQL
rpm -e php-pgsql
rpm -e postgresql-libs


2.ソースをダウンロード

PostgreSQLのサイトからソースをダウンロードします。
http://www.postgresql.org/

postgresql-8.0.1.tar.gz」をダウンロードしました。
ダウンロードしたファイルは「/usr/local/src/」へ展開します。


3.コンパイル

昔ソースからコンパイルした時には、configureの引数に「--enable-multibyte」などを
指定した記憶があるんだけど、現在はなにも指定しなくても普通に日本語が使えるらしい。

# ./configure
# make all
# make check
# make install

なんかエラーが出てたけど。。。


4.ユーザを追加する

# /usr/sbin/adduser postgres
# chown postgres:postgres /usr/local/pgsql


5.DBを初期化する。

# su - postgres
$ mkdir /usr/local/pgsql/data
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/


6.初期設定
postgresユーザの.bashrcに以下を追加する。

export PATH=$PATH:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

.bashrcを読み直す。

$ . ~/.bashrc


7.サーバの起動とDBの作成
サーバを起動する。

$ pg_ctl start

DBを作成する。引数を省略しているので、ユーザ名と同名のDBが作成される。

createdb -E UTF-8


8.接続してみる

[postgres@fourth pgsql]$ psql
Welcome to psql 8.0.1, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 postgres  | postgres | UNICODE
 template0 | postgres | UNICODE
 template1 | postgres | UNICODE
(3 rows)

Mavenに触ってみました。

Maven(メイベン - 達人)

MavenApache Software Foundation で開発されているJavaベースのプロジェクト管理ツール。

Mavenはソフトウェア開発プロジェクトをPOM(Project Object Model)というモデルで
プロジェクトを管理する。
管理するプロジェクトの単位は、最終的に1つのJarファイルを生成する規模を想定している。

project.xmlで以下のような情報を管理する。

インストール

アーカイブを公式サイトからダウンロードする。
http://maven.apache.org/

②展開したディレクトリへのパスを「MAVEN_HOME]という環境変数へ定義する。
 (${MAVEN_HOME}/binへパスを通す。)

③ローカルリポジトリの初期化を行う。
 成功すると、リポジトリへJarが格納される。

mkdir ${MAVEN_HOME}/repo
install_repo.bat ${MAVEN_HOME}/repo
実行

Mavenは、引数にゴールを渡してあげることで実行される。
ゴールとは、Antのターゲットのようなものである。
異なる点としては、Antはガリガリとターゲットを記述する必要があることに
対して、Mavenではプラグインとしてあらかじめいくつかのゴールが定義されている。
(当然、自前でゴールを定義することも可能。)

【実行方法】

maven <プラグイン名>:<ゴール名> 


①サンプルプロジェクトを生成する。
 Sampleというディレクトリを作成し、その中で「genapp」というゴールを実行する。
 

$ mkdir sample
$ cd sample/
$ maven genapp

すると、Sampleへ以下のようなディレクトリが作成されます。

└─src
    ├─conf
    ├─java
    │  └─example
    │      └─app
    └─test
        └─example
            └─app

コンパイルする。
 targetというディレクトリが新たに生成され、クラスファイルが作成されました。

$ maven java:compile
$ tree

├─src
│  ├─conf
│  ├─java
│  │  └─example
│  │      └─app
│  └─test
│      └─example
│          └─app
└─target
    └─classes
        └─example
            └─app

③テストする。
 test-classes、test-reportsというディレクトリが新たに生成され、クラスファイルと
 テスト結果のレポートファイルが作成されました。
 コンパイルでは、テストクラスはコンパイルされないみたい。
 (java:compileする前にいきなりtestをすると、コンパイルした後でテストをしてくれるらしい。)

$ maven test
$ tree

├─src
│  ├─conf
│  ├─java
│  │  └─example
│  │      └─app
│  └─test
│      └─example
│          └─app
└─target
    ├─classes
    │  └─example
    │      └─app
    ├─test-classes
    │  └─example
    │      └─app
    └─test-reports

④サイトを作成する。
 Javadocの他にもなんかいろいろできました。。
 すげーな。

$ maven site
$ tree
├─src
│  ├─conf
│  ├─java
│  │  └─example
│  │      └─app
│  └─test
│      └─example
│          └─app
└─target
    ├─classes
    │  └─example
    │      └─app
    ├─docs
    │  ├─apidocs
    │  │  ├─example
    │  │  │  └─app
    │  │  │      └─class-use
    │  │  └─resources
    │  ├─images
    │  │  └─logos
    │  ├─style
    │  ├─xref
    │  │  └─example
    │  │      └─app
    │  └─xref-test
    │      └─example
    │          └─app
    ├─generated-xdocs
    ├─javadoc
    ├─linkcheck
    │  └─docs
    ├─test-classes
    │  └─example
    │      └─app
    └─test-reports
project.properties

 クラスファイルの出力先を指定する。
 標準は、「target/classes 」。
 

 テストクラスファイルの出力先を指定する。
 標準は、「target/test-classes 」。
 

 リモートリポジトリの場所を指定する。

 targetディレクトリの場所を指定する。

 Checkstyleの設定ファイルを指定する。

  • maven.docs.outputencoding

 リポートファイルを生成する際のエンコーディングを指定する。
 指定しないと化けます。。

その他

 Mavenでは依存関係にあるJarファイルをリモートリポジトリ 2 より取得する仕組みになっている。
 project.xmldependency要素に定義されたライブラリがローカルに存在しなければ、リモートリポジトリから取得する。
 デフォルトのリモートリポジトリは、「http://www.ibiblio.org/maven/」。

 リモートリポジトリから取得したライブラリをキャッシュしておくローカルのディレクトリ。
 標準は、「$HOME/.maven/repository」 。
 ローカルリポジトリへ自前のJarを登録する場合は、以下のような構成でJarを格納する。

$HOME/.maven/repository/MyJar/jars/MyJar-01.jar
Maven Repo Search

dependencyのidやversionを設定するのに便利。
http://maven.ozacc.com/search

大盤振舞い!!!

吉宗で2日続けて大勝利!
しかも、今日は130K勝ち!むふ!
1G連荘しまくりで気持ちよかった〜!
やっぱ吉宗サイコ〜!

【戦果】
1350G Big
1G Big 2連
1G Big 3連
3G Big  
1G Big 2連
1G Big 3連
1G Big 4連
210G Reg Jacハズレ
1G Big  
1G Big 2連
1G Big 3連
1G Big 4連

Scarabを触ってみました。(その2)

メールを送信する。

メールを送信するだけなのにかなりはまってしまってます。。。

【手順】
①BlackJumboDogでメールサーバを立ち上げます。
②WEB-INF/conf/CustomSettings.properties
 でメールサーバを指定します。

system.mail.host=localhost
system.mail.smtp.from=goo@hohohoge.ne.jp


とりあえずこれでメールは送れました。
が!文字化けしまくりです。。。


もう眠いので続きは次回。。。。。