0
  • 私のマシン: Linux RHEL 5.5.56 (64 ビット)、Perl 5.8.8。Postgres はこのマシンにはありません。しかし、問題なく Postgres マシンに ping を実行できます。そして、私のマシンは明らかにインターネット上の CPAN から Perl モジュールをインストールできます。
  • 「uname -a」の戻り値: Linux xxx 2.6.18-371.8.1.el5PAE #1 SMP Fri Mar 28 06:00:03 EDT 2014 i686 i686 i386 GNU/Linux
  • 他のマシンには Postgres 8.4 があります。
  • DBIモジュールをインストールして使用するのは初めてです。詳細な初心者向けの指示が必要です。
  • Linux マシンへの root アクセス権があります。
  • 「postgresql-libs.i386」がインストールされているとyumが報告していると思います。`yum インストール | grep postgres` の戻り値: 「postgresql-libs.i386 8.1.23-10.el5_10 installed」

これは私が必要とするものですか?これは私のシステムにあります。

lrwxrwxrwx 1 root root   12 May  1 20:05 /usr/lib/libpq.so.4 -> libpq.so.4.1*
-rwxr-xr-x 1 root root 130K Feb 27 07:36 /usr/lib/libpq.so.4.1*

目標: 別のマシンの Postgres サーバーからデータを取得したい。db マシンの db ユーザー名、パスワード、IP を既に持っています。

cpanm を使用して DBI をインストールしましたが、エラーはありませんでした。DBD::Pg をインストールすると、エラーが発生しました。CPAN エラー ログは次のとおりです。

cpanm (App::cpanminus) 1.6941 on perl 5.008008 built for i386-linux-thread-multi
Work directory is /root/.cpanm/work/1405531191.27414
You have make /usr/bin/make
You have LWP 6.04
You have /bin/tar: tar (GNU tar) 1.15.1
You have /usr/bin/unzip
Searching DBD::Pg on cpanmetadb ...
--> Working on DBD::Pg
Fetching http://www.cpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-3.3.0.tar.gz
-> OK
Unpacking DBD-Pg-3.3.0.tar.gz
Entering DBD-Pg-3.3.0
Checking configure dependencies from META.yml
Checking if you have version 0 ... Yes (0.88)
Checking if you have DBI 1.614 ... Yes (1.631)
Configuring DBD-Pg-3.3.0
Running Makefile.PL
Path to pg_config?
No POSTGRES_HOME defined, cannot find automatically
Configuring DBD::Pg 3.3.0
-> N/A
-> FAIL Configure failed for DBD-Pg-3.3.0. See /root/.cpanm/work/1405531191.27414/build.log for details.
  • 別のマシンの Postgres db からデータを取得することは可能ですか?
  • これを行う方法に関する指示へのリンクを持っている人はいますか? 私はすでにグーグルで検索し、CPAN、Stackoverflow、および Perlmonks に関する情報を読んでいますが、結果はありません。
  • http://dbi.tiddlyspot.com/のFAQ には、DBD::Pg のインストールに固有の情報はありません。
  • Postgres を yum 経由でインストールすると、インストールによってライブラリなどのファイルが上書きされますか? もしそうなら、どれですか?このマシンで使用する他のアプリケーションがあります。

これが機能するようになったら、最初のステップは、DBI ドライバーに関する非常に基本的な情報を表示することです。次のステップは、SELECT ステートメントで 1 つのテーブルからいくつかのフィールドを表示することです。

数百万のレコードを返すつもりはありませんが、100 のレコードを返すことは確かに大まかな範囲内です。

ありがとうございました!

4

2 に答える 2

2

既にビルドされ、システムで利用可能なパッケージを使用する場合、これらの問題は発生しません。

$ sudo yum install perl-DBD-Pg

... Lots of output snipped ...

Dependencies Resolved

================================================================================
 Package              Arch        Version              Repository          Size
================================================================================
Installing:
 perl-DBD-Pg          x86_64      1.49-4.el5_8         centos-update      115 k
Installing for dependencies:
 postgresql-libs      x86_64      8.1.23-6.el5_8       centos-update      197 k

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 312 k
Is this ok [y/N]: 

私の例では Centos 5.8.8 を使用していますが、RHEL でも同じように動作するはずです。

于 2014-07-17T09:39:22.903 に答える
1

もちろんできます。結局のところ、これはクライアント/サーバー アーキテクチャです。

ログのエラーは、欠落によるものlibpq5です。

于 2014-07-16T17:45:49.510 に答える