載入共享庫時出錯;文件太短

載入共享庫時出錯;文件太短

我正在 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修補之前和之後列印(在第二種情況下我會收到錯誤)。

相關內容