共有ライブラリがインストールされているかどうかを確認する方法は?


14

私の質問は、ffmpegを開始する際の問題から生じています。ffmpegをインストールしましたが、インストール済みと表示されます:

whereis ffmpeg 
ffmpeg: /usr/bin/ffmpeg /usr/bin/X11/ffmpeg /usr/share/ffmpeg /usr/share/man/man1/ffmpeg.1.gz

後で、一部のプログラムはインストール自体に付属していないライブラリに依存していることがわかりました。そのため、lddコマンドで不足しているものをチェックしました。

# ldd /usr/bin/ffmpeg
    linux-vdso.so.1 =>  (0x00007fff71fe9000)
    libavfilter.so.0 => not found
    libpostproc.so.51 => not found
    libswscale.so.0 => not found
    libavdevice.so.52 => not found
    libavformat.so.52 => not found
    libavcodec.so.52 => not found
    libavutil.so.49 => not found
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5f20bdf000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5f209c0000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5f205fb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5f20f09000)

結局のところ、私のffmpegは7つのライブラリから切り離されています。最初に、これらのライブラリをそれぞれインストールする必要があると考えましたが、私が考えたよりも、一部またはすべてがインストールされるかもしれませんが、それらの場所はffmpegには不明です。/etc/ld.so.confと/etc/ld.so.cacheにライブラリへのパスが含まれていることを読みましたが、混乱しました。

/etc/ld.so.conf
 cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf

しかし、非常に長い/etc/ld.so.cache

私は今、さらに調査する方法を失ったと感じています。特定のライブラリが実際にインストールされているかどうかをffmpegが知らない場所で判断するのに役立つ次のステップになるかもしれません。

---------Output---of----apt-cache-policy-----request---------
apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://archive.canonical.com/ubuntu/ trusty/partner Translation-en
 500 http://archive.canonical.com/ubuntu/ trusty/partner i386 Packages
     release v=14.04,o=Canonical,a=trusty,n=trusty,l=Partner archive,c=partner
     origin archive.canonical.com
 500 http://archive.canonical.com/ubuntu/ trusty/partner amd64 Packages
     release v=14.04,o=Canonical,a=trusty,n=trusty,l=Partner archive,c=partner
     origin archive.canonical.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/universe Translation-en
 500 http://security.ubuntu.com/ubuntu/ trusty-security/restricted Translation-en
 500 http://security.ubuntu.com/ubuntu/ trusty-security/multiverse Translation-en
 500 http://security.ubuntu.com/ubuntu/ trusty-security/main Translation-en
 500 http://security.ubuntu.com/ubuntu/ trusty-security/multiverse i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=multiverse
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/universe i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=universe
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/restricted i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=restricted
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/main i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=main
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/multiverse amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=multiverse
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/universe amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=universe
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/restricted amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=restricted
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-security,n=trusty,l=Ubuntu,c=main
     origin security.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/restricted Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/multiverse Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/multiverse i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=multiverse
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=universe
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/restricted i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=restricted
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main i386 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=main
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/multiverse amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=multiverse
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=universe
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/restricted amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=restricted
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty-updates,n=trusty,l=Ubuntu,c=main
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/universe Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty/restricted Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty/multiverse Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty/main Translation-en
 500 http://archive.ubuntu.com/ubuntu/ trusty/multiverse i386 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=multiverse
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/universe i386 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=universe
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/restricted i386 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=restricted
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/main i386 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=main
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/multiverse amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=multiverse
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=universe
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/restricted amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=restricted
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
     release v=14.04,o=Ubuntu,a=trusty,n=trusty,l=Ubuntu,c=main
     origin archive.ubuntu.com
 700 http://extra.linuxmint.com/ rebecca/main i386 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=main
     origin extra.linuxmint.com
 700 http://extra.linuxmint.com/ rebecca/main amd64 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=main
     origin extra.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/import i386 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=import
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/upstream i386 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=upstream
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/main i386 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=main
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/import amd64 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=import
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/upstream amd64 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=upstream
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com/ rebecca/main amd64 Packages
     release v=17.1,o=linuxmint,a=rebecca,n=rebecca,l=linuxmint,c=main
     origin packages.linuxmint.com
Pinned packages:

