Перш за все, ви повинні дізнатися, де знаходяться ваші 4,8 двійкових файлів усіх інструментів:
$ which gcc-4.8
/usr/bin/gcc-4.8
$ which g++-4.8
/usr/bin/g++-4.8
$ ls /usr/bin/*-4.8
/usr/bin/cpp-4.8 /usr/bin/x86_64-linux-gnu-cpp-4.8
/usr/bin/g++-4.8 /usr/bin/x86_64-linux-gnu-g++-4.8
/usr/bin/gcc-4.8 /usr/bin/x86_64-linux-gnu-gcc-4.8
/usr/bin/gcc-ar-4.8 /usr/bin/x86_64-linux-gnu-gcc-ar-4.8
/usr/bin/gcc-nm-4.8 /usr/bin/x86_64-linux-gnu-gcc-nm-4.8
/usr/bin/gcc-ranlib-4.8 /usr/bin/x86_64-linux-gnu-gcc-ranlib-4.8
/usr/bin/gcov-4.8
Отже, у нас є всі наші двійкові файли, тепер давайте перевіримо, чи є такі символьні посилання для таких бінарних файлів:
$ cd /usr/bin
$ ls -l gcc* cpp g++
lrwxrwxrwx 1 root root 7 sep 18 14:02 cpp -> cpp-4.7
lrwxrwxrwx 1 root root 7 abr 22 2013 g++ -> g++-4.7
lrwxrwxrwx 1 root root 7 sep 18 14:02 gcc -> gcc-4.7
Як ми можемо бачити, тільки cpp
, g++
і gcc
має символічні посилання. У нас є два варіанти.
Мислення
Ми замінюємо символьні посилання на наші, видаляючи спочатку фактичні:
sudo rm /usr/bin/cpp /usr/bin/gcc /usr/bin/g++
Тоді створюємо своє
sudo ln -s /usr/bin/cpp-4.8 /usr/bin/cpp
sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
Щоб повернути його назад, використовуйте ті самі команди, але замість них 4.7 або 4.6
sudo rm /usr/bin/cpp /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/cpp-4.7 /usr/bin/cpp
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++