RedHat 5.x 및 6.x에서 OS 라이브러리를 확인하는 스크립트

RedHat 5.x 및 6.x에서 OS 라이브러리를 확인하는 스크립트

우리는 ImageMagick을 우리 제품과 함께 배송합니다. 꽤 많은 라이브러리가 필요합니다.

libtiff libICE libdl
libfreetype libX11 libglib-2.0
libjpeg libbz2 libxml2
libpng librsvg-2 libz
libfontconfig libgdk_pixbuf-2.0 libm
libXext libm libgomp
libXt libgobject-.0 libpthread
libSM libgmodule-2.0 

이러한 라이브러리가 호스트 RedHat 운영 체제에 이미 존재하는지 확인하는 표준 방법이 있습니까?

SO 및 Google에서 검색하면 다음과 같은 명령이 표시됩니다.

pkg-config, 찾아서 무엇을

성공적으로 사용한 사람이 있나요?

답변1

다음 명령 을 시도해 보세요 ldd.

ldd ImageMagick

ImageMagick 프로그램이 참조하는 동적 공유 개체, 라이브러리 및 라이브러리가 발견되었는지 여부를 인쇄합니다.

답변2

yum을 사용하여 설치하면 누락된 종속성이 표시됩니다.

무엇이 누락되었는지 알고 싶다면 yum-downloadonly 플러그인을 설치하면 됩니다.

yum install -y ImageMagick --다운로드만

그러면 설치하지 않고 누락된 모든 종속성을 다운로드합니다.

rpm을 설치하기 전에 종속성을 찾으려면

rpm -qpR 무언가.rpm

모든 종속 항목을 나열한 다음 검색하여 이러한 항목이 있는지 확인할 수 있지만 너무 복잡해 보입니다. 아마도 yum --downloadonly이면 충분할 것입니다.

답변3

나는 당신이 사용하는 것이 좋습니다 autoconf; 내부에는 라이브러리에 대해 더미 프로그램을 컴파일하려고 시도하여 존재하는 라이브러리를 자동으로 확인하는 도구가 있습니다. http://www.gnu.org/software/autoconf/manual/ 예:

AC_CHECK_LIB(MagickWand, GetMagickModule)

이는 호출하는 간단한 프로그램을 컴파일하려고 시도합니다 GetMagickModule(). 프로그램을 실행하려고 시도하는 것이 아니라 컴파일만 시도합니다.

autoconf프로그램은 configure라이브러리를 확인하기 위해 호출되는 프로그램을 생성합니다. 주요 목적은 결국 Makefile을 생성하는 것이지만 그것이 목표일 필요는 없습니다. 프로그램 configure은 라이브러리를 확인하고 라이브러리가 없으면 오류를 반환할 수 있습니다.

관련 정보