Получение + установка gcc / g ++ 4.9 на Ubuntu? [дубликат]

Как установить последнюю версию gcc и g ++?

Я использую различные функции C ++ 11 и C ++ 1y; вот почему мне это нужно.

80
задан 6 May 2015 в 13:30

7 ответов

Вы можете установить близкую к исходной версии GCC из Ubuntu Toolchain PPA: https://wiki.ubuntu.com/ToolChain#PPA_packages

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

Протестировано на Ubuntu 14.04.

110
ответ дан 6 May 2015 в 13:30

Intro

научите человека ловить рыбу и т.д. и т.п.

Как собрать исходный код и использовать его из локального репозитория в удобный способ. Это будет работать в любом дистрибутиве при условии, что зависимости могут быть удовлетворены / Этот метод не требует, чтобы вы устанавливали build-deps для каждого пакета и загрязняли вашу машину посторонними пакетами, это позволит вам не отставать от пакетов, поскольку они обновляются в экспериментальном debian . Чтобы сделать это один раз, потребуется всего несколько минут, а затем его можно будет повторно использовать для пересборки любого необходимого пакета, не полагаясь на то, что другие люди упакуют для вас ppa или загрузят кучу разных .debs

Преимущество сборки по сравнению с извлечением raw .debs от debian заключается в том, что он будет собирать пакеты для пакетов в вашем дистрибутиве, которые могут отличаться по версии / редакции от того, что используется в качестве зависимостей сборки для дистрибутива debian. Это более или менее процесс резервного копирования пакетов. Вы также можете использовать любой дистрибутив ubuntu для создания пакетов, предназначенных для любого другого дистрибутива (цель в данном случае означает сборку на основе стандартных пакетов репозитория) без каких-либо проблем.

Basic-How-to-Build-a-deb

