[질문] Linux/UNIX에서 dependency 걸려 있는 라이브러리 알아내
글쓴이: bizzare / 작성시간: 월, 2005/09/26 - 11:24오전
윈도우에서 어떤 프로그램(exe나 dll)을 빌드해서
배포할 때는 그 exe, dll이 필요로 하는 dll들을 보통 같이 배포해야 할 때,
depends라는 프로그램으로 관련된 dll들을 알아내지 않습니까?
그리고 일반적으로 그 파일들은 VC++에서 빌드했을 때,
MFC42.dll, MSVCRT.dll 과 같은 파일들인데요
1) Linux/Unix 등에서는 Windows의 depends 와 같이
dependency를 알아낼 수 있는 유틸리티가 있는지요?
있다면 알려주세요.
2) 만일 GCC로 빌드했다면 보통 같이 배포해야하는 파일로는 어떤 것이 있나요? (리눅스는 SUSE를 쓰고 있습니다.)
Forums:
ldd라는 명령어가 있습니다.라이브러리의 파일명과 재배치위치로 생각되
ldd라는 명령어가 있습니다.
라이브러리의 파일명과 재배치위치로 생각되는 16진수가 출력됩니다.
2) SUSE에서 RPM으로 제공되는 라이브러리만 사용한다면 같이 배포할 파일은 없다고 생각합니다.(편의상 어떤 라이브러리를 사용했다고 하면 되긴하지만 RPM으로 패키지를 만들어서 배포한다면 그 마저도 필요없겠지요)
SUSE용 RPM으로 제공되지 않거나 tar.gz으로만 배포되는 다른 라이브러리를 사용한것이 있다면 같이 배포하거나 다운로드 주소를 포함시켜주면 됩니다.
rpm2html 이라는 프로그램을 사용해보세요.rpm 내부 데이터를
rpm2html 이라는 프로그램을 사용해보세요.
rpm 내부 데이터를 html 과 RDF info 형식으로 만들어 줍니다.
http://savannah.nongnu.org/projects/rpm2html
간략한 설명입니다.
http://dev.w3.org/cvsweb/rpm2html/mirroring.html?rev=1.3
Packager의 문제이지만, 공유 라이브러리의 경우 rpm 설치시 의존성 체크해서 없으면 설치가 안되지만, 설치될 프로그램 내부에서 사용하는 바이너리의 경우나, Perl, Python, Ruby 등의 스크립트 기반 언어에서 사용하는 모듈의 경우에는 체크할 방법이 없습니다. 그런 이유로 Requires:에 꼭 명시를 해줘야겠죠.
rpm -q --requires package-name 하면설치된 해
rpm -q --requires package-name 하면
설치된 해당 패키지의 의존성을 확인 할 수 있습니다만,
이미 '설치된' 패키지에만 해당됩니다.
SuSE를 사용하신다면... SuSE 제공 rpm의 경우 설치하지 않더라도
YsST->Software Management에서 의존성을 확인할 수 있지만,
이미 만들어 놓은 db가 있기 때문에 가능한것으로 알고 있습니다.
저도 전부터 궁금하던 사항이었는데,mc(Midnight Command
저도 전부터 궁금하던 사항이었는데,
mc(Midnight Commander)를 사용하면 원하는 내용을 찾을 수가 있군요.
/INFO/REQUIRENAME 에 dependancy에 관한 내용이 있습니다.
댓글 달기