アプリ版:「スタンプのみでお礼する」機能のリリースについて

昨日、Fedora Core 1をワークステーションタイプでインストールしました。

そのPCにシーラカンス本を見ながらPstgresql7.1.1をインストールしようとし、

./configure --enable-multibyte=EUC_JP --enable-syslog
をしたところ。やたら...noという表示が流れ最後に
checking types of arguments for accept()... configure: error: could not determine argument types
と出てきました。

makeをしてみると、
You need to run the 'configure' program first. See the file
と表示されます。

どうすればこの状況を回避できるのでしょうか?
よろしくおねがします。

A 回答 (3件)

だいぶお悩みのようですね!


初志貫徹で行きましょう。configure→make→make insall

最新のPostgreSQLは、7.4.2
ftp://ftp.sra.co.jp/pub/cmd/postgres/7.4.2

前準備
# adduser postgres ←postgresユーザを作成
# mkdir /usr/local/pgsql ←PostgreSQLの導入先
# chown postgres:postgres /usr/local/pgsql
# mkdir /usr/local/src/postgresql-7.4.2
# chown postgres:postgres /usr/local/src/postgresql-7.4.2

postgresql-7.4.2.tar.gzを、/usr/local/src (慣習的にこのようなディレクトリィにおきます。)

PostgreSQLの導入
"root"ユーザでも、"postgres"ユーザのどちらでも可です。

#($) cd /usr/local/src
#($) tar xvf postgresql-7.4.2.tar.gz
#($) cd postgresql-7.4.1
#($) ./configure --enable-multibyte=EUC_JP --enable-syslog

"./"の意味は、このディレクトリィにパスがとおっていないので、このように、パスを指定します。"no"がたくさんでますが、多くは、システムの環境との関連がないためです。

configureのあるディレクトリィに、Makefileが作成されます。いよいよ、makeです。gccを用いて、コンパイルが始まります。CPUや、HDDの性能で終了まで、5乃至10分程度必要です。

All of PostgreSQL successfully made. Ready to install.

とでれば、完了です。ここまでは、何度でもできます。
#($) ./configure ...... > postgrest.txt、make > postgres1.txtなどの様にリダイレクトして、途中経過をあとで、"more"などを使用して確認ができます。

#($) make install

PostgreSQL installation complete.
とでれば、完了です。30秒程度です。

"root"ユーザであれば、
# su - postgres
$ ls -la (postgresユーザホーム /home/postgresです)
.bash_profileと、.bashrc

.bash_profileに、viなどのエディターで、以下を最後に追記します。

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

終了したら、
$ source .bash_profile
で、postgresユーザ環境に反映させます。もうこれで、postgresの世界です。

$ initdb
$ postmaster -S
$ psql -l
Name | Owner | Encoding
-----------+----------+-----------
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
$ createdb test
$ dropdb test
など、など、いろいろ試してください。

これでも、うまく行かない時は、Fedora Coreが不完全ではないでしょうか。
    • good
    • 0
この回答へのお礼

出来ました!感動です!!
今までどうやってもうまくいかず何度キーボードを叩こうとしたか。。。叩かなくてよかった。

アドバイスを元にいろいろ調べながらインストールしました。
ただ、7.4.2でmakeの後にmake checkをしてみたところ最後に92of93云々と表示され心配になったので試しに7.4で行ってみたらAll 93 tests passed.なったので7.4をインストールしました。

嘘つきじゃなかったです。
ありがとうございました!

お礼日時:2004/05/26 23:38

#1さんのおっしゃるようにrpmなどのパッケージでインストールすれば楽ちんですが、何も考えずにばかすかパッケージインストールしてるとごちゃごちゃして管理しきれなくなってくるし、パッケージどうしの相性もあると思うので、下手するとシステムが不安定になったりします。


それに何より、configure ~ make ~ make install によるソースからのインストールで場数を踏んでおくことはたいへん勉強になります。是非臆することなくどんどん挑戦していって戴きたいと思います。

さて、./configure は、インストール対象の環境がどのようになっているか調査して、それに適合するように必要な設定を施し、環境に合わせたMakefileを出力して、makeコマンドを実行できるように準備するものです。

accept() というのはネットワーク関係の関数です。
これがインストール対象の環境ではどのような型の引数を取るのか確認しようとしたところ失敗した、ということです。

これだけでは何が悪いのか分かりませんね。
config.log というファイルが出来ているはずですので、見てみてください。
けっこうでかいので面食らうかもしれませんが、とりあえず accept で検索を掛けてみましょう。そうすると、./configureが何をしようとして失敗したのかがだいたい分かります。

ひとまずここまでで解決しなければ、補足欄などでまた質問してください。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

cofig.logのacceptを検索してみると、30個くらい出てきました。
どれも↓のような感じです。

configure:5375: checking types of arguments for accept()
configure:5402: gcc -c -O2 conftest.c 1>&5
In file included from configure:5389:
confdefs.h:7:24: missing terminating " character
In file included from configure:5389:
confdefs.h:8: error: syntax error before numeric constant
confdefs.h:10:76: missing terminating " character
configure: failed program was:
#line 5389 "configure"
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
extern int accept (int, struct sockaddr *, int *);

これが何を意味しているのか理解できず途方に暮れてます。

お礼日時:2004/05/26 09:54

configureスクリプトは、システムにインストールされて


いるライブラリ、コマンドなどを探してmakefileを作成
してくれます。

...noがやたらと出るということはconfigureが見つけられ
ないライブラリやコマンドがあるということです。
(正常でも結構あります)

考えられるのは
1, PATHの問題。/sbinや /usr/local/bin など必要な
場所にパスが通っているか確認する。
2,/etc/ld.so.conf(だっけ?) 検索するライブラリの
場所
3,PostgreSQL自体の環境変数

もっとも簡単な解決方法はRPMでインストールすることです。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

まずecho $PATHで調べてみると(この調べ方で合ってるのかどうか。。。)
/usr/kerberos/sbin:
/usr/kerberos/bin:
/usr/local/sbin:
/usr/local/bin:
/sbin:
/bin:
/usr/sbin:
/usr/bin:
/usr/X11R6/bin:
/root/bin
と出てきました。

次に/etc/ld.so.confを見てみると
/usr/X11R6/lib
/usr/lib/sane
/usr/lib/qt-3.1/lib
と出てきました。

今の自分ではこれを見て何をどうすればいいのか見当がつきません。
RPMでインストールという方法も調べてみます。

お礼日時:2004/05/26 08:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!