简体   繁体   中英

R wrong ELF class errors while install.packages is compiling

I'm running Ubuntu Budgie 64 bit:

lsb_release -a :

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

lscpu :

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               76
Model name:          Intel(R) Celeron(R) CPU  N3050  @ 1.60GHz
Stepping:            3
CPU MHz:             2160.000
CPU max MHz:         2160.0000
CPU min MHz:         480.0000
BogoMIPS:            3200.00
Virtualization:      VT-x
L1d cache:           24K
L1i cache:           32K
L2 cache:            1024K
NUMA node0 CPU(s):   0,1
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat

I did a fresh install of R 3.5 (r-base & r-base-dev) by following the directions here: https://cran.cnr.berkeley.edu

Everything seems to be working,

R

R version 3.5.1 (2018-07-02) -- "Feather Spray"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

However, when I go to install new packages (eg install.packages("ggplot2") ) the compilation fails with the following error:

/usr/bin/x86_64-linux-gnu-ld: /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so:
error loading plugin: /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so:
wrong ELF class: ELFCLASS64
collect2: error: ld returned 1 exit status

It has failed with this error for the other packages I have tried installing (dplyr, Rcpp) also.

So far, I have tried playing around with the gcc/g++ compilation flags in /usr/lib/R/etc/Makeconf by adding a -m64 flag. But I'm still getting the same problem.

UPDATE :

file -L /usr/bin/x86_64-linux-gnu-ld gives:

x86_64-linux-gnu-ld: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.0,
BuildID[sha1]=8263ec62232df7411c36026e7e3e02afbfeb8b4f, stripped

UPDATE 2 :

I figured out that I can just go through the synaptic package manager and download packages via r-cran . For example, instead of running install.packages("ggplot2") in R, I simply run sudo apt-get install r-cran-ggplot2

Your GCC installation is screwed up.

In particular, you have 32-bit linker ( x86_64-linux-gnu-ld ), but a 64-bit LTO plugin liblto_plugin.so .

These are supposed to match. You should figure out which package(s) provide above two files, and install a 32-bit or a 64-bit version of each.

I recently encountered almost the same problem, except with an armhf liblto_plugin.so on an aarch64 linker. I got into this situation after I had (intentionally) installed gcc:armhf and binutils:armhf on an aarch64 host. The solution was to install the not-so-obvious package named binutils-arm-linux-gnueabihf:armhf .

Along the lines of what @Employed Russian said, you need to get the proper binutils installed. Try:

sudo apt install --reinstall binutils:amd64 binutils-x86_64-linux-gnu:amd64

If those packages aren't found or don't work, next try searching for the proper package name via apt-file just as I had to.

sudo apt install -y apt-file
sudo apt-file update
apt-file search x86_64-linux-gnu-ld
apt-file search x86_64-linux-gnu-ld.bfd

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM