弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

Cygwinのpsqlがexitする

psqlコマンドが、何もエラーメッセージを出さずにexitする。
$?を表示させると128がセットされている。

$ psql
$ echo $?
128
$

 

cygwinにもlddコマンドのようなcygcheckコマンドが存在する。

$ which psql
/usr/bin/psql
$ cygcheck /usr/bin/psql
D:\Cygwin/bin\psql.exe
D:\Cygwin/bin\cygpq.dll
D:\Cygwin/bin\cygcrypt-0.dll
D:\Cygwin/bin\cygwin1.dll
C:\WINDOWS\System32\ADVAPI32.DLL
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\System32\KERNEL32.dll
C:\WINDOWS\System32\RPCRT4.dll
D:\Cygwin/bin\cygcrypto-0.9.8.dll
D:\Cygwin/bin\cygintl-8.dll
D:\Cygwin/bin\cygiconv-2.dll
Error: could not find cygldap-2-3-0.dll
D:\Cygwin/bin\cygssl-0.9.8.dll
D:\Cygwin/bin\cygreadline6.dll
D:\Cygwin/bin\cygncurses-8.dll
C:\WINDOWS\System32\USER32.dll
C:\WINDOWS\System32\GDI32.dll
$

 

ライブラリが足りないときに何もエラーメッセージを吐かずにexitする仕様。
libopenldap 2.3.0パッケージを追加導入する。

$ cygcheck /usr/bin/psql
D:\Cygwin/bin\psql.exe
D:\Cygwin/bin\cygpq.dll
D:\Cygwin/bin\cygcrypt-0.dll
D:\Cygwin/bin\cygwin1.dll
C:\WINDOWS\System32\ADVAPI32.DLL
C:\WINDOWS\System32\ntdll.dll
C:\WINDOWS\System32\KERNEL32.dll
C:\WINDOWS\System32\RPCRT4.dll
D:\Cygwin/bin\cygcrypto-0.9.8.dll
D:\Cygwin/bin\cygintl-8.dll
D:\Cygwin/bin\cygiconv-2.dll
D:\Cygwin/bin\cygldap-2-3-0.dll
D:\Cygwin/bin\cyglber-2-3-0.dll
D:\Cygwin/bin\cygminires.dll
D:\Cygwin/bin\cygssl-0.9.8.dll
D:\Cygwin/bin\cygsasl2-2.dll
D:\Cygwin/bin\cygreadline6.dll
D:\Cygwin/bin\cygncurses-8.dll
C:\WINDOWS\System32\USER32.dll
C:\WINDOWS\System32\GDI32.dll
$

 

これでpsqlが動作するようになる。

$ psql postgres
Welcome to psql 8.2.9, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

postgres=#

 

投稿されたコメント:

コメント
コメントは無効になっています。