ошибка при загрузке общих библиотек; файл слишком короткий

ошибка при загрузке общих библиотек; файл слишком короткий

Я работаю на рабочей станции 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… и поскольку количество файлов для патча было большим, я использовал скрипт, чтобы патчить их все одновременно (используя findи sed -i). К сожалению, sedтакже был применен к двоичным файлам, что полностью повредило их.

Я понял это, распечатав данные objdump -a myfileдо и после исправления (во втором случае я бы получил ошибку).

Связанный контент