2012-11-06 3 views
3

내장 소스에 사용되는 내장형 전처리기를 강제로 제거하려고하지 않고 호스트 시스템에 설치된 공유 라이브러리를 사용하지 않도록합니다. 무엇 전에 지정된 공유 라이브러리를 가져올 로더 (LD-리눅스)를 강제로 LD_PRELOAD 환경 변수가 있지만로더가 가져 오지 않도록 공유 라이브러리를 블랙리스트하는 방법은 무엇입니까?

, 나는 지정된 가져을 로더 을하지 강제 정반대을하고 싶습니다 라이브러리는 설치 과정에서 (일종의 LD_NEVERLOAD 변수).

전체 시스템 (일명 그런 라이브러리 제거)을 손상시키지 않고이를 수행 할 수있는 방법이 있습니까?

추신 :이 특정 사용 사례를 테스트하기 위해 시스템 라이브러리의 이름을 바꿨지만이 방법은 분명히 우아하지 않습니다.

+0

LDFLAGS에서'-z nodeflib '을 사용하면 로더가'/ usr/lib'과'/ lib' 디렉토리를 건너 뛰게되는 것 같습니다. 그러나 이는 파일 단위로는 작동하지 않습니다. 모든 관련 라이브러리를 별도의 장소에 복사하여 작동되는 모든 것을 얻으십시오. – milton

답변

1

당신은 "RPATH"에 관련된 모두 매뉴얼에 LD_LIBRARY_PATH, LD_RUNPATH 및 옵션을 가지고 노는 시도 ld.so(8) 수있는 매뉴얼 페이지 ld(1)을 읽고.

+0

@Shahbaz, 멋지다, 나는 거기에 너무 많은 옵션을 몰랐다. 이러한 옵션을 사용하면 대체 라이브러리를 찾을 위치를 말할 수 있지만 기본 검색 경로 (내 경우에는/usr/lib)에있는 특정 라이브러리를 가져 오지 못하도록 ** 로더 **에 지시 할 수 없습니다. – milton

관련 문제