今まで問題なく動いていたperlモジュールが、停電でサーバダウンした影響で起動しなくなりました。
LOGには
[notice] Accept mutex: sysvsem (Default: sysvsem)
Can't load '/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi/auto/Pg/Pg.so' for module Pg: libpq.so.2: cannot open shared objec
t file: No such file or directory at /usr/lib/perl5/5.8.2/i386-linux-thread-multi/DynaLoader.pm line 229.
at /web/recruit.pl line 7
Compilation failed in require at /web/recruit.pl line 7.
と出力されており、use Pg;の行でエラーになっているのですが、原因が分かりません・・・
環境:
OS:vine linux
sql:postgres
No.1ベストアンサー
- 回答日時:
がると申します。
えっと…ログに原因の大本はそのまんま書いてあると思うのですが。
直接的には
> Can't load '/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi/auto/Pg/Pg.so' for module Pg: libpq.so.2: cannot open shared objec
t file: No such file or directory at /usr/lib/perl5/5.8.2/i386-linux-thread-multi/DynaLoader.pm line 229.
の部分が原因に当たります。libpq.so.2が見つからないって言ってますね。
> 停電でサーバダウンした
影響だとすると…一つにはHDDが壊れ始めてる可能性が否定できないのですが。
そうでないとすると「起動後、手動で設定を追加したけどそれを起動時のシェルに登録してないから設定が霧散した」可能性でしょうか?
とりあえず、libpq.soがあるかと、/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi/auto/Pg/Pg.soファイルにlddして、libpq.soが見えているかどうかを確認してみてください。
この回答への補足
libpq.soファイルにlddすると下記のように表示されました。
# ldd Pg.so
libpq.so.2 => not found
libc.so.6 => /lib/i686/libc.so.6 (0x40033000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
ご指摘の通りlibpq.so.2が見つからないようです。
こういった場合どう対処すればよいのでしょうか・・・?
ちなみにlibpq.soファイルは、以下のディレクトリにありました。
/usr/local/pgsql/lib/libpq.so
No.2
- 回答日時:
がるです。
root権限で、以下を実行してみてください。
1.
/etc/ld.so.conf ファイルに、"/usr/local/pgsql/lib/"を追記してください。
最後の行でOKです。
2.
ldconfigコマンドを実行してください。多分、/sbin/ldconfig が、正しいフルパスのはずです。
3.
もう一回、ldd実行してみてください。not findがなくなってれば、OKです。
どうでしょうか?
ありがとうございます。
# ldd Pg.so
libpq.so.2 => not found
libc.so.6 => /lib/i686/libc.so.6 (0x40033000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
でしたが、/etc/ld.so.conf にパスを記述すると
# ldd Pg.so
libpq.so.2 => /usr/local/pgsql/lib/libpq.so.2 (0x40033000)
libc.so.6 => /lib/i686/libc.so.6 (0x40043000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4017d000)
libresolv.so.2 => /lib/libresolv.so.2 (0x401aa000)
libnsl.so.1 => /lib/libnsl.so.1 (0x401bc000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
となり、not foundがなくなりました。
perlプログラムも動くようになりました。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- Ruby 教えてください 2 2023/01/04 17:50
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python
-
Perl+DBD::Oracleのエラーがわ...
-
perl DBD::Pg インストールでエ...
-
Python エクセル読み込み xlrd...
-
例外処理のフローチャートの記...
-
VBA This Workbookモジュール...
-
モジュールとサブルーチン
-
Excelマクロでセルに値が入力さ...
-
時間がかかり過ぎたプロセスを...
-
Pythonでタートルが使えません
-
VBでグローバル変数を宣言するには
-
VBAからpythonへの転向について
-
うるう年かどうかを計算するプ...
-
perlスクリプトのブラウザURLか...
-
VBA モジュールで共通に使う変...
-
エクセルVBAでシートモジュール...
-
Apache2 静的・動的モジュール...
-
Excel VBA 定義されたプロージ...
-
VBSがコンパイルエラーになりま...
-
Excel VBAで、ユーザーフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
use lib qw(変数名);は無理?
-
Python エクセル読み込み xlrd...
-
XML::Parser::Expat が無い?
-
Pg.pmモジュールがロードできない
-
perl DBD::Pg インストールでエ...
-
python
-
YAMLについて
-
Net::SSH::Perlについて
-
python 環境構築について
-
Pythonの設定方法(text_factory)
-
DB_Fileモジュールインストール...
-
perl MeCab 和布蕪 エラー
-
メールフォームからメール送信...
-
perlからpostgres連携時にエラ...
-
perlのモジュールについて
-
DBIをCPANからインストール時に...
-
Compress:Zlibコンパイルエラー
-
Perl+DBD::Oracleのエラーがわ...
-
SOAP::Liteを利用したい!
-
@INCにrequireされたファイルが...
おすすめ情報