Установка более старой версии 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 make [! ​​d1]

Затем он выдает эту ошибку: http://paste.ubuntu.com/24807240/

Пожалуйста, кто-нибудь может предложить, что не так, а также как попросить gcc использовать старая версия после установки?

ОС: Ubuntu 14.04 LTS, 64-бит

4
задан 8 June 2017 в 14:24

6 ответов

Проверьте текущую версию, запустив 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

2. Проверка доступных компиляторов

Важным является расположение двух наборов компиляторов, которые могут быть перечислены в

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
Для gcc-3.4

После установки необходимых компиляторов можно просто переключиться между компиляторами. Это делается путем обновления списка альтернативных версий приложения. Для этого команда 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.
3
ответ дан 22 May 2018 в 21:45
  • 1
    * sudo update-alternatives код обновляется в сообщении. – ankit7540 8 June 2017 в 14:01
  • 2
    Привет @ ankit7540, спасибо за ваш подробный ответ. Но что вы думаете о комментарии Ориола? Я просто хочу убедиться, прежде чем все перепутатся. – user7706975 8 June 2017 в 14:02
  • 3
    * Над решением проверено 14.04. Похоже на работу. – ankit7540 8 June 2017 в 14:02
  • 4
    Я использую этот метод для компиляции нескольких приложений, которые имеют разные требования. О комментарии Ориола, он ориентирован на понижение пакета до более старой версии и сохранение его целостности, то есть не обновляет его в будущем. – ankit7540 8 June 2017 в 14:05
  • 5
    Если вы хотите временно использовать компилятор C / C ++ для одной сборки, альтернативой является использование переменных среды. CC=/path/to/other/gcc-1.2 или CXX=/path/to/other/g++-1.2, либо установить более постоянно (export), либо для определенного вызова: CC=/path/to/other/gcc-1.2 ./configure --with-everything && make. Вы также можете использовать checkinstall или pogo вместо make install, чтобы упростить удаление. – Oleg Lobachev 10 October 2017 в 21:17

Проверьте текущую версию, запустив 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

2. Проверка доступных компиляторов

Важным является расположение двух наборов компиляторов, которые могут быть перечислены в

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 Для gcc-3.4

После установки необходимых компиляторов можно просто переключиться между компиляторами. Это делается путем обновления списка альтернативных версий приложения. Для этого команда 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.
4
ответ дан 18 July 2018 в 11:58

Проверьте текущую версию, запустив 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

2. Проверка доступных компиляторов

Важным является расположение двух наборов компиляторов, которые могут быть перечислены в

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 Для gcc-3.4

После установки необходимых компиляторов можно просто переключиться между компиляторами. Это делается путем обновления списка альтернативных версий приложения. Для этого команда 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.
4
ответ дан 24 July 2018 в 19:53

Невозможно иметь версии одного и того же пакета, так как они будут конфликтующими файлами, например: у вас возникнут проблемы при попытке обновить один из пакетов, поскольку они будут размещены в одном месте.

Сказав, что у вас есть возможность понизить версию программы до более старой версии, вот как это сделать:

открыть эмулятор терминала и ввести apt-cache showpkg <package-name> список будут напечатаны доступные версии. Затем введите sudo apt-get install <package-name>=<package-version-number>, чтобы установить версию, предпочитаемую типом apt-mark hold <package-name>, это предотвратит обновление пакета, если у вас есть какой-либо тип проблемы man apt, чтобы открыть руководство по команде
0
ответ дан 22 May 2018 в 21:45

Невозможно иметь версии одного и того же пакета, так как они будут конфликтующими файлами, например: у вас возникнут проблемы при попытке обновить один из пакетов, поскольку они будут размещены в одном месте.

Сказав, что у вас есть возможность понизить версию программы до более старой версии, вот как это сделать:

открыть эмулятор терминала и ввести apt-cache showpkg <package-name> список будут напечатаны доступные версии. Затем введите sudo apt-get install <package-name>=<package-version-number>, чтобы установить версию, предпочитаемую типом apt-mark hold <package-name>, это предотвратит обновление пакета, если у вас есть какой-либо тип проблемы man apt, чтобы открыть руководство по команде
0
ответ дан 18 July 2018 в 11:58

Невозможно иметь версии одного и того же пакета, так как они будут конфликтующими файлами, например: у вас возникнут проблемы при попытке обновить один из пакетов, поскольку они будут размещены в одном месте.

Сказав, что у вас есть возможность понизить версию программы до более старой версии, вот как это сделать:

открыть эмулятор терминала и ввести apt-cache showpkg <package-name> список будут напечатаны доступные версии. Затем введите sudo apt-get install <package-name>=<package-version-number>, чтобы установить версию, предпочитаемую типом apt-mark hold <package-name>, это предотвратит обновление пакета, если у вас есть какой-либо тип проблемы man apt, чтобы открыть руководство по команде
0
ответ дан 24 July 2018 в 19:53

Другие вопросы по тегам:

Похожие вопросы: