Как установить последнюю версию gcc и g ++?
Я использую различные функции C ++ 11 и C ++ 1y; поэтому я нуждаюсь в этом.
Как установить последнюю версию gcc и g ++?
Я использую различные функции C ++ 11 и C ++ 1y; поэтому я нуждаюсь в этом.
Вы можете установить близкую к восходящей версии GCC из Ubuntu Toolchain PPA: Ссылка
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-4.9
Протестировано на Ubuntu 14.04.
научить человека рыбу и т. д. и т. д.
Как создать исходный пакет и обслуживать его из локального хранилища удобным для пользователя способом. Это будет работать на любом дистрибутиве при условии, что зависимости могут быть удовлетворены / Этот метод не требует установки сборки для каждого пакета и загрязнения вашей машины посторонними пакетами, это позволит вам идти в ногу с пакетами, поскольку они обновляются в debian experimental , Требуется всего несколько минут, чтобы сделать это один раз, а затем можно повторно использовать, чтобы перестроить любой пакет, который вам нужен, не полагаясь на других людей, чтобы упаковать ppa для вас или загрузить кучу разных .debs
Преимущество построения и вытаскивания raw debug из debian заключается в том, что это создаст пакеты для пакетов в вашем дистрибутиве, которые могут отличаться версией / версией от того, что используется в качестве зависимостей сборки для распределения debian. Это больше или меньше процесс для пакетов backporting. Вы также можете использовать любой дистрибутив ubuntu для создания пакетов, предназначенных для любого другого дистрибутива (цель в этом случае означает сборку против стандартных пакетов репозитория) без каких-либо проблем. Р>
(не для загрузки ppa - у этого есть beurocratic требования с панели запуска
Вероятно требуется: packaging-dev
(тянет build-essential pubilder ubuntu-dev-tools
среди других)
Настроить pbuilder (это позволяет вам создавать пакет в chroot, не загрязняя вашу систему пакетами сборки)
sudo pbuilder create
, pbuilder-dist [precise/oneric/trusy/etc...] create
Получить источник debian
pull-debian-source gcc-4.9 [4.9.0-6]
конкретная версия debian является необязательной, но может быть полезна, если вы хотите вытащить экспериментальные / нестабильные / тестовые / стабильные версии. sudo apt-get src
Сборка пакета
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]
является исходным tarball. Создать локальный Apt-репозиторий
mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
apt-ftp archive packages . > Packages
sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list
Установить р>
apt-get update; apt-get install gcc-4.9 g++-4.9
Использование самокомпилированных пакетов для удовлетворения зависимостей при создании пакетов. (У меня он настроен с папками ~/pbuilder
~/pbuilder/precise_local
(локальный репозиторий пакета для точного) и ~/pbuilder/precise_hooks
(для скриптов hook))
Добавьте в свой ~/.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"
в precise_hooks
создать файл D05local
(в типичном стиле unix / linux, префикс D
сообщает, когда скрипт подключен 05
- это самонастраиваемое имя-порядок, а local
- это просто имя, если у вас есть только один крючок, это не важно, что его вызвало до тех пор, пока D
является префиксом
сценарий является однострочным
(cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages)
р>
Теперь любые пакеты, помещенные в precise_local
, будут соответствовать зависимости от сборки. Это чрезвычайно полезно для создания дерева зависимостей локально при обратном переносе пакетов, у которых есть зависимости, которые также нуждаются в backporting
Чтобы сделать это еще более чистым способом, используйте изображение VM или контейнер LXC, чтобы помешать этому беспорядку. Р>
вы можете применять пользовательские исправления в большинстве debian-пакетов, используя quilt
, патчи для завивки могут использовать отличия от большинства VCS (см. с использованием одеяла )
Есть дополнительный шаг, вы должны перестроить .dsc
и .debian.tar.gz
. Самый чистый способ, который я знаю, - bzr-builddeb
, имеет самый высокий коэффициент успеха IMHO (по сравнению с git-build-пакетом и другими вспомогательными скриптами) и намного чище, чем вызов debuild
напрямую ( bzr
= VCS канонического базара) р>
sudo apt-get install bzr-builddeb
.orig.tar.gz
извлекается и .debian.tar.gz
извлекается и помещается в него
bzr init
bzr add
bzr commit
debian/changelog
debian/patches/
и изменить debian/patches/series
(у одеяла также есть утилита для добавления патчей или для изменения на лету, см. документацию). bzr add debian/
bzr commit
bzr builddeb -- -S -us -uc
Это перестраивает исходный файл и оставляет его без знака (подписание gpg требуется для загрузки PPA / distro, но не для частных локальных репозиториев). cd ../build-area/
Продолжить с шага 3 выше. Шаги 1-4 здесь в значительной степени требуют загрузки в PPA (они не берут двоичные файлы), но вам требуются некоторые шаги для удовлетворения бюрократии пусковой площадки (это дает объяснение, это имеет некоторые ссылки) р>
установить
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
// На самом деле я попробовал символический & amp; Я знаю, что это сработает, но вы можете использовать символику, чтобы получить ее без проблем // пожалуйста, поправьте меня, если я ошибаюсь
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", это не большая честь
Debian предлагает пакет: Ссылка - предотвращать возникновение проблем с совместимостью с Ubuntu / Debian; не добавляйте его в свой источник.list.
Вместо этого просто загрузите все это:
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, например:
Ссылка
Затем установите их, например: $ for package in *.deb; do sudo dpkg --install "$package"; done
[Легче просто запустить этот цикл bash несколько раз, пока не будут охвачены все зависимости, кроме как запомнить порядок, в который вы их загрузили!]
В настоящее время (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 в одно и то же время.
Мне пришлось вынудить версию для пакета 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
Установить 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