/usr/lib/x86_64-linux-gnu 디렉토리에 libc.so.6이 있는 이유는 무엇입니까?

/usr/lib/x86_64-linux-gnu 디렉토리에 libc.so.6이 있는 이유는 무엇입니까?

이 질문을 읽은 후libc6-dev와 libc6의 차이점, 새 VPS를 시작 Ubuntu 20.04 LTS하고 일부 Ubuntu 패키지에 어떤 파일이 포함되어 있는지 확인했습니다.

나는 확인했다 libc6-dev(https://packages.ubuntu.com/focus/amd64/libc6-dev/filelist) 그리고 libc6(https://packages.ubuntu.com/focus/amd64/libc6/filelist).

보시다시피 libc6-dev이러한 공유 라이브러리는 아래에 있고 /usr/lib/x86_64-linux-gnu/공유 libc6라이브러리는 아래에 있습니다 /lib/x86_64-linux-gnu/.

그러나 나를 궁금하게 만드는 것은 다음과 같습니다.

  1. 나도 ( ) 있어요 libc.so.6 . 삭제되지 않습니다. 이것은 어디에서 왔습니까?/usr/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so*apt install remove libc6-devlibc.so.6libc.so.6

  2. Packge는 바이트 만 -rw-r--r-- 1 root root 298 Apr 7 09:24 libc.so설치합니다 . 무엇을요? 왜?libc6-dev298

sudo apt list --installed산출:https://pastebin.com/geDjY2z2
ll -h | grep libc산출:https://pastebin.com/UHn5QVt1

ll -h | grep libc출력, 왼쪽(제거됨 libc6-dev):

텍스트

답변1

libc.so.6패키지의 일부입니다 libc6. 의 파일 목록에만 나타나는데 /lib/x86_64-linux-gnu, /lib심볼릭 링크이므로 /usr/lib에도 나타납니다 /usr/lib/x86_64-linux-gnu. libc.so.6C 라이브러리를 사용하는 프로그램에서 참조하는 라이브러리입니다.

$ ldd /bin/true
    linux-vdso.so.1 (0x00007ffc797a9000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc865f4a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc86614b000)

libc.so프로그램을 빌드할 때 사용되며,링커 스크립트입니다라이브러리 대신 해당 내용을 검사할 수 있습니다.

$ cat /lib/x86_64-linux-gnu/libc.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc_nonshared.a  AS_NEEDED ( /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ) )

관련 정보