共有ライブラリの読み込み中にエラーが発生しました。ファイルが短すぎます

共有ライブラリの読み込み中にエラーが発生しました。ファイルが短すぎます

私は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

ソース コードとバイナリ BLOB の両方を含むフォルダーを Nix にパッチ適用していたため、パッチを適用するファイルの数が多かったため、スクリプトを使用してすべてに同時にパッチを適用しました (およびを使用find) sed -i。残念ながら、sedバイナリ ファイルにも が適用され、ファイルが完全に破損しました。

パッチ適用の前後を印刷するとobjdump -a myfile、2 番目のケースではエラーが発生することに気付きました。

関連情報