Я работаю на рабочей станции 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
до и после исправления (во втором случае я бы получил ошибку).