質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

5248閲覧

【PostgreSQL】DBD :: Pg のインストール

icya

総合スコア11

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

make

make は、ビルド作業を自動化するツールです。さまざまなファイルの最終変更時刻を比較し、従属するファイルよりも「ターゲット」のファイルが古いことがわかったときユーザーが設定していた命令を実行する事が可能です。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/02/04 07:02

前提・実現したいこと

既存データベースと同じ環境を構築したいので
・postgreSQL (7.2.6)
・DBD-Pg-1.32
を使用してデータベースに接続したいです。
そのためにDBD-Pgそのためにをインストールしたいのですが、うまくいきません。

試したこと

postgreSQL (7.2.6)のインストール済
>wget https://ftp.postgresql.org/pub/source/v7.2.6/postgresql-7.2.6.tar.gz
DBIインストール済
>perl -MCPAN -e shell
>install DBI

DBD :: Pg 1.32のインストールか、その後がうまくいきません。
CPANやyumでインストール出来るDBD::PgのバージョンはPostgreSQL8以上を必要とするため直接バージョン指定してみました。
>① cpan https://cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz 
>② wget https://cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz 

①の結果 Resolving cpan.pesat.net.id (cpan.pesat.net.id)... xxx.xxx.xxx.xxx Connecting to cpan.pesat.net.id (cpan.pesat.net.id)|xxx.xxx.xxx.xxx|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2020-02-04 14:57:15 ERROR 404: Not Found. Function system("/bin/wget -O "/root/.cpan/sources/authors/id/https:/cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz.tmp3831" "http://cpan.pesat.net.id/authors/id/https://cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz" ") returned status 8 (wstat 2048), left /root/.cpan/sources/authors/id/https:/cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz.tmp3831 with size 0 Warning: no success downloading '/root/.cpan/sources/authors/id/https:/cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz.tmp3831'. Giving up on it. No external ftp command available Please check, if the URLs I found in your configuration file (http://mirror.pregi.net/CPAN/, http://mirror.biznetgio.com/cpan/, http://cpan.pesat.net.id/) are valid. The urllist can be edited. E.g. with 'o conf urllist push ftp://myurl/' Could not fetch authors/id/https://cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz ②結果の結果 --2020-02-04 15:08:16-- https://cpan.metacpan.org/authors/id/R/RU/RUDY/DBD-Pg-1.32.tar.gz Resolving cpan.metacpan.org (cpan.metacpan.org)... xxx.xxx.xxx.xxx, 2a04:4e42:15::729 Connecting to cpan.metacpan.org (cpan.metacpan.org)|xxx.xxx.xxx.xxx|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 96233 (94K) [application/x-gzip] Saving to: ‘DBD-Pg-1.32.tar.gz.1’ 100%[======================================================================================================================================================================================================>] 96,233 --.-K/s in 0.03s 2020-02-04 15:08:16 (3.24 MB/s) - ‘DBD-Pg-1.32.tar.gz.1’ saved [96233/96233]

②はうまくいったかのよにみえますが、
>perl -MDBD::Pg -e'print $DBD::Pg::VERSION' ; echo

Can't locate DBD/Pg.pm in @INC (@INC contains: /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi /root/perl5/lib/perl5/5.16.3 /root/perl5/lib/perl5/x86_64-linux-thread-multi /root/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .). BEGIN failed--compilation aborted.

>tar zxvf DBD-Pg-1.32.tar.gz
>cd DBD-Pg-1.32
>perl Makefile.PL

Configuring Pg Remember to actually read the README file! OS: linux PostgreSQL version: 7.2.6 Multiple copies of Driver.xst found in: /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI/ /usr/lib64/perl5/vendor_perl/auto/DBI/ at Makefile.PL line 66. Using DBI 1.634 (for perl 5.016003 on x86_64-linux-thread-multi) installed in /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI/ Multiple copies of Driver.xst found in: /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI/ /usr/lib64/perl5/vendor_perl/auto/DBI/ at Makefile.PL line 113. Using DBI 1.634 (for perl 5.016003 on x86_64-linux-thread-multi) installed in /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI/ Generating a Unix-style Makefile Writing Makefile for DBD::Pg Writing MYMETA.yml and MYMETA.json

>make

Skip blib/lib/DBD/pg_connect.pl (unchanged) Skip blib/lib/DBD/Pg.pm (unchanged) Running Mkbootstrap for Pg () chmod 644 "Pg.bs" "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Pg.bs blib/arch/auto/DBD/Pg/Pg.bs 644 gcc -c -I/usr/local/pgsql/include -I/root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_PQescapeString -DHAVE_PQescapeBytea -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib64/perl5/CORE" Pg.c Pg.c: In function ‘XS_DBD__Pg__db__login’: Pg.c:326:7: warning: variable ‘attribs’ set but not used [-Wunused-but-set-variable] SV * attribs; ^ Pg.xs: In function ‘XS_DBD__Pg__db_quote’: Pg.xs:95:8: warning: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘IV’ [-Wformat=] "defaulting to VARCHAR",SvIV(type_sv)); ^ 〜省略 ^ Pg.xs:294:47: error: ‘sv_yes’ undeclared (first use in this function) ST(0) = (-1 != pg_db_endcopy(dbh)) ? &sv_yes : &sv_no; ^ Pg.xs:294:57: error: ‘sv_no’ undeclared (first use in this function) ST(0) = (-1 != pg_db_endcopy(dbh)) ? &sv_yes : &sv_no; ^ In file included from /root/perl5/lib/perl5/x86_64-linux-thread-multi/auto/DBI/DBIXS.h:24:0, from Pg.h:39, from Pg.xs:13: Pg.c: In function ‘XS_DBD__Pg__db__pg_type_info’: /usr/lib64/perl5/CORE/XSUB.h:175:28: warning: unused variable ‘targ’ [-Wunused-variable] #define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \ ^ Pg.c:1843:2: note: in expansion of macro ‘dXSTARG’ dXSTARG; ^ make: *** [Pg.o] Error 1

