LDCONFIG(8)

명칭
ldconfig - 공유 프로그램 라이브러리의 캐쉬를 설정한다

서식
ldconfig [-aout | -elf] [-Rimrsv] [-f hints_file] [directory | file ...]

해설
ldconfig 유틸리티는, 다이나믹 링커 하지만, 복수의 디렉토리로부터 이용 가능한 공유 프로그램 라이브러리를 재빠르게 찾아 내기 위해서(때문에) 사용한다 “힌트” 의 집합을 준비하기 위해서 사용됩니다. 명령은, 편입의 시스템 디렉토리와 명령행으로 지정된 임의의 디렉토리 (를 지정된 차례)(으)로 공유 프로그램 라이브러리를 찾아, 그 결과를 시스템 파일 에 보존합니다. 이것은, 다이나믹 링커 하지만 요구된 공유 프로그램 라이브러리를 읽어들일 때의 디렉토리 검색 조작 오버헤드를 미리 지불하고 있게 됩니다.

명령행에서 지정하는 파일명은 공유 프로그램 라이브러리를 검사하는 디렉토리 (을)를 포함하는 것이 기대됩니다. 각 디렉토리의 패스명은 행의 선두로부터 시작될 필요가 있습니다. 공행 및 코멘트 캐릭터 ‘#’ (으)로부터 시작되는 행은 무시됩니다.

보안상의 이유로부터, 누구라도 기입해 가능 또는 그룹 기입해 가능한 디렉토리와 root 가 소유하지 않는 디렉토리에 대해서는, 경고 메세지를 생성해 스킵 합니다. 다만, -i 옵션이 존재하는 경우는, 예외입니다.

공유 프로그램 라이브러리는, 실행되려고 하는 프로그램에 의해 필요하게 된다 (이)라면, 이용 가능한 것이 자동적으로 읽히게 됩니다. 이것은, 실행 형식에 검색 패스를 보존하는 필요성을 없게 합니다.

LD_LIBRARY_PATH 환경 변수는, 캐쉬로부터 사용하는 디렉토리 (나, 그 순서 관계)를 덧쓰기하거나 공유 프로그램 라이브러리를 찾는 추가의 디렉토리를 지정하기 위해서 사용됩니다. LD_LIBRARY_PATH (은)는, 공유 프로그램 라이브러리를 읽어들일 필요가 있을 때, 다이나믹 링커 에 의해 검색되는 디렉토리 패스의 리스트를 코론 ‘’: 그리고 단락지어 지정합니다. 이것은, ld(1) 에 있어서의 -L 옵션과 실행 시점에서는 등가입니다.

ldconfig 유틸리티는 전형적으로는 부트시의 수속의 하나로서 실행됩니다.

이하의 옵션이 ldconfig 그리고 인식됩니다.

-aout
    a.out 형식의 공유 프로그램 라이브러리에 대한 힌트를 생성합니다.

-elf
    ELF 형식의 공유 프로그램 라이브러리에 대한 힌트를 생성합니다.

-R  이전으로 설정한 디렉토리를 재차 검색합니다. 이전 작성한 힌트 파일을 오픈해, 헤더로부터 디렉토리 리스트를 꺼냅니다. 명령행으로 지정한 패스명도 처리합니다. 이것이, 파라미터무지정시의 디폴트 동작입니다.

-f hints_file
    표준의 파일대신에, 특정의 힌트 파일을 읽어들이거나 갱신하거나 그 양쪽 모두를 가거나 합니다. 이 옵션은, 테스트를 위해서(때문에) 제공되고 있습니다.

-i  안전하지 않는 모드로 실행합니다. 보안 체크는 실행되지 않습니다.

-m  힌트 파일의 내용을 지정된 디렉토리에서 발견된 것에 옮겨놓는 대신에, 새로운 디렉토리의 내용을 “병합 (merge)” 합니다. 이전의 ldconfig 의 실행에 의해 힌트 파일내에 기록되고 있는 디렉토리도, 새로운 공유 프로그램 라이브러리를 위해서(때문에) 다시 검색됩니다.

-r  현재의 힌트 파일의 내용에 대해, 표준 출력에 표시합니다. 힌트 파일은 변경되지 않습니다. 힌트 파일중의 디렉토리 리스트가 짜넣어집니다.

-s  공유 프로그램 라이브러리를 위해서(때문에), 시스템의 편입 디렉토리 (“/usr/lib”) (을)를 검색하지 않습니다.

-v  장황 모드로 전환합니다.

보안
세트 uid (set-user-Id) 프로그램의 address 공간에 공유 프로그램 라이브러리를 읽어들일 때에는, 특별한 주의를 하지 않으면 안됩니다. 그러한 프로그램이 프로그램의 소유자 이외에 따라 실행될 때는 언제라도, 다이나믹 링커 (은)는 힌트 파일로부터만 공유 프로그램 라이브러리를 읽어들입니다. 특히, LD_LIBRARY_PATH (은)는, 프로그램 라이브러리를 찾기 위해서(때문에)는 사용되지 않습니다. 따라서, ldconfig 의 역할에는 2 개 있습니다. 민첩한 검색을 위해서(때문에) 힌트집합을 작성하는 것에 가세해, 공유 오브젝트가 공유 프로그램 라이브러리를 안전에 읽어들일 수가 있다 디렉토리의 모임을 특정하는 일도, 그 역할입니다.

환경 변수
OBJFORMAT
    /etc/objformat (후술)에 우선해, -aout (와)과 -elf 의 어느 쪽이 디폴트일까를 결정합니다. 설정되어 있는 경우, 값은 ‘aout’ 혹은 ‘elf’ 의 언젠가일 필요가 있습니다.

관련 파일
/var/run/ld.so.hints
    a.out 다이나믹 링커의 표준 힌트 파일.
/var/run/ld-elf.so.hints
    ELF 다이나믹 링커의 표준 힌트 파일.
/etc/ld.so.conf
    전통적인 설정 파일이며, -aout 부착으로 기동했을 경우를 위해서(때문에) 디렉토리명을 격납합니다.
/etc/ld-elf.so.conf
    전통적인 설정 파일이며, -elf 부착으로 기동했을 경우를 위해서(때문에) 디렉토리명을 격납합니다.
/etc/objformat
    -aout (와)과 -elf 의 어느 쪽이 디폴트일까를 결정합니다. 존재하는 경우, ‘OBJFORMAT=aout’ 인가 ‘OBJFORMAT=elf’ 의 몇개의 1 행으로부터 완성될 필요가 있습니다.

관련 항목
ld(1), link(5)

역사
ldconfig 유틸리티는 SunOS 4.0 으로 처음으로 나타났습니다. 현재의 형태는, FreeBSD 1.1 (으)로부터입니다.

버그
-aout 지정시에는, 실행되지 않는 보안 체크가 있습니다 (예를 들면, 추가된 디렉토리의 root 의 소유권).