[pgsql-jp: 34895] Re: PgPool-2.5のインストールに関して

Tatsuo Ishii t-ishii @ sra.co.jp
2005年 2月 15日 (火) 15:09:23 JST


石井です.

以下の件ですが,pgpool 2.5からstrsep()を使うようになったせいです.マニュ
アルを良く読むと,strsep()はBSDコンパチなシステムでのみ使用可能な関数
のようですので,おっしゃるようにstrtok()で置き換えるのがよいと思います.
ただ,以下のコーディングそのままだとちょっとまずいので,修正しました.
いずれpgpool 2.5.1としてリリースする予定ですが,よろしければcurrent版
をpgfoundry.orgから取得して試してください.

その方法ですが,まず,

cvs -d:pserver:anonymous @ cvs.pgfoundry.org:/cvsroot/pgpool login

とすると,パスワードを聞かれますので,*何も入力せずに*リターンを押して
ください.この操作は最初の1回だけです.これだけでは何もソースは取得さ
れません.

実際にソースを取得するには,

cvs -z3 -d:pserver:anonymous @ cvs.pgfoundry.org:/cvsroot/pgpool co pgpool

とします.なお,2回目以降は,pgpoolのソースディレクトリで,

cvs -z3 update

とするだけで最新のソースと同期が取れます.
--
Tatsuo Ishii

From: 久坂 玄端 <kuzaka @ hotmail.co.jp>
Subject: PgPool-2.5のインストールに関して
Date: Tue, 08 Feb 2005 16:38:50 +0900
Message-ID: <BAY23-F14E70060B61874D8E3BB3599740 @ phx.gbl>

> 石井 様
> 
>  はじめまして、久坂と申します。
> Pgpool-2.5のインストールに関して不明確な点がございますので
> ご教授していただけると助かります。
> 質問内容としては、下記に記載致しましたのでよろしくお願い
> いたします。
> 
> --質問内容--
> 環境
> OS sun5.8 (Solaris 8)
> インストールソフト
> http://www2b.biglobe.ne.jp/~caco/pgpool/
> より"pgpool-2.5(tgz)"をダウンロード
> ダウンロード後解凍
> gzip -d -c pgpool-2.5.tar.gz | tar xvf -
> pgpool-2.5ディレクトリに移動後、
> ./configure
> 
> make
> 
> make後に下記のエラーが出力されます。
> 
> make  all-am
> source='pool_config.c' object='pool_config.o' libtool=no \
> DEPDIR=.deps depmode=gcc /bin/bash ./depcomp \
> gcc -DHAVE_CONFIG_H  -DDEFAULT_CONFIGDIR=\"/usr/local/etc\" -I. -I. -I.  
> -Wall -Wmissing-prototypes
> -Wmissing-declarations    -g -O2 -c pool_config.c
> pool_config.l: In function `extract_string_tokens':
> pool_config.l:626: warning: implicit declaration of function `strsep'
> pool_config.l:626: warning: assignment makes pointer from integer without a 
> cast
> gcc  -g -O2   -o pgpool  main.o child.o pool_auth.o  pool_config.o 
> pool_error.o  pool_process_query.
> o pool_stream.o  pool_connection_pool.o pool_params.o  pool_signal.o  
> -lresolv -lgen -lsocket -lnsl
> -lm
> Undefined                       first referenced
>  symbol                             in file
> strsep                              pool_config.o
> ld: fatal: Symbol referencing errors. No output written to pgpool
> collect2: ld returned 1 exit status
> *** Error code 1
> make: Fatal error: Command failed for target `pgpool'
> Current working directory /export/home/kopt_ope/pgpool-2.5
> *** Error code 1
> make: Fatal error: Command failed for target `all'
> 
> 上記のエラーを回避するために、pgpool-2.5配下の"pool_config.c"
> の一部分を下記のように修正致しました。
> 
>        /*while ((token = strsep(&str,delimi)) && *n < MAXTOKENS)*/
>         while ((token = strtok(str,delimi)) && *n < MAXTOKENS)
>         {
>                 tokens[*n] = strdup(token);
>                 if (tokens[*n] == NULL)
>                 {
>                         pool_error("extract_string_tokens: out of memory");
>                         return NULL;
>                 }
>                 pool_debug("extract_string_tokens: token: %s", tokens[*n]);
>                 (*n)++;
>         }
> 修正後、make→make install を行うとpgpoolは、正常に動作しました。
> このようなやり方で、pgpool-2.5をインストールしても問題なく動作するのでしょうか?
> また、他にインストール方法があれば教えていただきたいのですが・・?
> 
> 以上です。
> 
> お忙しいと思いますが、よろしくお願いいたします。
> 
> _________________________________________________________________
> 楽しい絵文字でココロ伝わるメッセンジャー http://messenger.msn.co.jp/ 
> 



pgsql-jp メーリングリストの案内