• 締切済み

RedHatに関して、 .so ファイルとは?

RedHatにあるソフトを入れて実行しようとしたところError:Cannot find /usr/local/soft/lib/tcltk_soft.soというエラーが出ます。。tcltk_soft.soというファイルはどこにも見当たりません。そもそも .so とはどのようなファイルなのでしょうか? Linuxは全くの素人です。 もし何かご存知であれば教えていただけると助かります。

  • ccoit
  • お礼率100% (4/4)

みんなの回答

  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.2

基本として、そのあるソフトの説明を読む、これ基本。 Tcl/Tkを知らないのだから、Linuxに詳しく無いんだと思います。 であれば、質問する段階で、充分な情報を提示するのが基本です。 また、/usr/local/soft/libというディレクトリーも特筆すべき点です。 これは通常システムに無いファイルである可能性が高い。 /usr/localというディレクトリーはシステムが使うものではなく 管理者が、管理者権限で導入し、一般ユーザーにも利用を認めるファイルを置くところです。 ですから、ここに収まるべきファイルであれば、yumのようなツールでは導入されず そのあるソフトの開発者に確認するか、説明書を確認するか それ以外の解決方法は無いということになります。 http://ja.wikipedia.org/wiki/Tcl/Tk

ccoit
質問者

お礼

ありがとうございました。 どうやら、tcl/tk自体がパソコンにインストールされていないようで、ソフトをインストールするときにそのファイル(tcltk_soft.so)が作成されていないようです。tcl/tkをインストールするところから今一度試してみます。 そのソフトはまだ開発途中のソフトで説明書も簡単にしか書かれていないようです。 情報不足で済みません。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

あるソフトが何か不明ですが…。 拡張子.soは一般的にライブラリ…です。 Windowsで言う.DLLみたいなモノですかね。 指定されたパスにライブラリがないのでしょう。 ソフトの動作条件などに必要なライブラリ(というかパッケージ)など書かれていませんかね。

ccoit
質問者

お礼

ありがとうございます。 どうやらパソコンにtcltk自体がインストールされていないので、ソフトのインストール時に自動で作成されるはずのファイルが出来ていなかったようです。。 情報不足で済みません。 もう少し勉強してみます。

