Memperbarui ke gcc dan g ++ terbaru di Ubuntu 16.04

11

Saya baru-baru ini mencoba menurunkan versi ke gcc 4.7 karena kode cfd yang saya kerjakan tidak dapat dikompilasi dengan versi gcc terbaru. Tetapi setelah banyak kesalahan dan kode masih belum kompilasi saya menyerah dan ingin kembali ke kompiler gcc dan g ++ terbaru namun sepertinya saya mungkin telah mengacaukan sesuatu.

Ketika saya melakukannya:

sudo update-alternatives --remove-all gcc 
sudo update-alternatives --remove-all g++
sudo apt-get install gcc-6.2 g++-6.2

atau bahkan gcc-5.1 g ++ - 5.1 dalam hal ini, itu memberi saya kesalahan berikut

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package gcc-6.2
E: Couldn't find any package by glob 'gcc-6.2'
E: Couldn't find any package by regex 'gcc-6.2'
E: Unable to locate package g++-6.2
E: Couldn't find any package by glob 'g++-6.2'
E: Couldn't find any package by regex 'g++-6.2'

dan saya juga mencoba melakukan ini sebelumnya

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-6.2 g++-6.2

tapi sepertinya itu tidak berhasil. Akhirnya ketika saya baru saja melakukannya

sudo apt-get install gcc

ia mengatakan

Reading package lists... Done
Building dependency tree       
Reading state information... Done
gcc is already the newest version (4:5.3.1-1ubuntu1).

Saya tahu saya masih perlu menginstal dan mengkonfigurasi alternatif tetapi melakukan itu tidak berhasil sebagai berikut

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5.3 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5.3 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

Maaf ini berakhir cukup lama dan tolong beri tahu saya jika Anda memerlukan info lebih lanjut. Terima kasih!

EDIT: Saya benar-benar membuatnya bekerja dengan mengubah gcc-5.3 ke gcc-5 dalam kode di atas seperti yang tampaknya apa itu namanya di usr / bin. Saya akan menyimpannya untuk referensi di masa depan jika ada yang menghadapi masalah yang sama.

thephysicsguy
sumber
2
AFAIK gcc dan g ++ tidak menginstal sebagai update-alternatif secara default - sebaliknya, gccdan g++paket ketergantungan menginstal link langsung ke dependensi default, seperti /usr/bin/g++ -> g++-5. Sudahkah Anda mencoba menginstal ulang paket gccdan g++?
steeldriver
Salah satu cara menghindari jenis masalah ini adalah dengan membuat VM dan menginstal versi kompiler lama di sana.
NZD
Perbaikan terbaru ini dapat diperbaiki dalam instalasi daftar paket Reading ... Selesai Membangun pohon ketergantungan informasi status Membaca ... Selesai gcc sudah merupakan versi terbaru (4: 7.3.0-3ubuntu2.1). 0 ditingkatkan, 0 baru dipasang, 0 untuk dihapus dan 36 tidak ditingkatkan.
JOC KERS

Jawaban:

5

Jalankan perintah berikut secara berurutan. Saya mendapatkan kesalahan yang sama. Ini berhasil untuk saya.

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-snapshot
sudo apt-get install gcc-6 g++-6
Milind
sumber
9
Mengapa sudo apt-get updateharus dijalankan tiga kali, bukan hanya pertama kali? Secara khusus, mengapa setelah instalasi paket terakhir?
Eliah Kagan
Apa sebenarnya yang dilakukan gcc-snapshot? Bagaimana saya bisa menghapus versi gcc sebelumnya (4.8.4)?
abunickabhi
0

pembaruan apt-get harus dijalankan sehingga komputer Anda akan mengakses repositori yang baru saja ditambahkan, sehingga kontennya tersedia untuk Anda. Jika Anda tidak menjalankannya maka komputer Anda tidak menyadari bahwa ia memiliki info repositori yang tersedia

def
sumber