/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-devhttps://packages.ubuntu.com/focus/amd64/libc6-dev/filelist)とlibc6https://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-gnulibc.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 ) )

おすすめ記事