Я перепробовал множество решений, чтобы установить обновление для моего компилятора gcc на сервер Debian. Никто из них не работал. Мне нужно обновление компилятора, чтобы использовать новые функции c ++ 11, поскольку это обеспечивает стабильный ABI libcxx11 и стабильную поддержку C ++ 11 (см. Здесь ). В частности, получение версии GLIBCXX_3.4.21, которая не включена в мою текущую версию 4.9.2 компилятора gcc (Debian 4.9.2-10).
Некоторые указатели на решение будут полезны. Заранее спасибо.
Некоторые ссылки на форум, связанные с моей проблемой, которые я уже пробовал:
1 2 3 (не совсем связанное решение для Ubuntu, но я не смог найти gcc-5 в ftp-сервере Debian)
testing
, но это, вероятно, не очень хорошая идея для сервера (в зависимости от того, что вы подразумеваете под сервером, конечно). Переход с gcc 4.9 на gcc 5 связан с переходом библиотеки, так что вам будет больно, если вы попытаетесь сделать это сами!testing
(используемых сам по себе): пакеты иногда временно удаляются (поэтому настройка, которую вы только что проверили на своей тестовой виртуальной машине, может больше не быть доступной) и исправления безопасности могут быть отложены (иногда на длительное время, еслиtesting
происходит большой переход библиотеки, хотя есть иtesting-security
для таких случаев).Ответы:
Мне нужен GCC 5+, установленный на Debian Jessie, и, поскольку он доступен для тестирования Debian (по крайней мере 16 июня), вы можете использовать apt-pinning для установки доступных пакетов (см. Https://wiki.debian.org/AptPreferences ). ,
Чтобы установить GCC 5+ из тестирования на Debian Jessie с помощью apt-pinning:
Добавьте Debian Testing Reo в ваши исходные коды apt, создав файл в каталоге,
/etc/apt/sources.list.d
содержащий строкуdeb http://ftp.us.debian.org/debian testing main contrib non-free
Поручите debian использовать источники тестирования для определенных пакетов, создав файл,
/etc/apt/preferences.d
содержащий следующее:Обновить базу данных:
sudo apt-get update
Установите gcc из тестирования:
sudo apt-get install -t testing gcc
Обратите внимание, что при использовании команды
-t testing
apt-get вы устанавливаете gcc из тестируемых источников, как было настроено ранее.Я настоятельно рекомендую очистить любую компиляцию и заново скомпилировать любую зависимость перед повторной компиляцией исходных текстов.
Повеселись!
источник
pip
) , но я думаю, что эта процедура наименее инвазивна, потому чтоapt
будет отслеживать, какие пакеты зависят от GCC, и будет устанавливать совместимые версии по мере необходимости (насколько я помню).Pin-Priority
пакет получает, тем больше предпочтений он получит по сравнению с другими пакетами с меньшим числом. Таким образом, как и в состояниях страницы Debian AptPrefences ,testing
по умолчанию выполняется установкаPin-Priority: 900
всех пакетовtesting
по умолчанию. Таким образом, указание, чтоtesting
будет иметь болееPin-Priority: 100
низкийtesting
приоритет пакетов, что делает их устанавливаемыми только в случае запроса при указании цели наapt-get install -t testing ...
Package: gcc
обновление всей системы до тестирования. Документация по поводуapt-prefences
сбивает с толку, поэтому я полагаю, что именно так и происходит: 1: поскольку пакеты из тестирования имеют более крупные версии, по умолчанию они имеют приоритет над стандартными 2: указание пакета:gcc
сPin-priority: 100
делает все пакеты из тестирования иметь приоритет по умолчанию (более высокий, чем стандарт) , за исключениемgcc
. Точно противоположное тому, что мы хотели. Я обновил ответ, чтобы избежать этой ошибкиЧтобы объединить 2 предыдущих ответа в один, который работает:
НО!!! Используйте это на свой страх и риск, так как вы устанавливаете пакеты из нестабильных. Вы также можете удалить
/etc/apt/sources.list.d/unstable.list
после установки пакетов.Если возможно, установите под Docker, чтобы не испортить свою ОС. Ваш пробег может варьироваться.
источник
По состоянию на 2017-02-19, gcc-5 был снят с тестирования:
https://tracker.debian.org/pkg/gcc-5
Вы можете,
apt-get install gcc-5
если вы сначала выполните эту строку как root:Затем вы, вероятно, захотите изменить приоритет этого источника в
/etc/apt/preferences.d
соответствии с ответом llekn.источник
У меня были проблемы на прошлой неделе; похоже, что по состоянию на 2019-01-23 gcc-5 полностью удален из репозиториев. (См. Https://tracker.debian.org/pkg/gcc-5 ).
Если вам это действительно нужно, я полагаю, вы можете скомпилировать его из исходного кода. Я собираюсь найти способ удалить зависимость от моей системы.
источник