Saya mencoba menginstal rvm menggunakan \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles
. Ini berfungsi dengan baik sampai saya mendapat kesalahan konfigurasi:
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.
Berikut ini adalah isi dari file log yang disebutkan:
[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
Saya kemudian mencoba program C "hello world" dan mendapatkan kesalahan berikut pada kompilasi:
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
Saya tidak yakin mengapa kesalahan ini terjadi. Saya tidak dapat menemukan jawaban yang memuaskan untuk ini di forum. Bisakah seseorang tolong bantu. Terima kasih
Jawaban:
Sepertinya Anda memiliki versi non-standar dari GNU linker
ld
di/usr/local/bin
direktori Anda (mungkin diinstal dari sumber), dan variabel lingkungan PATH Anda diatur sedemikian rupa sehingga sistem menemukan versi itu sebelum versi 'sistem' (yang seharusnya berada di/usr/bin/ld
) . Jika Anda ingin membangun menggunakan versi sistem standar dari alat bantu bangunan , Anda perlu menyesuaikan variabel lingkungan PATH Anda agar mencari/usr/bin
sebelum/usr/local/bin
Jika Anda ingin memperbaiki variabel PATH Anda secara permanen, Anda harus mencari tahu di mana Anda mengaturnya semula - mungkin dalam file ~ / .bashrc Anda, tetapi lokasi lain dimungkinkan. Atau, jika Anda hanya perlu perbaikan sementara untuk bangunan ini, Anda bisa mencoba
di terminal sebelum menjalankan
./configure
Namun kadang-kadang ada alasan bagus mengapa Anda (atau admin sistem Anda) mungkin ingin Anda menggunakan versi alat
/usr/local
- jika demikian, maka Anda perlu mencari tahu mengapald
ada tampaknya tidak kompatibel dengan sisa rantai pembuatan dan perbaikan itu - jika ini adalah sistem kerja atau sekolah maka hubungi administrator sistem Anda atau departemen TI.sumber
/usr/local/bin
adalah depan/usr/bin
diPATH
untuk alasan yang baik: tidak ada gunanya memiliki program yang diinstal secara lokal jika versi dari distribusi diutamakan. Pekerjaan bagus menemukan masalah, tetapi resolusi yang disarankan bukan untuk mengubah PATH tetapi untuk menghapus atau memperbaiki yang rusak/usr/local/bin/ld
./usr/local
which ld
hanya mengembalikan/usr/bin/ld
....Bertentangan dengan alasan rumit yang diberikan di atas, dalam kasus saya, itu hanyalah kasus tidak
g++
menginstal. Anehnya, pesan kesalahan itu sama seperti yang dijelaskan oleh OP yaituOmong-omong, saya menyelesaikan ini dengan menginstal g ++:
sumber
Coba perbarui sistem, instal ulang paket yang menyediakan ld dan kompiler ( gcc ). Lari
prelink -au && depmod -a
. Kemudian reboot.Anda mungkin perlu menonaktifkan atau mengkonfigurasi ulang prelink di
/etc/systemctl
atau di mana pun distro Anda mengaturnya.sumber