![GLIBC_PRIVATE 未在文件 libc.so.6 中定义](https://linux22.com/image/1140953/GLIBC_PRIVATE%20%E6%9C%AA%E5%9C%A8%E6%96%87%E4%BB%B6%20libc.so.6%20%E4%B8%AD%E5%AE%9A%E4%B9%89%20.png)
我正在尝试运行 Rstudio。但它就是不工作。上周我第一次安装它时它还能用,但现在我需要使用它时它却不行了。我已经尝试了 5 个小时,所以这是我最后的办法。
- 系统:Kubuntu 16.04 x64
- R 版本:3.2.3 x64
- Rstudio:RStudio 桌面版 0.99.903 x64
- GLIBC:2.23
运行时原始错误rstudio --run-diagnostics
Using R script: /usr/bin/R
Attempting to launch R session...
R session launched, attempting to connect on port 19650...
/usr/lib/rstudio/bin/rsession: libc.so.6: version `GLIBC_2.16' not found (required by /usr/lib/R/lib/libR.so)
/usr/lib/rstudio/bin/rsession: libc.so.6: version `GLIBC_2.18' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
/usr/lib/rstudio/bin/rsession: libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib/x86_64-linux-gnu/libstdc++.so.6)
/usr/lib/rstudio/bin/rsession: libc.so.6: version `GLIBC_2.17' not found (required by /usr/lib/x86_64-linux-gnu/libgomp.so.1)
/usr/lib/rstudio/bin/rsession: libc.so.6: version `GLIBC_2.16' not found (required by /lib/x86_64-linux-gnu/libtinfo.so.5)
结果是通常的空白屏幕。我卸载并重新安装了 R,重新安装了 Rstudio,并尝试了列出的每个旧 Rstudio 版本这里,即使是 x32 版本,由于 32-64 不匹配,也无法工作。所有 x64 版本都会导致上述错误。我的 R 安装在 /usr/lib/R 中。我还运行了更新命令来更新 libc,它已经是最新版本了。
/lib/ 中的 libc.so.6 指向同一文件夹中的 libc-2.15.so。我认为这就是 Rstudio 找不到更高版本的原因。我的 libc-2.23.so 位于 /lib32/。所以我想我在 /lib/ 中创建一个指向 2.23 版本的新 libc.so.6 文件。这修复了未找到 GLIBC 的问题,但运行 rstudio --run-diagnostics 现在显示:
R session launched, attempting to connect on port 13345...
/usr/lib/rstudio/bin/rsession: relocation error: /lib/libpthread.so.0: symbol h_errno, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
这是我找不到有用的谷歌搜索结果的地方。我已应用了缺少 /lib/libc.so.6,结果相同(重定位错误)。
我最后的绝望之举是sudo apt-get install libc6*
,sudo apt-get install '^libc6.*'
它似乎至少在我的 lib64 文件夹中安装了 2.23.so。我使用创建了符号链接sudo ln -s /lib64/libc.so.6 /lib/libc.so.6
,同样的“位置不匹配错误”。我还尝试删除 x32 版本的 libc,但它似乎没有安装。
除此之外,我的系统一切正常。我没有遇到任何 apt-get 问题,也没有遇到其他 libc6 线程似乎存在的任何问题。
帮助?
答案1
对于带有 /lib32 目录的 64 位 Debian 系统 (Kubuntu) 来说,这非常可疑。在 /lib 中安装了大量过时的 DSO 这一事实也表明您的系统受到了极端恶意的攻击。我怀疑您从任意不受信任的第三方来源安装了某些东西,并且它以不幸的方式破坏了您的系统。
也就是说,如果您要开始手动处理关键系统库,那么您就必须确保操作正确,否则您唯一的选择就是从头开始删除并重新安装整个系统。
从您的描述来看,您在 /lib 中安装了大量不正确的库,这些库正在破坏您的系统。请尝试运行ldd /usr/lib/rstudio/bin/rsession
并逐个检查结果列表,然后将这些文件链接到正确的文件。