あなたのディストリビューション/ OSは何ですか?ディストリビューションのffmpegを使用していない理由はありますか?
ファヒムミサ

Linux mintのコードネームRebeccaを使用しています。ffmpegはディストリビューションにまだインストールされていません。「apt-get install ffmpeg」でインストールしようとすると、ffmpeg(他のプログラムのキーワードのみ)がなかったため、リポジトリを追加しました。含まれていてインストールできましたが、「ldd / usr / bin / ffmpeg」でffmpegにいくつかのライブラリが見つからないことがわかりました。apt-getに名前を入力してライブラリをインストールしようとしましたが、この方法では見つかりませんでした。
アブドゥルアルハズレッド

ただ言うと、ffmpegはインストールするのが本当に大変な場合があります。gitから静的インストールを使用する方が良い場合があります。これは、頭痛からあなたを救うために親切な魂によって作成されたものです:johnvansickle.com/ffmpeg
Baazigar

どのリポジトリからインストールしたかを教えていただければ助かります。:-)また、apt-get -f install質問に出力を貼り付けてください。注:ubuntuはUbuntu 14.04に基づいているため、ディストリビューションにffmpegが含まれていない場合はUbuntuを参照できます。
ファヒームミタ

リポジトリの名前は思い出せませんが、/ etc / apt / sources.list /etc/apt/sources.list.dで検索しようとしたときに、息子で終わる姓のようなものでした/
アブドゥルアルハズレッド

回答:


5

これらのライブラリーについては、/ usr / libおよび/ usr / lib64を調べてください。ffmpegの1つが見つからない場合は、他のディレクトリに存在するようにシンボリックリンクします。

「libm.so.6」の検索を実行して、そのファイルの場所を確認することもできます。ffmpegが欠落しているディレクトリを同じディレクトリで探している可能性があります。それらを見つけたら、あそこをシンボリックリンクします。

サーバーに存在しない場合は、それらを含むパッケージをインストールします。ffmpegパッケージに含まれているが表示されない場合は、ffmpegを再インストールしてください。


/ usr / libまたは/ usr / lib64に存在しない場合、完全にインストールされていないのは間違いありませんか?
アブドゥルアルハズレッド

/ usr / libまたは/ usr / lib64に存在しない場合、インストールされていない可能性があります。ffmpegのインストールは非常に困難な場合があります。ffmpegを人々が期待するように機能させるには、ffmpegなどが必要になることがよくあります。時には多数の「何か他のもの」。理解できる手動インストールで苦労したくない場合を除き、静的ビルドを使用することを強くお勧めします。
バージガー

静的ビルドとは何なのかわかりません....
アブドゥルアルハズレッド

1
静的ビルドとは、ffmpegと関連ツールがすべて1つのディレクトリから一緒に機能するようにコンパイルされていることを意味します。gitを使用してそれをサーバーにプルダウンすると、すべてがその1か所にあるため、ライブラリなどの問題はありません。つまり、すべてを1つの「ボックス」に収めるので、指示するように指示を設定するだけです。ここで詳細を読んで入手できます: johnvansickle.com/ffmpeg
Baazigar

26

次を使用できます。

ldconfig -p | grep libavfilter

出力ライブラリがない場合はインストールされません。これが100%信頼できるかどうかはわかりません。
少なくともldconfigオプション-pのmanページでは:

現在のキャッシュに保存されているディレクトリと候補ライブラリのリストを印刷します。


1

コマンドfile `which ffmpeg`を使用して、ffmpeg64ビット用にコンパイルされているか32ビット用にコンパイルされているかを判断します。64ビットの場合は、でライブラリを探します/usr/lib64。32ビットの場合は、でライブラリを探します/usr/libffmpegが静的にリンクされている場合、それは重要ではありません...共有ライブラリを使用せず、の出力fileも同様に通知します。

/usr/libとの間でライブラリをシンボリックにリンクしないでください/usr/lib64。64ビットプログラムには64ビットライブラリ(にある/usr/lib64)が必要であり、32ビットプログラムには32ビットライブラリ(にある/usr/lib32)が必要なため、これは役に立ちません。

ライブラリがサーバーに存在しない場合は、それらを提供するパッケージをインストールします(ffmpegが32ビットの場合は、32ビットパッケージを選択するようにしてください)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.