• ベストアンサー

ライブラリがない場合の対処方法を教えてください。

未熟者の私にお知恵をお貸しください。 RedHat8.0にて、 postgresql-pl-7.3-2PGDG.i386.rpm をインストールしようとしたところ、 「libtcl.so.0」が必要です。というメッセージが出ました。 アップデートの時にもしばしばライブラリが足りないので出来ない!と注意が出ます。 それぞれのライブラリが、何に含まれていてなにをインストールすればよいのか、というのは・・・ 調べる方法があるのでしょうか? また、他のサーバ(RedHat7.2)から、「libtcl.so.0」単体をコピーしてきて、/usr/lib/に置きましたが、同じく「libtcl.so.0」が必要です。というメッセージが出ました。 ライブラリは、同一名称でも異なるものなのでしょうか? 基本的な内容で申し訳ありませんが、ご教授頂けますようお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

> それぞれのライブラリが、何に含まれていてなにをイン > ストールすればよいのか、というのは・・・ > 調べる方法があるのでしょうか? rpm コマンドの --redhatprovides オプションで調べることができます.

参考URL:
http://www2.tky.3web.ne.jp/~kyone/sr1linux/rhfaq.html#A5
pion16
質問者

お礼

astronautさま rpmdb-redhatをインストールし、ライブラリが、何に含まれているのか分かるようになりました。 おかげさまで、今までの悩みが吹っ飛びました。 ありがとうございました。

その他の回答 (1)

  • nightowl
  • ベストアンサー率44% (490/1101)
回答No.1

「libtcl」という名称からして、Tcl/Tk に含まれるライブラリだと思いますが、 Tcl/Tk はインストールされていますか? rpm -qa | grep -i tcl を試してみてください。なければ CD-ROM なり Redhat のサイトからなり Tcl(/Tk) をインストールしてください。 tcl-xxx(バージョン番号).rpm というファイル名のはずです。 それから、以前のバージョンからライブラリだけをコピーしても うまく動く保証はありません。 ldconfig というコマンドを root で実行すれば コピーしたライブラリがシステムに認識されますので、 試してみるのもいいかもしれませんが。

参考URL:
http://www.linux.or.jp/jrpm/rpms/libtcl.so.html
pion16
質問者

お礼

nightowlさま 早々のお返事ありがとうございます。 tcl-xxx(バージョン番号).rpmをインストールし、無事目的の内容をインストールできました。 ありがとうございました。

