firstly, I google'd a lot but nothing I found related to my case, I have an ELF executable file I'm trying to run it in my Ubuntu WSL, I've changed the permissions (chmod +x file
), when I run it, this error shows up
首先,我在谷歌上搜索了很多,但没有找到与我的案例相关的任何东西,我有一个ELF可执行文件,我试图在我的Ubuntu WSL中运行它,我已经更改了权限(chmod+x文件),当我运行它时,显示以下错误
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by myFile)
and when I use ld command this shows up to me
当我使用id命令时,它就会出现在我面前
myFile(.eh_frame); no .eh_frame_hdr table will be created
and when I tried to upgrade GLIBC it says it's up-do-date
当我试图升级GLIBC时,它说它是最新的
Reading package lists... Done
Building dependency tree
Reading state information... Done
libc6 is already the newest version (2.31-0ubuntu9.7).
libc6 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 215 not upgraded.
and then I tried manually installing the deb file from https://packages.ubuntu.com/impish/amd64/libc6/download but this shows up to me :
然后,我尝试从https://packages.ubuntu.com/impish/amd64/libc6/download手动安装deb文件,但结果如下所示:
dpkg: regarding libc6_2.34-0ubuntu3.2_amd64.deb containing libc6:amd64:
libc6:amd64 breaks fakeroot (<< 1.25.3-1.1ubuntu2~)
fakeroot (version 1.24-1) is present and installed.
dpkg: error processing archive libc6_2.34-0ubuntu3.2_amd64.deb (--install):
installing libc6:amd64 would break fakeroot, and
deconfiguration is not permitted (--auto-deconfigure might help)
Errors were encountered while processing:
libc6_2.34-0ubuntu3.2_amd64.deb
更多回答
GLIBC (libc6) is your OS (together with the kernel) and cannot be changed. ....... Suggest: Install Ubuntu 22.04 : Has libc6_2.35
.... (Which includes objects from previous versions : GLIBC_2.34
etc.)
GLIBC(Libc6)是您的操作系统(连同内核),不能更改。.建议:安装Ubuntu 22.04:Has libc6_2.35...(包括来自以前版本的对象:GLIBC_2.34等。)
优秀答案推荐
DISCLAIMER: I am not a linux professional, just found a way for my own problem with glibc not found error msg:
免责声明:我不是Linux专业人士,只是找到了一种方法来解决我自己的glibc Not Found错误消息:
maybe you cannot use the binary since it was compiled with gcc-11 and your gcc version of your linux distribution and version only is gcc-9 and therefore only provides glibc_2.31 (I guess).
you can try to compile the program yourself from source. I had to do this with the new stockfish version 15, which also uses updated glibc_2.32/2.33/2.34 and my linux-mint does not provide that.
But compiling from source worked like a charm. Maybe this is an option for you.
也许您不能使用这个二进制文件,因为它是用GCC-11编译的,而您的GCC版本的Linux发行版和版本只有GCC-9,因此只提供glibc_2.31(我猜)。您可以尝试从源代码自己编译该程序。我不得不使用新的股票鱼版本15来做这件事,它也使用了更新的glibc_2.32/2.33/2.34,而我的linux-mint没有提供这一功能。但从源码编译就像是一种魔咒。也许这是你的一个选择。
I've got this error with buildroot-2022.11 when executing make
.
我在执行make时遇到了buildroot-2022.11错误。
Ubuntu 20.04 - added this repo as described in the link
Ubuntu 20.04-按照链接中的说明添加了此repo
sudo apt update
sudo apt install libc6
It automatically installed 2.35 for me.
它自动为我安装了2.35。
I have some similar situation,
我也有类似的情况,
I copyed my executed file from a centos VM1 to another centos VM2,then I got the same question,I just copy the source code to VM2,and recompile it,then the question is solved.
我将我的执行文件从Centos VM1复制到另一个Centos VM2,然后我得到了同样的问题,我只需将源代码复制到VM2,并重新编译它,然后问题就解决了。
I got a makefile and a shell script to compile it,so the compilation process is simple,update glibc may cause other problem and is more complicated,and i am a caiji,hope to help u
我得到了一个Makefile和一个外壳脚本来编译它,所以编译过程很简单,更新glibc可能会引起其他问题而更复杂,而且我是一个蔡司,希望能对大家有所帮助
In my case, replace FROM go:1.21
with FROM go:1.21.0-bullseye
(docker) or try tinkering there.
在我的情况下,将从Go:1.21替换为Ffrom Go:1.21.0-牛眼(码头)或尝试在那里进行修补。
I had the same problem, it was an issue about the overwrite of the Environment Variable LD_LIBRARY_PATH. Try to check this solution
我也遇到了同样的问题,这是关于环境变量LD_LIBRARY_PATH的覆盖问题。尝试检查此解决方案
更多回答
I needed this to install ghdl 3.0.0 on ubuntu 20.04 it seemed to do the trick.
我需要这个来在ubuntu 20.04上安装ghdl 3.0.0,它似乎起到了作用。
我是一名优秀的程序员,十分优秀!