Здравствуйте. Пару недель назад у меня возникла потребность установить gcc 4.6.2 для сборки qt-приложений. Сходу найти howto по этой процедуре мне не удалось. PPA с новым gcc тоже установил что-то не то или не так. Я подумал, что лучше уж я тогда разберусь и поставлю из исходников.
Процесс получился чуть более сложным, чем стандартный ./configure-make-sudo checkinstall, поэтому я решил оформить его в howto.
Если на взгляд сообщества оно действительно полезно, то его можно добавить в сборник help-ов. Заранее прошу прощения, если создал тему не в том разделе.
Вероятно также, что в howto стоит что-то изменить, я что-то делаю не так -- поэтому буду рад критике, статью исправлю.
Скачиваем последнюю версию gcc (на момент написания how-to: 4.6.2):
*
http://gcc.gnu.org/mirrors.html * выбираем зеркало
* идем в releases/gcc-4.6.2
Я скачиваю gcc (89 Мбайт) и gcc-g++ (9 Мбайт), tar.gz архивы
Теперь у меня в домашней папке лежат: gcc-4.6.2.tar.gz и gcc-g++-4.6.2.tar.gz
Про домашнюю папку -- важно: весь дальнейший процесс исходит из того, что вся работа производится в домашней папке.
Перед установкой надо убедиться, что стоят build-essential и checkinstall:
sudo apt-get install build-essential checkinstall
Распаковываю:
cd
tar -xvf gcc-4.6.2.tar.gz; tar -xvf gcc-4.6.2.tar.gz; tar -xvf gcc-g++-4.6.2.tar.gz
Скачиваю и распаковываю последние версии gmp, mpfr и mpc:
cd
wget http://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gmp/gmp-5.0.2.tar.gz;
wget http://mpfr.loria.fr/mpfr-current/mpfr-3.1.0.tar.gz;
wget http://www.multiprecision.org/mpc/download/mpc-0.8.2.tar.gz
tar -xvf gmp-5.0.2.tar.gz
tar -xvf mpfr-3.1.0.tar.gz
tar -xvf mpc-0.8.2.tar.gz
mv gmp-5.0.2 gcc-4.6.2/gmp
mv mpc-0.8.2 gcc-4.6.2/mpc
mv mpfr-3.1.0 gcc-4.6.2/mpfr
! Важно: в процессе компиляции gcc папка с ним выросла в размере чуть ли не до 4 Гбайт. Удостоверьтесь в наличии свободного места на рабочем разделе
Дальше необходимо поставить gmp. Мне для этого потребовалось поставить еще и m4
cd
sudo apt-get install m4
tar -xvf gmp-5.0.2.tar.gz
cd gmp-5.0.2/
./configure --prefix=/usr
sudo checkinstall
Дальше необходимо сделать какую-то магию =)
У меня получилось, что надо сконфигурировать и попробовать поставить скачанный mpfr. При этом поставить его не получится, потому что будет какой-то конфликт с установленным на предыдущем шаге gmp. Но от чего-то в gmp, в свою очередь, зависит сборка mpfr. При этом нас устроит то, что mpfr соберется, но не поставится: gcc скомилируется нормально.
cd
tar -xvf mpfr-3.1.0.tar.gz
cd mpfr-3.1.0
./configure --prefix=/usr
sudo checkinstall
Дальше, собственно, запускаем компиляцию. Процесс это долгий, может занять пару часов
cd
cd gcc-4.6.2
./configure
make
sudo checkinstall
С checkinstall-ом надо везде соглашаться, кроме одного пункта: он выдает меню, где третьем пунктом идет установка версии пакета. Там по умолчанию стоит 4.6.2.
Так вот, чтобы менеджер пакетов не ругался на чужеродный элемент, надо изменить её на
4:4.6.2.
Можно проверить, что все поставилось нормально:
gcc -v
g++ -v
Версия должна быть 4.6.2
Единственное, что теперь еще надо сделать -- поправить ссылку cc на gcc:
cd /etc/alternatives/
sudo rm cc; sudo ln -s /usr/local/bin/gcc cc
Проверяем:
cc
Вывод должен быть таким же, как у gcc.