関連するQ&A

  • 助けてください。ホントわかりません。PostgreSQLについて

    どのようにしてインストールすればよいのか、わかりません。 Download してきた postgresql-7.1.3-1PGDG.src.rpm なのですが、これを rpm --rebuild postgresql-7.1.3-1PGDG.src.rpm として、/usr/src/redhat/RPMS/i383 にrpmパッケージを並べました。 //<パッケージ内容>/////////////////////////// postgresql-7.1.3-1PGDG.i386.rpm postgresql-contrib-7.1.3-1PGDG.i386.rpm postgresql-devel-7.1.3-1PGDG.i386.rpm postgresql-docs-7.1.3-1PGDG.i386.rpm <以下省略(計13個)> /////////////////////////////////////////////// があります。これを、 rpm -ivh postgresql-7.1.3-1PGDG.i386.rpm 等とすると、 エラー:依存性の欠如: libpq.so.2 は postresql-7.1.3-1PGDGに必要とされてします。 などと、表示されてしまいます。rpmパッケージにしても同じです。 なにか、間違っているんでしょうか? どうか、教えてください。宜しくお願いします。

  • PostgreSQLのアンインストール方法

    PostgreSQLの削除手順を教えてください。 rpmコマンドで削除してもエラーになります。 ■環境 RedhatLinux 5.4 PostgreSQL8.4 ■実施手順 # rpm -qa |grep post postgresql-libs-8.1.11-1.el5_1.1 # rpm -e postgresql-libs-8.1.11-1.el5_1.1 エラー: 依存性の欠如: libpq.so.4 は (インストール済み)apr-util-1.2.7-7.el5.i386 に必要とされています # rpm -e apr-util-1.2.7-7.el5 postgresql-libs-8.1.11-1.el5_1.1 エラー: 依存性の欠如: libaprutil-1.so.0 は (インストール済み)httpd-2.2.3-22.el5.i386 に必要とされています libaprutil-1.so.0 は (インストール済み)mod_perl-2.0.4-6.el5.i386 に必要とされています libaprutil-1.so.0 は (インストール済み)subversion-1.4.2-4.el5.i386 に必要とされています # rpm -e --force postgresql-libs-8.1.11-1.el5_1.1 rpm: インストール、アップグレード、ソース削除、スペックファイル削除時のみ強制できます。 以上、よろしくお願いいたします。

  • LINUX版のDiCEでDNSが更新できません

    RedHat9でDiCE(Linuxバージョン)でDNSを更新しようとしています。 DiCEの基本設定、イベント追加を行って更新を実行すると、 5/24 21:45 にipupdateの実行に失敗しました Error: サーバーに接続できませんでした のエラーで更新出来ませんでした。 DiCEのlogディレクトリにid000000.logというログがあり その中に"OpenSSL library is required."と書かれていました。 さらに、DiCEのホームページ上で 「一部のサービス("@nifty"や"DION"ほか)を利用する場合は OpenSSLのライブラリがが必要となります」 libssl.so、libcrypto.so (又は /usr/lib/libssl.so.0、/usr/lib/libcrypto.so.0) と書かれていましたのでこの2つをwebで探してインストールしたのですが、 (rpm -vhi opensslxx.xxxx..i386.rpmでインストール ) 正常にDNS更新できるようになりません。 どのようにすれば良いのでしょうか? Dynamic DO!.jpを利用しています。 現在、openssl-0.9.7a-2 がインストールされてる状態です。 よろしくお願い致します。

  • 共有ライブラリが見つからない

     お世話になります。  xxxxxというソフトウェアを動作させようとしたところ、下記のようなエラーメッセージが出ました。 > ld.so.1: xxxxx: fatal: libsasl.so: version `SUNWprivate1.1' not found (required by file /usr/lib/mps/libldap60.so) > ld.so.1: xxxxx: fatal: libsasl.so: open failed: No such file or directory > rc = 9 ■質問1  これは、 ・ld.so.1という共有モジュールが ・内部的にrequired by file /usr/lib/mps/libldap60.so というモジュールを呼んでいて ・それがlibsasl.soを呼ぼうとしたときに ・`SUNWprivate1.1'というバージョンのものがない というエラーだと解釈してよろしいでしょうか。 ■質問2  findでlibsasl.soを検索したところ、下記の場所にありました。 > /usr/lib/sparcv9/libsasl.so > /usr/lib/libsasl.so crleコマンドで共有ライブラリの検索パスを見てみたところ、/usr/libは含まれていました。 > @root# crle -v > > 構成ファイル [バージョン 4]: /var/ld/ld.config > デフォルトライブラリパス (ELF): /usr/lib:/usr/local/ssl/lib/:/usr/lib/mps > トラステッドディレクトリ (ELF): /usr/lib/secure:/opt/SUNWmsgsr/lib:/usr/lib/mps > > コマンド行: > crle -c /var/ld/ld.config \ > -l /usr/lib:/usr/local/ssl/lib/:/usr/lib/mps \ > -s /usr/lib/secure:/opt/SUNWmsgsr/lib:/usr/lib/mps  それでもエラーが出るのは ・このディレクトリにあるlibsasl.soが`SUNWprivate1.1'というバージョンではないから という解釈でよろしいでしょうか。 ■質問3 `SUNWprivate1.1'というバージョンのlibsasl.soを検索する方法があるでしょうか。  いろいろですみません。よろしくお願いいたします。

  • RPM版PostgreSQLのアンインストールについて

    みなさん、こんばんは。 さっそくですが、質問があります。 現在サーバーを構築しているのですが、その中にpostgreSQLを入れて動かしたいのです。 使用OSはRedhat Linux 7.1JのFTP版で、始めからインストールされているpostgreSQLのRPM版をアンインストールして、最新版をインストールし直したいと 思っています。 (最新版はRPMのではなく、postgresql-7.1.3.tar.gzをインストールするつもりです。) そこで、rpm -eコマンドでpostgreSQLをアンインストールしたいのですが、 postgresql-7.0.3-8とpostgresql-devel-7.0.3-8を削除しようとしても下記の様なエラーが出て、アンインストールできません。 rpm -e postgresql-devel-7.0.3-8 とすると・・・・  エラー:これらのパッケージを削除すると依存性を破壊します。  postgresql-devel >= 7.0は perl-DBD-Pg-0.95-1に必要とされています。 rpm -e postgresql-7.0.3-8 とすると・・・  エラー:これらのパッケージを削除すると依存性を破壊します。  postgresql = 7.0.3はpostgresql-devel-7.0.3-8に必要とされています。  postgresqlはphp-pgsql-4.0.4pl1-9に必要とされています。  libpq.so はperl-DBD-Pg-0.95-1に必要とされています。  libpq.so はphp-pgsql-4.0.4pl1-9に必要とされています。 いったいどうやったら、削除できるのでしょうか? どなたか教えてください。

  • Pg.pmモジュールがロードできない

    現在、Webサーバが古くなったため、新しいWebサーバにアプリケーションを移行しようとしています。PerlもPostgreSQLもインストールし、プログラムを実行するのですが、以下のエラーメッセージが表示されます。 エラーメッセージ表示: Can't locate Pg.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi (中略)BEGIN failed--compilation aborted at mgdbrest.pl line 37. でエラーになってしまいます。 環境: パッケージのインストール確認をすると問題なく、Pg.pmパッケージもインストール済みです。またPg.pmファイルも存在します。 またperl -Vコマンド実行でも@INCも表示されます。 OS: MiracleLinux4.0 %rpm -qaの結果 perl-DBD-Pg-1.31-6.1AX postgresql-libs-8.0.8-1.2AX postgresql-pl-8.0.8-1.2AX %Pg.pmファイルの登録状況 /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi/DBD/Pg.pm %perl -Vの結果(一部抜粋) Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Aug 23 2006 01:53:27 @INC: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi 質問: 対処方法を御存知の方がみえたら教えてください。やはり再インストールしなければならないのでしょうか。

    • ベストアンサー
    • Perl
  • GNU gettext が変なライブラリを参照している

    Solaris 2.7 に GNU gettext 0.14.5 をインストールしようとしています.gmake は通るのですが,出来上がった xgettext や msgfmt などのバイナリを ldd すると, .libs/libgettextsrc-0.14.5.so => .libs/libgettextsrc-0.14.5.so .libs/libgettextlib-0.14.5.so => (file not found) .libs/libintl.so.3.4.3 => (file not found) libiconv.so.2 => /usr/local/lib/libiconv.so.2 libc.so.1 => /usr/lib/libc.so.1 libexpat.so.0 => /usr/local/lib/libexpat.so.0 .libs/libgettextlib-0.14.5.so => (file not found) .libs/libintl.so.3.4.3 => (file not found) libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1 となり,どうやら一時ディレクトリである .libs 以下のライブラリを参照してしまっているようです.当然,gettext を用いて make した他のプログラムも動かなくなってしまうため,とても困っています. 試しに gettext 0.10.40 という古いものを入れてみたところ,問題は起こりませんでした. libintl.so.1 => /usr/local/lib/libintl.so.1 libiconv.so.2 => /usr/local/lib/libiconv.so.2 libc.so.1 => /usr/lib/libc.so.1 libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-4/lib/libc_psr.so.1 回避策等あれば教えていただきたいです. なお,gcc は 2.7.2.3 です.よろしくお願いいたします.

  • Oracle-Perlの接続

    Oracle と Perl の接続で悩んでいます。 申し訳ありませんが何方かご教授下さい。 OS:Red Hat Enterprise Linux ES release 4 Perl:perl v5.8.5 DB:oracle-xe-univ-10.2.0.1-1.0.i386 ドライバーは以下をインストールしてあります。 perl-DBD-Pg-1.31-6 perl-DBD-MySQL-2.9004-3.1 perl-DBI-1.40-8 以下もインストールしてみましたが駄目でした # rpm -ivh oracle-instantclient12.1-basic-12.1.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-devel-12.1.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.1.0-1.i386.rpm 環境変数の設定(.bash_profileに以下を設定) . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh Perlでサンプルプログラムを作成して、他の同等のサーバでは正常に動作確認した プログラムを、このサーバで実行すると以下の様なエラーが出ます。 [oracle@IJYOU]$ perl test_db.pl install_driver(Oracle) failed: Can't locate DBD/Oracle.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at (eval 1) line 3. Perhaps the DBD::Oracle perl module hasn't been fully installed, or perhaps the capitalisation of 'Oracle' isn't right. Available drivers: ExampleP, Pg, Proxy, mysql. at /home/oracle/test2_setting.pl line 18 どうか何方かお願いします。

  • Netscapeをインストールできない

    環境:RedHatLinux7.1J Netscapeを入れようと思い、netscape-communicator-4.76-11.i386.rpm をCD-ROMからインストールしようとしています。 ところが「libstdc++-6.1-1.so.2が見つかりません」というエラーが出てしまいます。 でも/usr/lib/にこのファイルは存在しています。 こんな場合、どうしたらいいのでしょうか。 宜しくお願いいたします。

  • gccの「-l」オプションとライブラリの関係

    gcc の -l オプションってどのような動作なのでしょうか?? sendmail関係の少々実験的な開発をするために、 OSに標準で入っているsendmail関係のライブラリである、   /usr/lib/libmilter.a   /usr/lib/libmilter.so   /usr/lib/libmilter.so.3 を削除して、 sendmailをソースからコンパイルして、 sendmailのソースの中のlibmilterもコンパイルしました。 この時点で、libmilter.a は、コンパイルしたディレクトリ(/usr/local/src/sendmail-8.14.2/)の下の   /usr/local/src/sendmail-8.14.2/obj.FreeBSD.6.2-RELEASE.i386/libmilter/ の中にしか存在しないのですが・・・ gcc -pthread -lc_r \   -L/usr/local/src/sendmail-8.14.2/obj.FreeBSD.6.2-RELEASE.i386/libmilter/ \   -lmilter \   test.c としてコンパイルしようとすると、libmilter の中にある関数が、 ことごとく「undefined reference」になってしまいます。 これを、-L や -lオプションでライブラリを探させるのをやめて、明示的に gcc -pthread -lc_r \   test.c \   /usr/local/src/sendmail-8.14.2/obj.FreeBSD.6.2-RELEASE.i386/libmilter/libmilter.a と書くと、問題なくコンパイル&リンクできるのですが・・・ なぜなのでしょうか??