공유 라이브러리가 설치되어 있는지 확인하는 방법


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를 사용하지 않는 이유가 있습니까?
Faheem Mitha

나는 리눅스 민트 코드 네임 Rebecca를 사용한다. ffmpeg는 이미 배포판에 설치되어 있지 않다. "apt-get install ffmpeg"로 설치하려고했을 때 ffmpeg가없는 것으로 밝혀졌다 (다른 프로그램의 키워드 만). 포함되어 있고 설치할 수 있지만 "ldd / usr / bin / ffmpeg"후에 ffmpeg에 일부 라이브러리가 없음을 발견 한 후 apt-get에 이름을 입력하여 해당 라이브러리를 설치하려고 시도했지만이 방법으로 찾을 수 없었습니다.
압둘 알 Hazred

ffmpeg는 엉덩이를 설치하는 데 큰 고통이 될 수 있습니다. git에서 정적 설치를 사용하는 것이 좋습니다. 다음은 친절한 영혼이 두통을 피하기
Baazigar

어떤 저장소를 설치했는지 알려 주면 도움이 될 것입니다. :-) 또한, 당신은 당신 apt-get -f install의 질문에 결과를 붙여 넣을 수 있습니까? 참고 : 우분투는 우분투 14.04를 기반으로하므로 ffmpeg가 배포판에 포함되어 있지 않으면 볼 수 있습니다.
Faheem Mitha

나는 저장소의 이름을 기억할 수 없지만 /etc/apt/sources.list /etc/apt/sources.list.d에서 찾아 보려고했을 때 아들로 끝나는 성의 이름과 같았습니다. /
Abdul Al Hazred

답변:


5

해당 라이브러리는 / usr / lib 및 / usr / lib64를 참조하십시오. ffmpeg가 누락 된 것을 발견하면 다른 디렉토리에 존재하도록 심볼릭 링크하십시오.

'libm.so.6'에 대한 검색을 실행하고 해당 파일이있는 위치를 확인할 수도 있습니다. ffmpeg가 동일한 디렉토리에서 누락 된 디렉토리를 찾을 가능성이 높습니다. 당신이 그들을 찾으면 저기 Symlink.

서버에없는 경우 해당 서버가 포함 된 패키지를 설치하십시오. ffmpeg 패키지에 포함되어 있지만 표시되지 않으면 ffmpeg를 다시 설치하십시오.


따라서 / usr / lib 또는 / usr / lib64에 없으면 설치되지 않은 100 %입니까?
압둘 알 Hazred

/ usr / lib 또는 / usr / lib64에 없으면 설치되지 않았을 가능성이 큽니다. ffmpeg 설치는 ​​사람들이 기대하는대로 ffmpeg가 작동하도록하기 위해 매우 어려울 수 있습니다. 종종 ffmpeg와 다른 것이 필요합니다. 때때로 수많은 '다른 것'. 수동 설치로 어려움을 겪지 않는 한 정적 빌드를 사용하는 것이 좋습니다.
Baazigar

나는 정적 빌드가 무엇인지 모르겠다. ...
Abdul Al Hazred

1
정적 빌드는 ffmpeg 및 관련 도구가 하나의 디렉토리에서 모두 함께 작동하도록 컴파일되었음을 의미합니다. git을 사용하여 서버로 가져 오면 라이브러리 한곳에 모든 것이 있으므로 라이브러리 나 다른 문제는 없습니다. 그것은 하나의 '박스'로 제공되므로 말하기를 지시하기 만하면됩니다. 여기에서 자세한 내용을 확인하고 얻을 수 있습니다. johnvansickle.com/ffmpeg
Baazigar

27

당신이 사용할 수있는:

ldconfig -p | grep libavfilter

출력 라이브러리가 없으면 설치되지 않습니다. 이것이 100 % 신뢰할 수 있는지 확실하지 않습니다. 옵션 -p
ldconfig대한 man 페이지에서 :

현재 캐시에 저장된 디렉토리 및 후보 라이브러리 목록을 인쇄하십시오.


1

명령 file `which ffmpeg`을 사용하여 ffmpeg64 비트 또는 32 비트 용으로 컴파일 되었는지 판별 하십시오 . 64 비트 인 경우의 라이브러리를 찾으십시오 /usr/lib64. 32 비트 인 경우의 라이브러리를 찾으십시오 /usr/lib. ffmpeg정적으로 링크 된 경우 중요하지 않습니다 ... 공유 라이브러리를 사용하지 않으며 그 결과로 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.