関連するQ&A

  • libstdc++.so.5にパスが通らない

    Solaris8のコンソール上でC++でコーディングしたプログラムを実行したのですが、libstdc++.so.5が見つからないというエラーが出ます。 .cshrc内で setenv LD_LIBRARY_PATH /usr/local/lib とパスを設定してあるのですが…… なお、当然ながら/usr/local/libには該当するlibstdc++.so.5が存在しています。

  • OpenSSLの共有ライブラリ(libcrypto.so)動的リンクにつきまして

    [環境] Linux version 2.6.9-67.EL gcc version 3.4.6 (Red Hat 3.4.6-8)) 以下のように、OpenSSLの共有ライブラリlibcrypto.soをロードする プログラムを書いているのですが、 ------ #include <stdio.h> #include <dlfcn.h> #include <errno.h> void main(void) { void* hSO; hSO = DLL_OPEN("/usr/local/ssl/lib/libcrypto.so", RTLD_NOW); if( hSO == NULL ) { printf("%s\n", dlerror()); } else { // 処理 } } ------ hSO = DLL_OPEN("/usr/local/ssl/lib/libcrypto.so", RTLD_NOW); で、NULLが返って来てしまいます。 [dlerror内容] /usr/local/ssl/lib/libcrypto.so: cannot open shared object file: No such file or directory しかし、このパスには、シンボリックリンクされたlibcrypto.soファイルが存在します。 試しに、同ディレクトリにあるlibcrypto.so.0.9.8mも試しましたが、同じエラーが出力されました。 パスの指定方法に、何か行う必要があるのでしょうか。

  • Java 2 SDK, Standard Edition のインストール

    こんばんは。 Java 2 SDK, Standard Edition のインストールで困っています。 OSはredhat7jです。 Xwindowは入っていません。 sunのところから、「j2sdk-1_3_0_02-linux.bin」をダウンロードしてきて、 redhatにrootで入り、/usr/localに「j2sdk-1_3_0_02-linux.bin」をコピーしました。 そして、「./j2sdk-1_3_0_02-linux.bin」と入力して実行しました。 メッセージが表示されて、最後に「yes」と入力して、インストールは 成功したのですが、インストールが成功したか確認のために、 「/usr/local/jdk1.3.0_02/bin/java -version」と入力し実行したらエラーが表示されてしまいます。 インストール先は「/usr/local/jdk1.3.0_02/」です。 パスも「PATH=$PATH:/usr/local/jdk1.3.0_02/bin」と通してあります。 エラーの内容は、 /usr/local/jdk1.3.0_02/bin/i386/native_threads/java: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory と表示されています。 どうかよろしくお願いします。

  • error while loading shared libraries

    皆さんこんにちは。 「 error while loading shared libraries」エラーからの 回復の仕方が分からないでいます。 経緯は以下のとおりです。 memcashedの動きを確かめるためのサンプルソースを見つけてきて、 問題なくインストールが無事に完了した後に、 ソース(memtest)を実行しようとしたら、 「libmemcached.so.2がないよ!」ということで、 怒られてしまい実行できませんでした。 ============= ./memtest: error while loading shared libraries: libmemcached.so.2: cannot open shared object file: No such file or directory ============= パスが通っていないという事かな?と思い、 「libmemcached.so.2」の場所を探した後に、 pathに追記してみたのですが、 やはり、同じエラーが出てソースを実行できませんでした。 pathの指定の仕方が適切ではないのでしょうか? どうやって、問題を解決すれば言いか分からないでいます。 OSはFedora9を使用しています。 どなたか、アドバイスいただけますとありがたいです。 宜しくお願い致します。 # find / -name "libmemcached.so.2" -print /lib/libmemcached-0.29/libmemcached/.libs/libmemcached.so.2 /usr/local/lib/libmemcached.so.2 # PATH=$PATH:/usr/local/lib/libmemcached.so.2:/lib/libmemcached-0.29/libmemcached/.libs/libmemcached.so.2 # export PATH # ./memtest ./memtest: error while loading shared libraries: libmemcached.so.2: cannot open shared object file: No such file or directory

  • Linuxで、Pearコマンドが使えない。

    こんばんは。 Linuxにて、Pearを使いたいのですが、 #/usr/local/bin/php にて、pear upgrade PEAR と打つと、 error while loading shared libraries: libmysqlclient.so.14: cannot open shared object file: No such file or directory となってしまいます。 色々調べたところ、libmysqlclient.so.14 がないことが原因のようなのですが、libmysqlclient.so.14 をどこからどうやってインストールし、使えるようにすればよいか分かりません。 ただ、 libmysqlclient.so.15 は、 /usr/lib/mysql 内にありました。 よろしくお願いします!

    • ベストアンサー
    • PHP
  • 32bitでコンパイルするには

    お世話になっております。 CentOSの64ビットマシンを使っています。 C言語の簡単なサンプルとして、ポインタ変数の長さを表示するプログラム(sizeof(ポンタ変数)をprintf)を作りました。 これをコンパイルして実行すると8と表示されますので、64bitとアプリケーションとしてコンパイルされたのだろうと思います。 次に32Bitアプリケーションとしてコンパイルするために-m32オプションを付けてコンパイルしたところ、以下のとおりエラーが出てしまい困っております。 gcc -m32 -o sample sample.c /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 解決方法について教えていただければ幸いです。 コンパイラは、gcc-4.4.7-3.el6.x86_64をインストールしています。 よろしくお願いします。

  • libm.so.2: open に失敗しました

    教えて下さい。 Solaris10(SunStudio12.1)でビルドしたAPを、 Solaris8で実行しようとしたら、下記のエラーが出て実行できません。 「重大なエラー: libm.so.2: open に失敗しました: ファイルもディレクトリもありません。」 Solaris8のマシンの/usr/libには、libm.so.1はありますが、libm.so.2はありません。 Solaris10のマシンには両方あります。 (1)Solaris10でのビルド時に、libmをstaticリンクすることも考えたのですが、 OSに依存するライブラリだと思いますので、 (2)Solaris8のマシンに存在するlibm.so.1で動作してくれないものかと思っています。 (2)は可能でしょうか?どうすればできますでしょうか? そもそも動的リンクなのに、ビルド時にライブラリのバージョンは固定されてしまうものなのでしょうか? それぞれのマシンには /usr/lib/libm.so というシンボリックリンクがあり、 Solaris10ではlibm.so.2を、 Solaris8ではlibm.so.1を指しています。 バージョンに拘らずシンボリックリンク(libm.so)を使ってくれないものなのでしょうか? 宜しくお願い致します。

  • GDモジュールのインストールエラー

    RedHat ES でGDgraphモジュールを使用するために GDモジュールをインストールしたところ、下記のようなエラーになりました。 gcc -c -I/usr/local/include -I/usr/local/include/gd -D_REENTRANT -D_GNU_SOURCE -DTHREADS_ HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FIL E_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -march=i386 -mcpu=i686 -DVERSION=\"2.11\" -DXS_VERSION=\"2.11\" -fPIC "-I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE" GD .c Running Mkbootstrap for GD () chmod 644 GD.bs rm -f blib/arch/auto/GD/GD.so LD_RUN_PATH="/usr/local/lib:/usr/lib:/lib" gcc -shared -L/usr/local/lib GD.o -o blib/arch/auto/GD/GD.so -L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/local/lib -lgd -lpng -lz -lm/usr/bin/ld: cannot find -lpng collect2: ld はステータス 1 で終了しました make: *** [blib/arch/auto/GD/GD.so] エラー 1 freetype2 gdライブラリ PG.pm GDTextUtile GD::Graph   はインストール完了しましたが gdのインストールだけが何度やっても失敗します。 何のモジュールが足りないのか教えていただきたいです。 よろしくお願いいたします。

  • RedHat9、QtSDKの組合せの開発について

    目的  linux、RedHat9に最新のQtSDK(Qtのバージョンは4.7)をインストールして  GUIアプリケーションの開発を行おうとしています。 聞きたい事  RedHat9に最新のQtSDKをインストールしてアプリケーションのビルド、  実行をすることはできるのでしょうか?  もし出来るのであれば、どのような手順で環境と整えると、RedHat9で  QtSDKの開発を行えますでしょうか? 環境設定で行った内容  1回目のRedHat、QtSDKインストール   開発ツールの全項目にチェックをいれて、qt3.1の開発環境が入った状態で   RedHatのインストールを行う。   次にqt-sdk-linux-x86-opensource-2010.05.1.binをインストールする。   インストール完了後、Find検索をするが「libstdc++.so.6」は存在しなかった。   Qtクリエイターが起動しないのは、Qt3.1を入れたためパス設定が問題のため   だと判断。   またFedora13、qt-sdk-linux-x86-opensource-2010.04の組合せだと、   正常にQtクリエイター、実行モジュールが動作することを確認しました。  上記のような経緯から2回目のRedHatのインストールを行う。    2回目のRedHat、QtSDKインストール   RedHat9のインストール設定で開発のパッケージグループの設定から   以下の全てのチェックを外す。   ・開発ツール、カーネル開発、Xソフトウエイア開発、GNOME、KDEソフトウエア開発   理由はインストール時のQt3.1の混在とパス設定をさせないため。   この状態でRedHat9にqt-sdk-linux-x86-opensource-2010.05.1.binをダウロードして   インストールを行うと「libstdc++.so.6」が無いというメッセージが表示され、   インストール完了後にQtクリエイターやサンプルの実行モジュールを実行することが   出来ない。   インターネット上でlibstdc++.so.6を入手して /usr/lib の下に保存し   改めてqt-sdk-linux-x86-opensource-2010.05.1.binをインストールすると、  さらに  ・GLIBCXX_3.4.9  ・GLIBC_2.4  ・GCC_3.3  という上記ファイルが無いというメッセージが出る。 ここからどのようにして進めればよいか詰まってしまいました。 以上よろしくお願いします。

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

     お世話になります。  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を検索する方法があるでしょうか。  いろいろですみません。よろしくお願いいたします。

専門家に質問してみよう