Paylaşılan bir kitaplığın kurulu olup olmadığını nasıl kontrol edebilirim?


14

Sorum, ffmpeg'i başlatma sorunumdan kaynaklanıyor. Ben ffmpeg yükledim ve yüklü olarak görüntülenir:

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

Daha sonra, bazı programların kurulumun kendisi ile birlikte gelmeyen kütüphanelere bağlı olduğunu anladım, bu yüzden eksik olan ldd komutuyla kontrol ettim:

# 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)

Görünüşe göre benim ffmpeg çok çalışma 7 kütüphaneden kesilir. İlk olarak, bu kütüphanelerin her birinin kurulması gerektiğini düşündüm, ancak anladığım kadarıyla, bazılarının veya hepsinin yüklenebileceğini, ancak konumlarının ffmpeg tarafından bilinmediğini düşündüm. /Etc/ld.so.conf ve /etc/ld.so.cache kitaplıklarının yollarını içerdiğini okudum, ancak kafam karıştı, çünkü içinde sadece bir satır vardı

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

ama çok uzun /etc/ld.so.cache.

Şimdi daha fazla araştırmak için nasıl kayıp hissettim bir noktada, konumu ffmpeg bilinmeyen bile belirli bir kütüphane gerçekten yüklü olup olmadığını belirlemek için nasıl yardımcı olabilir, bir sonraki adım yardımcı olabilir.

---------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:

Dağıtımınız / İşletim Sisteminiz nedir? Dağıtımınızdan ffmpeg kullanmamanızın bir nedeni var mı?
Faheem Mitha

Linux nane kod adı Rebecca kullanıyorum, ffmpeg dağıtımımda zaten yüklü değildi, "apt-get install ffmpeg" ile yüklemeye çalıştığımda ffmpeg (sadece diğer programlardaki anahtar kelime) olmadığı ortaya çıktı, burada bir depo ekledim dahil edildi ve yükleyebilirsiniz, ama "ldd / usr / bin / ffmpeg" sonra ffmpeg bazı kütüphaneler eksik olduğunu keşfetti, ben apt-get isimlerini yazarak bu kütüphaneleri yüklemeye çalıştı ama onlar bu şekilde bulunamadı.
Abdul Al Hazred

Sadece söylemek gerekirse, ffmpeg yüklemek için eşek gerçek bir acı olabilir. Git'ten statik bir kurulum kullanmak daha iyi olabilir. İşte bir tür ruh tarafından yaratıldı tek baş ağrısı sizi kurtarmaktır: johnvansickle.com/ffmpeg
Baazigar

Bize hangi havuzu yüklediğinizi söyleseniz yardımcı olur. :-) Ayrıca, apt-get -f installsorunuzun çıktısını yapıştırabilir misiniz , lütfen? Not: Ubuntu, Ubuntu 14.04'e dayanmaktadır, bu nedenle dağıtımınıza ffmpeg dahil değilse, buraya bakabilirsiniz.
Faheem Mitha

Deponun adını hatırlayamıyorum, ancak /etc/apt/sources.list /etc/apt/sources.list.d adresinde aramaya çalıştığımda, oğlumla biten bir soyadı adı gibiydi. /
Abdul Al Hazred

Yanıtlar:


5

Bu kütüphaneler için / usr / lib ve / usr / lib64 konularına bakın. Ffmpeg eksik olanlardan birini bulursanız, diğer dizinde var olması için symlink.

Ayrıca 'libm.so.6' için bir arama çalıştırabilir ve dosyanın nerede olduğunu görebilirsiniz. Aynı dizinde eksik olanları bulmak için iyi bir şans var. Onları bulduktan sonra orada Symlink.

Sunucunuzda yoksa, bunları içeren paketi yükleyin. Bunlar ffmpeg paketine dahil edilmiş ancak görmüyorsanız, ffmpeg'i yeniden yüklemeyi deneyin.


Eğer / usr / lib veya / usr / lib64 içinde mevcut değilse, yüzde 100 kurulu değil mi?
Abdul Al Hazred

/ Usr / lib veya / usr / lib64 dosyasında mevcut değilse, büyük olasılıkla yüklenmez. ffmpeg kurulumu çok zor olabilir, ffmpeg'in insanların beklediği gibi çalışmasını sağlamak için genellikle ffmpeg ve başka bir şeye ihtiyacınız vardır. Bazen çok sayıda 'başka bir şey' olabilir. Anlaşılır olan manuel kurulumdan muzdarip olmayı tercih etmediğiniz sürece statik bir yapı kullanmanızı öneririm.
Baazigar

Statik bir yapının ne olduğunu bilmiyorum ....
Abdul Al Hazred

1
Statik derleme, ffmpeg ve ilgili araçların tek bir dizinde birlikte çalışabileceği anlamına gelir. Git'i sunucunuza çekmek için kullandığınızda, oradaki her şeye sahip olursunuz, böylece kütüphane ya da başka bir şey söz konusu olmaz. Hepsi tek bir kutuda geliyor, tek yapmanız gereken direktiflerinizi ona işaret edecek şekilde ayarlamak. : Bu konuda daha fazla okumak ve bunu elde edebilirsiniz İşte burada johnvansickle.com/ffmpeg
Baazigar

27

Kullanabilirsiniz:

ldconfig -p | grep libavfilter

Hiçbir çıkış kütüphanesi kurulu değilse. Bunun% 100 güvenilir olup olmadığından emin değilim. -P seçeneği için
en azından ldconfigkılavuz sayfasında:

Geçerli önbellekte depolanan dizin ve aday kitaplıklarının listesini yazdırın.


1

64 bit veya 32 bit için derlenmiş file `which ffmpeg`olup olmadığını belirlemek için komutu kullanın ffmpeg. 64 bit ise, içindeki kütüphaneleri arayın /usr/lib64. 32 bit ise, içindeki kütüphaneleri arayın /usr/lib. ffmpegStatik olarak bağlıysa , o zaman önemli değil ... herhangi bir paylaşılan kitaplık kullanmayacak ve çıktısı da filebunu size söyleyecektir.

Sembolik arasındaki kütüphaneleri bağlantı vermeyin /usr/libve /usr/lib64. 64-bit bir program 64-bit kitaplıklara (içinde bulunur /usr/lib64) ve 32-bit bir program 32-bit kitaplıklara (içinde bulunur /usr/lib32) ihtiyaç duyacağından bu size yardımcı olmaz .

Sunucunuzda kitaplıklar yoksa, bunları sağlayan paketi yükleyin (ffmpeg 32 bit ise 32 bit paketi seçtiğinizden emin olun).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.