とエラーになりうまくいきません。
検索で調べたのですが、よくわからず質問させてもらいました。
DBD-Pg-1.32のインストール自体がうまくいってないので、その後のエラーが出ているということなのでしょうか?
どのようにしたら解決するかご教授頂けると幸いです。

補足情報(FW/ツールのバージョンなど)

Mac Vagrant PostgreSQL CentOS7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DBD-Pg-1.32のインストール自体がうまくいってないので、その後のエラーが出ているということなのでしょうか?

コンパイルに失敗しています。

おそらくインストーラがデフォルトで期待しているライブラリやコンパイラの仕様がCentOS7のそれとあっていないのでしょう。いかんせんDBD-Pg-1.32とは15年も前の代物みたいですし。

まず、落としてきたDBD-Pg-1.32の中に存在するはずのINSTALLとかREADMEとかのファイルの中に何かヒントがないか確認してください。makeの際に何らかのオプションパラメータを追加することで問題を解決する算段が用意されているかもしれません。またエラーメッセージをそのまま検索窓に突っ込んでググってみるのも有効な手段です。

しかし、私があなたなら、あきらめて新しいバージョン(yumで普通にインストールできるバージョン)を導入し、古いデータはダンプして新しいDBに取り込みますね。かりにこの古いバージョンのインストールになんとか成功したとしても、実作業を始めたあとで様々な不便に見舞われる可能性が強く懸念されるからです。

投稿2020/02/21 07:59

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

icya

2020/02/26 01:40 編集

ご回答ありがとうございます! ご指摘のとおり新しいバージョンを導入できるのが望ましいのですが、古いデータがEUCと他の文字コード(旧字体漢字など)が混在していてEUC→EUCでも、他の文字コードの場所で止まってしまいデータの移行ができませんでした。手作業で変換すると進むのですが他の文字コードの場所が膨大なため手作業で変換は諦めました。 ①古いバージョン->古いバージョン ②古いバージョン->新しいバージョン(自動エンコード機能をoffにする) ③古いバージョン->新しいバージョン(なんとか変換して移行できるデータにする) の3つの選択肢から②③の方法がわからず今回は①を試しうまくいかず質問させてもらったという経緯でした。 もし、良い方法を知っておられたらよろしくお願いします。また②③に関しては調べた後別スレッドにしたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問