Как одна упаковка в PPA превращается во многие в apt?

Я использую ppa: graphics-drivers / ppa для установки драйверов nvidia. Если вы перейдете к «Обзору опубликованных пакетов» в его описании (и для удобства отфильтруете по одному выпуску Ubuntu), вы увидите такие пакеты, как nvidia-graphics-drivers-***, где *** - это число.

Пока все хорошо. Однако, если вы добавите этот ppa в вашу систему, ни один из этих пакетов не появится (apt скажет «нет такого пакета»), а некоторые другие (например, nvidia-dkms-***, nvidia-utils-*** и т. Д.) Появятся.

Как это реализовано? Реализовано ли это на стороне PPA (он показывает один для нас, но многие на apt) или на стороне apt / dpkg (есть что-то особенное в самом пакете)?

2
задан 19 May 2019 в 13:29

1 ответ

Это один из случаев, когда существуют большие исходные пакеты, из которых построено несколько двоичных пакетов.

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

Посмотрите на Просмотр информации о пакете PPA (ссылка, например, в верхнем правом углу).

Здесь вы видите список всех исходных пакетов , но каждая запись расширяется при нажатии на нее и раскрывает более подробную информацию, включая раздел Построенные пакеты , в котором перечислены все бинарные пакеты, созданные из этого источника. Эти имена пакетов можно установить с помощью apt. Ниже также приведен список со ссылками на скачивание этих файлов пакета .deb (но вы всегда должны устанавливать с apt, а не загружать их вручную).

Например, пакет с одним исходным кодом nvidia-graphics-drivers-430 - 430.14-0ubuntu0~gpu18.04.1 строит все эти двоичные пакеты:

libnvidia-cfg1-430
libnvidia-common-430
libnvidia-compute-430
libnvidia-decode-430
libnvidia-encode-430
libnvidia-fbc1-430
libnvidia-gl-430
libnvidia-ifr1-430
nvidia-compute-utils-430
nvidia-dkms-430
nvidia-driver-430
nvidia-headless-430
nvidia-headless-no-dkms-430
nvidia-kernel-common-430
nvidia-kernel-source-430
nvidia-utils-430
xserver-xorg-video-nvidia-430
0
ответ дан 19 May 2019 в 13:29

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

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