从 ubuntu 22.04 开始,似乎不再在 /lib/x86_64-linux-gnu/libc.so.6 上设置执行位。这会抛出一些脚本和方法来找出正在使用的 glibc 版本。能否添加该位?
答案1
$ file /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6: ELF 64-bit LSB shared object, x86-64,
version 1 (GNU/Linux), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=69389d485a9793dbe873f0ea2c93e02efaa9aa3d,
for GNU/Linux 3.2.0, stripped
找出正在使用的 glibc 版本
以下均显示版本:
ldd --version
ldd `which ls` | grep libc
但如果你真的希望它可执行:
sudo chmod 744 /lib/x86_64-linux-gnu/libc.so.6
它会显示:
GNU C Library (Ubuntu GLIBC 2.35-0ubuntu3.1) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 11.2.0.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.
我建议搜索错误报告或提交错误报告来找出这样做的原因(我还没有找到原因,但假设它不需要可执行,因此被认为是错误的,因为有比假设/lib/x86_64-linux-gnu/libc.so.6
存在更好的方法(比如ldd
独立于版本))。