r - R 错误的 ELF 类错误,而 install.packages 正在编译
问题描述
我正在运行 Ubuntu Budgie 64 位:
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
我按照此处的说明重新安装了 R 3.5(r-base 和 r-base-dev):https ://cran.cnr.berkeley.edu
一切似乎都在工作,
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)
但是,当我去安装新包(例如install.packages("ggplot2")
)时,编译失败并出现以下错误:
/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
对于我尝试安装的其他软件包(dplyr,Rcpp),它也因此错误而失败。
到目前为止,我已经尝试/usr/lib/R/etc/Makeconf
通过添加一个标志来玩弄 gcc/g++ 编译-m64
标志。但我仍然遇到同样的问题。
更新 :
file -L /usr/bin/x86_64-linux-gnu-ld
给出:
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
更新 2:
我发现我可以通过突触包管理器并通过r-cran
. 例如,我没有install.packages("ggplot2")
在 R 中运行,而是简单地运行sudo apt-get install r-cran-ggplot2
解决方案
你的 GCC 安装搞砸了。
特别是,您有 32 位链接器 ( x86_64-linux-gnu-ld
),但有 64 位 LTO 插件liblto_plugin.so
。
这些应该是匹配的。您应该弄清楚哪些软件包提供了上述两个文件,并分别安装 32 位或 64 位版本。
推荐阅读
- javascript - Alexa:此时我们无法链接 * - Node、OAuth2 和 MongoDB
- sass - 如何配置 gulp-sass 编译器以在 gulpfile.babel.js 中使用 dart-sass?
- python - 如何从python中的集合列表中过滤重复项?
- java - 无法在 google reCAPTCHA 中将其转换为 Executor
- qt - 通过 qt 在 gnuplot 中保存 pdf 输出
- javascript - jQuery中=登录后如何获取url的值
- sql - 如何正确连接sql表以避免数据重复?
- node.js - 使用 ng build --prod 没有创建 dist 文件夹
- html - 网格布局,一行包含 3 个项目,每个项目的宽度都是自动的
- java - Unexpected response code 303 Volley error