1. ホーム
  2. oracle

configure: エラー: readline ライブラリが見つかりません。

2022-02-14 17:05:58

今日、同僚がPostgresqlのテスト環境を構築していたのですが、インストール作業中にconfigureを実行する際に問題が発生しました。
プロセスは、次のエラーを報告しました。 configure: error: readline library not found , 同僚は、システムが

という感じです。

<スパン 1 環境情報
OS: CentOS リリース 5.2 (最終版)
PG: postgresql-9.0.0] です。

2 プロンプトで、configreコマンドをテストしてみると、次のようなエラーが報告されました。
[root@HK81-107 postgresql-9.0.0]# . /configure
ビルドシステムの種類を確認する... i686-pc-linux-gnu
ホストシステムの種類を確認中... i686-pc-linux-gnu
使用するテンプレートの確認・・・linux
64ビット整数の日付/時刻をサポートしてビルドするかどうかをチェックする...はい
NLSが必要なのかどうか・・・No
デフォルトのポート番号の確認... 5432
ブロックサイズを確認中... 8kB
セグメントサイズを確認する... 1GB
WALブロックのサイズを確認中... 8kB
WALセグメントサイズを確認中... 16MB
gccをチェックする... gcc
Cコンパイラのデフォルト出力ファイル名のチェック...a.out
Cコンパイラが動作するかどうかの確認...yes
クロスコンパイルしているかどうかの確認...いいえ
実行ファイルのサフィックスをチェックする... 
オブジェクトファイルの接尾辞をチェックする... o
GNU Cコンパイラを使用しているかどうかの確認...yes
gcc が -g を受け入れるかどうか確認する... はい
ISO C89 を受け入れるための gcc オプションをチェック中... 必要なし
gccが-Wdeclaration-after-statementをサポートしているかどうか確認する。
gccが-Wendif-labelsをサポートしているかどうか確認する... yes
gcc が -fno-strict-aliasing をサポートしているかどうかの確認... yes
gccが-fwrapvをサポートしているかどうか確認する... はい
Cコンパイラがまだ動くかどうかの確認...はい
Cプリプロセッサの実行方法を確認する... gcc -E
スレッドセーフなクライアントライブラリを許可するか確認する...はい
Tclでビルドするかどうかのチェック・・・no
Perl モジュールをビルドするかどうかを確認する...いいえ
Python モジュールをビルドするかどうか確認する...いいえ
GSSAPIをサポートしたビルドを行うかどうかの確認・・・なし
Kerberos 5 をサポートするようにビルドするかどうか確認中... no
PAMをサポートしたビルドを行うかどうかの確認...いいえ
LDAPをサポートしているかどうかを確認する...いいえ
Bonjourをサポートするようにビルドするかどうかを確認する... いいえ
OpenSSLをサポートしたビルドを行うかどうかの確認...いいえ
長い行を処理する grep と -e をチェックする... /bin/grep
egrepを確認中... /bin/grep -E
GCCが使用するldをチェックする... /usr/bin/ld
リンカ(/usr/bin/ld)がGNU ldであるかどうか確認する... はい。
ranlibのチェック・・・ranlib
stripを確認中... strip
ライブラリのストリップが可能かどうか確認する...はい
arのチェック・・・ar
tarを確認中... /bin/tar
ln -s が効くかどうか確認中...はい。
gawkを確認する...gawk
スレッドセーフなmkdir -pを確認中... /bin/mkdir -p
バイソン確認中...ない <ノ
configureを使用します。警告
*** Bisonがなければ、CVSからPostgreSQLをビルドすることはできません。
*** パーサーの定義ファイルを変更することができます。
Bisonは、GNUのミラーサイトから入手することができます。(の公式ディストリビューションを使用している場合)。
*** PostgreSQLの場合は、Bisonの
*** 出力は事前に生成されます)。
フレックスのチェック・・・なし
を設定します。警告
*** Flexがなければ、CVSからPostgreSQLをビルドすることはできません。
*** スキャナ定義ファイルを変更します。
Flexは、GNUのミラーサイトから入手することができます。(の公式ディストリビューションを使用している場合
*** PostgreSQLの場合、Flex?
*** 出力は事前に生成されます)。
perlをチェックする... /usr/bin/perl
configure: Perl 5.8.8を使用します。
lmでmainをチェックする...はい <丶
setproctitleを含むライブラリのチェック... no <いいえ
dlopenを含むライブラリの確認... -ldl
ソケットを含むライブラリの確認... 必要なし
shl_loadを含むライブラリのチェック...いいえ。
getopt_longを含むライブラリのチェック... none required
cryptを含むライブラリの確認...-lcrypt
fdatasyncを含むライブラリのチェック...必要なし
gethostbyname_r... を含むライブラリをチェックする。必要なし
shmgetを含むライブラリのチェック... 必要なし
lreadlineをチェックする...いいえ。 <ノ
leditのチェック・・・なし <ノ
configure: エラー: readline ライブラリが見つかりませんでした。
すでにreadlineがインストールされている場合は、config.logに記載されている
コンパイラが適切なディレクトリを検索していない可能性があります。
readlineのサポートを無効にするには、--without-readlineを使用してください。

     プロンプトによると、readlineパッケージはインストールされていないはずです。

3 readlineパッケージがシステムにインストールされているかどうか確認する
[root@HK81-107 postgresql-9.0.0]# rpm -qa | grep readline
readline-5.1-3.el5

   readlineパッケージがシステムにインストールされていることを示します。

4  yum で関連する readline パッケージを検索
[root@HK81-107 postgresql-9.0.0]# yum search readline
lftp.i386 : 洗練されたファイル転送プログラム
lftp.i386 : 高機能ファイル転送プログラム
php-readline.i386 : readline ライブラリをサポートする PHP 標準モジュール
lftp.i386 : 洗練されたファイル転送プログラム
readline.i386 : タイプされたコマンドラインを編集するためのライブラリです。
compat-readline43.i386 : 古いソフトウェアとの互換性を保つための readline 4.3 ライブラリです。
readline-devel.i386 : readline ライブラリを使用するプログラムを開発するために必要なファイル。
readline.i386 : タイプされたコマンドラインを編集するためのライブラリです。

 ヒントに基づき、1つのパッケージが目に留まりました "readline-devel" このパッケージに関連しているかもしれません。
5 readline-develパッケージのインストール
[root@HK81-107 postgresql-9.0.0]# yum -y install -y readline-devel
インストールプロセスの設定
パッケージインストールの引数を解析する
依存関係の解決
--> トランザクションチェックの実行
---> パッケージ readline-devel.i386 0:5.1-3.el5 が更新されるように設定されました。
--> 処理中の依存関係: libtermcap-devel (パッケージ: readline-devel 用)
--> トランザクションチェックの実行
---> libtermcap-devel.i386 0:2.0.8-46.1 パッケージが更新されるよう設定されました。
--> 依存関係の解決を終了しました。

解決した依存関係

=============================================================================
 パッケージ Arch バージョン リポジトリサイズ 
=============================================================================
インストール中です。
 readline-devel i386 5.1-3.el5 base 146 k
依存関係のためにインストールします。
 libtermcap-devel i386 2.0.8-46.1 base 56 k

トランザクションの概要
=============================================================================
2 パッケージをインストールする         
0 パッケージの更新         
0 パッケージを削除する        

合計ダウンロードサイズ:201 k
パッケージのダウンロード
(1/2): libtermcap-devel-2 100% |================================= 56 kB 00:00     
(2/2): readline-devel-5.1 100% |================================= 146 kB 00:00     
rpm_check_debug の実行
トランザクションテストの実行
トランザクションテスト終了
トランザクションテストに成功しました
トランザクションの実行
  インストール中: libtermcap-devel ############################## [1/2] 
  インストール: readline-devel ###################### [2/2].

インストール済み: readline-devel.i386 0:5.1-3.el5
依存関係のインストール先: libtermcap-devel.i386 0:2.0.8-46.1
完了

6 再度configureを正常に実行します。

7 リードラインの説明(公式サイトより
-- 読み上げ線なし
Readlineライブラリ(libeditも)を使用しないようにします。このオプションは、コマンドライン 
の編集やヒストリーの作成ができないため、推奨できません。

   注:configureのステップ2によると、このERRORを回避するために、"--without-readline"を追加することができます。
しかし、Postgresqlは公式にこれを推奨していないので、とにかくインストールしてください。