Рейтинг:4

Почему некоторые старые версии пакетов не найдены

флаг gr

Я пытаюсь настроить механизм сборки (Bazel) для использования gcc-7. Для этого мне нужны были ссылки на все необходимые пакеты .deb.

Одной из зависимостей gcc-7 является libatomic1 (>= 7.5.0-6ubuntu2). Я понимаю, что это «больше или равно», но если бы я хотел использовать исходные библиотеки, поставляемые с gcc-7, где я мог бы их получить?

Например, если я делаю подходящая загрузка --print-uris libatomic1=7.5.0-6ubuntu2 почему apt говорит мне:

E: Версия «7.5.0-6ubuntu2» для «libatomic1» не найдена

но когда я сделаю подходящее шоу libgcc-7-dev я вижу это libatomic1>=7.5.0-6ubuntu2 указывается как зависимость. Где я могу найти этот libatomic1=7.5.0-6ubuntu2?

Я думал, что могу найти пакет библиотеки в http://old-releases.ubuntu.com/ubuntu/pool/main/g/gcc-7/ но его там нет.

N0rbert avatar
флаг zw
Установка точных версий пакетов — плохая идея. Вы не должны рассматривать APT как Ruby/Rake/rvm или Npm или pip.
Рейтинг:5
флаг bo

Если вы проверите здесь, вы увидите, что обновления безопасности заменили старые версии. Старые версии больше не доступны из соображений безопасности.

Я выполнил поиск в пакеты.ubuntu.com с использованием «фокусного» в качестве дистрибутива.

введите описание изображения здесь

Другая причина, по которой старая версия недоступна, заключается в том, что стандартная версия libatomic1 больше не собирается из gcc-7. Как вы видете здесь, текущая версия, доступная для Ubuntu Focal, собрана из gcc-10 (справа в разделе «Ресурсы Ubuntu»).

Если хотите, можете скачать исходный код gcc-7 и собрать оттуда libatomic1. Это, вероятно, не то, что вы хотели бы сделать, но это возможно.

Вы можете включить источники в /etc/apt/sources.list файл, а затем запустите:

sudo apt исходный код gcc-7

или вы можете скачать исходник с пакеты.ubuntu.com а справа вы увидите три варианта загрузки исходного кода.

введите описание изображения здесь

Также следует отметить, что если вы собираетесь что-то собирать, вам нужно будет скачать необходимые зависимости для сборки:

sudo apt build-dep gcc-7
mchid avatar
флаг bo
Конечно, сборка из исходного кода не удовлетворяет зависимости dpkg, но вы сможете работать с библиотекой, которую вы скомпилировали из исходного кода, явно ссылаясь на нее при запуске gcc-7.
Рейтинг:1
флаг cm

Репозитории Apt обычно содержат только одну версию пакета для данного выпуска. Если вам нужны более старые пакеты Ubuntu, вам нужно просмотреть «историю публикации» исходного пакета на панели запуска. Затем вы можете перейти по ссылке на конкретную версию, затем по ссылке на сборки и, наконец, по ссылкам на отдельные пакеты.

Однако я не верю, что пакет libatomic1 версии 7.5.0-6ubuntu2 когда-либо существовал. Когда исходный пакет для новой основной версии gcc добавляется в выпуск Debian или Ubuntu, он берет на себя пакеты библиотек для библиотек поддержки времени выполнения gcc (libgcc, libatomic, libasan и т. д.).

Затем исходный пакет для предыдущей основной версии модифицируется при следующей загрузке, так что он больше не создает пакеты, которые были приняты новой основной версией, если он не был изменен таким образом, то я почти уверен, что загрузка будет отклонено программным обеспечением архивации (я знаю, что это будет в Debian, я не очень хорошо знаком с настройкой архива Ubuntu)

Вы можете загрузить последний исходный пакет gcc-7 и изменить его, чтобы снова включить сборку библиотек, но это, скорее всего, вызовет больше проблем, чем решит.

Ответить или комментировать

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