Установка более старой версии gcc (3.4.3) в Ubuntu 14.04 (в настоящее время установлено 4.8)
У меня установлен gcc 4.8, но мне также нужно установить gcc 3.4.3. Я следовал за этими шагами:
- Скачал gcc 3.4.3 с gcc.parentingamerica.com/releases.
- Извлекали смолу.
- ./configure
- делать
Затем выдает эту ошибку: http://paste.ubuntu.com/24807240/
Кто-нибудь может подсказать, что не так и как попросить gcc использовать старую версию после установки?
ОС: Ubuntu 14.04 LTS, 64-битная
2 ответа
Проверьте текущую версию, запустив gcc -v
,
Далее вы хотите установить предыдущую версию.
- За
gcc-3.4
Поскольку эта версия доступна в более старых выпусках Ubuntu, нам необходимо иметь соответствующие репозитории для этой версии. Из некоторых поисков я обнаружил, что они следующие, которые должны быть добавлены к /etc/apt/sources.list
deb http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
Потом после выполнения sudo apt-get update
новые репозитории будут доступны.
Далее установите необходимый компилятор. Я обычно устанавливаю gcc
а также g++
той же версии для взаимодействия. Для общего назначения рекомендуется.
Следовательно,
sudo apt-get install gcc-3.4 g++-3.4
2. Проверка доступных компиляторов
На этом этапе у каждого будет два набора компиляторов (по одному для каждого g++
а также gcc
). Они могут быть проверены dpkg --list | grep compiler
,
dpkg --list | grep compiler
dpkg --list | grep compile
ii g++ 4:4.8.2-1ubuntu6 amd64 GNU C++ compiler
ii g++-3.4 3.4.6-5 amd64 The GNU C++ compiler
ii g++-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C++ compiler
ii gcc 4:4.8.2-1ubuntu6 amd64 GNU C compiler
ii gcc-3.4 3.4.6-5 amd64 The GNU C compiler
ii gcc-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C compiler
ii hardening-includes 2.5ubuntu2.1 all Makefile for enabling compiler flags for security hardening
ii libllvm3.6:amd64 1:3.6-2ubuntu1~trusty1 amd64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:amd64 0.4.1-0ubuntu1 amd64 library interface to the XKB compiler - shared library
ii pkg-config 0.26-1ubuntu4 amd64 manage compile and link flags for libraries
Вы можете проверить место установки, если вам это нужно.
Важным является расположение двух наборов компиляторов, которые могут быть перечислены
ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 5月 13 2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root 91K 1月 4 2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/gcc-4.8
а также
ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root 7 4月 8 2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root 93K 1月 4 2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/g++-4.8
- Выбор компилятора для текущей цели (сборка приложения)
После установки необходимых компиляторов можно просто переключаться между компиляторами. Это делается путем обновления списка альтернативных версий приложения. Для этого update-alternative
Команда должна быть запущена с определенными параметрами.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
sudo update-alternatives --config gcc
Это будет ссылка g++
в gcc
и при изменении только gcc
g++
изменится автоматически.
Затем всякий раз, когда вы хотите изменить компилятор, введите это:
sudo update-alternatives --config gcc
Затем пользователя спрашивают, какой компилятор выбрать.
sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 60 auto mode
1 /usr/bin/gcc-3.4 40 manual mode
2 /usr/bin/gcc-4.8 60 manual mode
Press enter to keep the current choice[*], or type selection number:
Здесь вы можете выбрать, нажав клавишу (0,1) и затем нажав Enter. Изменения в текущей выбранной версии могут быть проверены gcc -v
Удалениеupdate-alternative
- Если вы хотите сохранить альтернативный компилятор установленным. Затем просто перейдите в автоматический режим в
update-alternative
это вариант 0. - Если вы хотите удалить альтернативный компилятор, то удалите компилятор как
sudo apt-get remove gcc-3.4 g++-3.4
тогда беги
sudo update-alternatives --config gcc
Программа update-alternatives
будет искать ссылки и обнаруживать, что они отсутствуют, и автоматически удаляет альтернативу, возвращаясь к другой доступной опции.
sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.
Невозможно иметь версии одного и того же пакета, так как они могут быть конфликтующими файлами, например: у вас возникнут проблемы при попытке обновить один из пакетов, так как они будут размещены в одном месте.
Сказав, что у вас есть возможность понизить версию программы до более старой, вот как это сделать:
- откройте эмулятор терминала и введите
apt-cache showpkg <package-name>
список доступных версий будет напечатан - Затем введите
sudo apt-get install <package-name>=<package-version-number>
установить версию, которую вы предпочитаете - тип
apt-mark hold <package-name>
это предотвратит обновление пакета - если у вас есть тип проблемы
man apt
открыть руководство по команде