Como não tenho privilégios para usar a ferramenta de gerenciamento de pacotes em nosso cluster, estou tentando construir localmente o R-3.5.0 no CentOS 6.5 a partir do código-fonte. Temos uma versão antiga do R instalada para todos os usuários, mas o software que eu uso requer uma versão mais recente. Além disso, o compilador gcc instalado globalmente é muito antigo para configurar o R-3.5.0, então eu instalei uma nova versão.
Informações do SO:
$lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
informações do gcc:
$gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/me/GCC-8.2.0/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /dir/path/me/software/objdir/../gcc-8.2.0/configure --prefix=/home/me/GCC-8.2.0 --enable-languages=c,c++,fortran,go --disable-multilib
Thread model: posix
gcc version 8.2.0 (GCC)
Comando para configurar o R:
./configure --prefix=$HOME/local --with-cairo --with-blas --with-lapack --enable-R-shlib --with-x=no LDFLAGS="-lcurl -L/$HOME/local/zlib-1.2.11/lib -L/$HOME/local/bzip2-1.0.6/lib -L/$HOME/local/xz-5.2.3/lib -L/$HOME/local/pcre-8.41/lib -L/$HOME/local/curl-7.61.0/lib -L/$HOME/local/ssl/lib -L/$HOME/local/texinfo-6.5/lib -L/$HOME/local/texi2html-5.0/lib -L/$HOME/GCC-8.2.0/lib" CPPFLAGS="-I/$HOME/local/zlib-1.2.11/include -I/$HOME/local/bzip2-1.0.6/lib -I/$HOME/local/xz-5.2.3/lib -I/$HOME/local/pcre-8.41/include -I/$HOME/local/curl-7.61.0/include -I/$HOME/local/ssl/include -I/$HOME/local/texinfo-6.5/include -I/$HOME/local/texi2html-5.0/lib/include -I/$HOME/GCC-8.2.0/lib/include"
Erro resultante:
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in '/dir/path/me/software/R-3.5.0':
configure: error: C compiler cannot create executables
See 'config.log' for more details
config.log:
configure:6158: gcc --version >&5
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:6169: $? = 0
configure:6158: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/me/GCC-8.2.0/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /helga/cluster/me/software/objdir/../gcc-8.2.0/configure --prefix=/home/me/GCC-8.2.0 --enable-languages=c,c++,fortran,go --disable-multilib
Thread model: posix
gcc version 8.2.0 (GCC)
configure:6169: $? = 0
configure:6189: checking whether the C compiler works
configure:6211: gcc -I//home/me/local/zlib-1.2.11/include -I//home/me/local/bzip2-1.0.6/lib -I//home/me/local/xz-5.2.3/lib -I//home/me/local/pcre-8.41/include -I//home/me/local/curl-7.6$
/usr/bin/ld: crtbegin.o: No such file: No such file or directory
collect2: error: ld returned 1 exit status
configure:6215: $? = 1
configure:6253: result: no
Entendo que o problema é que crtbegin.o
não está sendo encontrado em /usr/bin/ld
, mas achei que ld
estava associado a gcc
. Preciso instalar ld
separate de gcc
ou não configurei gcc
corretamente? Suponho que estou confuso sobre a relação entre os dois e como melhor resolver o erro.