I was trying to install rvm using \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles
. It worked fine until I got a configure error:
Error running './configure --prefix=/home/nishant/.rvm/rubies/ruby-2.0.0-p247 --disable-install-doc --enable-shared',
please read /home/nishant/.rvm/log/1379591052_ruby-2.0.0-p247/configure.log
There has been an error while running configure. Halting the installation.
Following are the contents of the mentioned log file:
[2013-09-19 17:15:58] ./configure
current path: /home/nishant/.rvm/src/ruby-2.0.0-p247
command(4): ./configure --prefix=/home/nishant/.rvm/rubies/ruby-2.0.0-p247 --disable-install-doc --enable-shared
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/nishant/.rvm/src/ruby-2.0.0-p247':
configure: error: C compiler cannot create executables
See `config.log' for more details
I then tried a "hello world" C program and got the following error on compilation:
nishant@nishant-Inspiron-1545:~$ gcc -g -o hello hello.c
/usr/local/bin/ld: this linker was not configured to use sysroots
collect2: error: ld returned 1 exit status
I'm not sure why this error is thrown. I couldn't find a satisfactory answer to this on the forum. Could someone please help.
Thanks
Best Answer
It looks like you have a non-standard version of the GNU linker
ld
in your/usr/local/bin
directory (possibly installed from source), and your PATH environment variable is set such that the system finds that version before the 'system' version (which should be at/usr/bin/ld
). If you want to build using the standard system versions of the build tools, you will need to adjust your PATH environment variable so that it searches/usr/bin
ahead of/usr/local/bin
If you want to permanently fix your PATH variable, you will need to find out where you set it originally - probably in your ~/.bashrc file, but other locations are possible. Alternatively, if you just need a temporary fix for this build, you could try
in the terminal before executing the
./configure
However there are sometimes good reasons why you (or your system admin) may want you to use versions of tools from
/usr/local
- if so, then you will need to find out why theld
there is apparently not compatible with the rest of the build chain and fix it - if this is a work or school system then contact your system administrator or IT department.