(не для загрузки ppa - это требует бюрократических требований с панели запуска

Вероятно, требуется: Packing-dev (вытаскивает build-essential pubilder ubuntu-dev-tools среди прочего)

  1. Настройка pbuilder (это позволяет вам собрать пакет в chroot, не загрязняя вашу систему пакетами, зависящими от сборки)

    • sudo pbuilder create ,
    • если вы хотите выполнить сборку для определенного дистрибутива (pbuilder использует выпуск системы сборки в chroot), вы можете использовать pbuilder-dist [точный / oneric / trusy / etc ...] create
  2. Получить исходный код debian

    • pull-debian-source gcc-4.9 [4.9.0-6] конкретная версия debian не является обязательной, но может быть полезна, если вы хотите получить экспериментальные / нестабильные / тестовые / стабильные версии
    • вы также можете извлечь из определенных дистрибутивов ubuntu , добавив их в sources.list как deb-src и используя sudo apt-get src
  3. Build Package

    • sudo pbuilder build gcc-4 .9_4.9.0-6.dsc
    • В загруженных файлах есть файл .dsc , для последней версии gcc это gcc-4.9_4.9.0-6.dsc , который является файлом дескриптора пакета. .orig.tar. [Gz / xz] - это архив с исходными текстами.
  4. Создать локальный Apt-репозиторий

    • mkdir / удобный / место / для / репо
    • cp / var / cache / pbuilder / result / * / путь / к / репо
    • (при условии, что вы находитесь в директории репо ) архивные пакеты apt-ftp. > Пакеты
    • (один из многих способов сделать это) sudo echo "файл deb [доверенный = да]: / local / repo / Packages ./"> /etc/apt/sources.list.d/gcc -repo.list
    • Обратите внимание, что вы также можете выполнить этот шаг с .debs, загруженным откуда угодно (пропустите шаг 1-3)
  5. Установите

    • apt-get update; apt-get install gcc-4.9 g ++ - 4.9

Дополнительные приемы

Простое резервное копирование зависимостей

Использование самкомпилированных пакетов для удовлетворения зависимостей при сборке пакетов. (Я настроил его с помощью папок ~ / pbuilder ~ / pbuilder / Precision_local (локальное репозиторий пакетов для точных) и ~ / pbuilder / Precision_hooks (для скриптов перехвата))

Добавьте следующую строку к вашему ~ / .pbuilderrc

OTHERMIRROR="deb [trusted=yes] file:///home/user/pbuilder/precise_local ./"

BINDMOUNTS="/home/user/pbuilder/precise_local" 

HOOKDIR="/home/user/pbuilder/precise_hooks"

EXTRAPACKAGES="apt-utils"

в точные_хуки , создайте файл D05local (типично для unix / linux, префикс D сообщает, когда перехватывается скрипт 05 - это произвольное упорядочение имен, а local - это просто имя, если у вас только один перехватчик, неважно, как он называется, пока D - это префикс

сценарий является однострочным

(cd / home / user / pbuilder / Precision_local; пакеты apt-ftparchive.> Пакеты)

Теперь любые пакеты, помещенные в Precision_local будет удовлетворять требованиям сборки. Это в высшей степени полезно для построения дерева зависимостей локально при обратном переносе пакетов, у которых есть зависимости, которые также требуют обратного переноса

Решение VM

Чтобы сделать это еще более чистым,используйте образ виртуальной машины или контейнер LXC, чтобы избавиться от этого беспорядка.

Применяя пользовательские исправления

, вы можете применять пользовательские исправления в большинстве пакетов debian с помощью quilt , исправления quilt могут использовать различия из большинства VCS (см .: с использованием quilt )

Есть дополнительный шаг, вы должны перестроить .dsc и .debian.tar.gz . Самый чистый способ, который я знаю, - это bzr-builddeb , он имеет самый высокий уровень успеха IMHO (по сравнению с git-build-package и другими вспомогательными скриптами) и намного чище, чем прямой вызов debuild ( bzr = Bazaar canonical's VCS)

  1. sudo apt-get install bzr-builddeb
  2. (предполагается, что .orig.tar.gz извлечен, а .debian.tar) .gz извлекаем и помещаем в него
    • bzr init
    • bzr add
    • bzr commit
  3. (НЕОБЯЗАТЕЛЬНО)
    • изменить debian / changelog
    • добавить патч в debian / patches / и изменить debian / patches / series (quilt также имеет утилиту для добавления патчей или для вас для изменения на лету, см. документацию)
    • bzr add debian /
    • bzr commit
  4. bzr builddeb - -S -us -uc Это восстанавливает исходный файл и оставляет его без подписи (требуется подпись gpg для загрузки PPA / дистрибутива, но не для частных локальных репозиториев)
  5. cd ../build-area/ Продолжите с шага 3 выше.

Шаги 1–4 здесь в значительной степени представляют собой то, что вам нужно загрузить в PPA (они не принимают двоичные файлы), но вам потребуются некоторые шаги для устранения бюрократии стартовой панели (этот ответ дает объяснение, этот содержит некоторые ссылки)

42
ответ дан 6 May 2015 в 13:30

установить

sudo su -
apt-get install build-essential
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install gcc-4.9 g++-4.9 cpp-4.9

после что если вы проверите версию gcc, вы найдете старую версию

gcc --version

, поэтому мы можем исправить ее с помощью простого символического

cd /usr/bin
rm gcc g++ cpp
ln -s gcc-4.9 gcc
ln -s g++-4.9 g++
ln -s cpp-4.9 cpp

или

, вы можете обновить его, используя update-alternatives

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

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40 --slave /usr/bin/gcc gcc /usr/bin/gcc-4.9
update-alternatives --config gcc
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 40 --slave /usr/bin/cpp cpp /usr/bin/cpp-4.9
update-alternatives --config cpp
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
update-alternatives --config g++

или

, вы можете просто скомпилировать с
/usr/bin/gcc4.9 filename.c

gcc-4.9 похож на gcc-4.8 «ubuntu 14.04 gcc», это не большое уважение

proof

27
ответ дан 6 May 2015 в 13:30

Debian предлагает пакет: https://packages.debian.org/jessie/gcc-4.9 - Для предотвращения проблем с Совместимость Ubuntu / Debian; не добавляйте его в свой список источников.

Вместо этого просто загрузите все это:

binutils_2.25-5_amd64.deb
cpp_4.9.2-2_amd64.deb
g++_4.9.2-2_amd64.deb
gcc_4.9.2-2_amd64.deb
gcc-4.9-base_4.9.2-10_amd64.deb
libasan1_4.9.2-10_amd64.deb
libatomic1_4.9.2-10_amd64.deb
libcilkrts5_4.9.2-10_amd64.deb
libgcc1_4.9.2-10_amd64.deb
libgcc-4.9-dev_4.9.2-10_amd64.deb
libgomp1_4.9.2-10_amd64.deb
libitm1_4.9.2-10_amd64.deb
liblsan0_4.9.2-10_amd64.deb 
libmpfr4_3.1.2-2_amd64.deb
libquadmath0_4.9.2-10_amd64.deb
libstdc++-4.9-dev_4.9.2-10_amd64.deb
libstdc++6
libtsan0_4.9.2-10_amd64.deb
libubsan0_4.9.2-10_amd64.deb

С серверов Debian, например:

http://ftp.us.debian.org/debian/pool/main /b/binutils/binutils_2.25-5_amd64.deb[1250 visible Затем установите их, например: $ для пакета в * .deb; сделать sudo dpkg --install "$ package"; выполнено

[Проще просто запустить этот цикл bash несколько раз, пока не будут учтены все зависимости, чем запоминать порядок, в котором вы их загружали!]

8
ответ дан 6 May 2015 в 13:30

В настоящее время (20141102) добавление PPA и вызов вышеуказанной команды apt-get install gcc-4.9 g ++ - 4.9 cpp-4.9 распечатает множество предлагаемых пакетов. Установите их все, кроме libvtv0-dbg (у которого есть конфликт зависимостей):

apt-get install gcc-4.9 g++-4.9 cpp-4.9 gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg lib32stdc++6-4.9-dbg libx32stdc++6-4.9-dbg

(пропустите пакеты -dbg, если они вас не интересуют), а затем выполните apt-get dist-upgrade - -auto-remove . Этот последний шаг в основном заменит ваш gcc-4.8 на gcc-4.9 (но не удалит старую версию) и одновременно установит последние компиляторы fortran.

2
ответ дан 6 May 2015 в 13:30

У меня было чтобы заставить версию пакета gcc-4.9-base пропустить опубликованное вами сообщение об ошибке. Затем установка сработала

sudo apt-get install gcc-4.9-base=4.9.2-0ubuntu1~14.04

. Теперь вы можете выполнить обычную

sudo apt-get install gcc-4.9
2
ответ дан 6 May 2015 в 13:30

Установить GCC GNU 4.9

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install gcc-4.9

Удалить предыдущую версию gcc из списка приложений по умолчанию (если она уже существует)

sudo update-alternatives --remove-all gcc

Сделать GCC 4.9 компилятором по умолчанию в системе

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --config gcc

Последнее обновление GCC 4.9.1 - это выпуск с исправлением ошибок из ветки GCC 4.9, содержащий важные исправления регрессий и серьезных ошибок в GCC 4.9.0 с более чем 88 ошибками, исправленными с момента предыдущего выпуска. В дополнение к этому, выпуск GCC 4.9.1 поддерживает OpenMP 4.0 также в Fortran, а не только в C и C ++

Примечание. Проверено в ubuntu 14.04 LTS

2
ответ дан 6 May 2015 в 13:30
  • 1
    Или пойдите подход РЕМОНТА. РЕМОНТ походит на самый легкий способ пойти о тройной начальной загрузке, метод, связанный выше, кажется остротой, но немного более сложный (особенно рассмотрение того, что все снимки экрана находятся на китайском языке), – SamWN 24 August 2015 в 09:57

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

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