加载共享库时出错;文件太短

加载共享库时出错;文件太短

我在 CentOS 7 工作站上工作。我安装了 Rstudio,直到最近它都运行良好。但现在,如果我尝试启动它,http://localhost:8787/我会收到一条错误消息,提示Unable to connect to service

我检查了 R 在终端中是否正常工作,并收到以下错误。

/usr/lib64/R/bin/exec/R: error while loading shared libraries: /lib/libgcc_s.so.1: file too short

如果我尝试使用以下命令再次安装 R,sudo yum install R -y我会收到以下回复

Package R-3.5.2-2.el7.x86_64 already installed and latest version
Nothing to do

我需要做什么?

答案1

你有一个损坏的.so

一般来说,您可以发出以下命令来查找它所属的包:

yum provides \*/<so_file>

在你的情况下:

$ yum provides \*/libgcc_s.so.1
[...]
libgcc-4.4.6-4.el6.i686 : GCC version 4.4 shared support library
Repo : base
Matched from:
Filename : /lib/libgcc_s.so.1
[...]

在这种情况下,我们希望libgcc-4.4.6-4.el6.i686您将获得另一个版本。

您需要重新安装该软件包。

yum reinstall libgcc-<version>.i686

答案2

就我而言,我得到ld : error : myfile: file too short,或者有时:

ld: warning: myfile has a section extending past end of file
ld : error : myfile: ELF section name out of range

因为我正在为 Nix 修补一个包含源代码和二进制 blob 的文件夹……而且由于要修补的文件数量很多,我使用了一个脚本来同时修补它们(使用findsed -i)。不幸的是,sed它也应用于二进制文件,这完全损坏了它们。

我意识到通过在objdump -a myfile修补之前和之后打印(在第二种情况下我会收到错误)。

相关内容