Fehler beim Laden gemeinsam genutzter Bibliotheken; Datei zu kurz

Fehler beim Laden gemeinsam genutzter Bibliotheken; Datei zu kurz

Ich arbeite an einer CentOS 7-Workstation. Ich hatte Rstudio installiert und es hat bis vor kurzem gut funktioniert. Aber jetzt, wenn ich versuche, es zu starten, http://localhost:8787/erhalte ich eine Fehlermeldung, die besagt:Unable to connect to service

Ich habe im Terminal überprüft, ob R ordnungsgemäß funktioniert, und habe folgenden Fehler erhalten.

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

Wenn ich versuche, R mit dem folgenden Befehl erneut zu installieren, sudo yum install R -yerhalte ich die folgende Antwort

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

Was muss ich tun?

Antwort1

Sie haben eine beschädigte .so.

Im Allgemeinen geben Sie den folgenden Befehl ein, um das Paket zu finden, zu dem es gehört:

yum provides \*/<so_file>

In Ihrem Fall:

$ 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
[...]

In diesem Fall möchten wir libgcc-4.4.6-4.el6.i686, dass Sie eine andere Version erhalten.

Sie müssen dieses Paket neu installieren.

yum reinstall libgcc-<version>.i686

Antwort2

In meinem Fall bekam ich ld : error : myfile: file too shortoder manchmal:

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

weil ich für Nix einen Ordner patchte, der sowohl Quellcode als auch einen Binärblob enthielt … und da die Anzahl der zu patchenden Dateien hoch war, habe ich ein Skript verwendet, um sie alle gleichzeitig zu patchen (mit findund sed -i). Leider sedwurde auch auf Binärdateien angewendet, was diese vollständig beschädigt hat.

Das ist mir beim Drucken objdump -a myfilevor und nach dem Patchen aufgefallen (im zweiten Fall würde ich eine Fehlermeldung erhalten).

verwandte Informationen