Как узнать имя поставщика пакетов linux на основе debian?

Aug 20 2020

В дистрибутиве Linux на основе rpm указывается имя поставщика, например:

rpm -qi nano
<other info>
Vendor: CentOS
<other info>

Как я могу узнать имена поставщиков пакетов в дистрибутиве на основе Debian? Уже пробовал:

dpkg -l
apt list
apt show <package name>

Мне нужно имя поставщика, потому что я пишу сценарий, который будет создавать CPE для каждого пакета в моей системе, я смог получить имя и версию пакета, но не смог получить имена поставщиков.Если бы кто-нибудь знал, как получить cpes из пакетов на основе Debian, пожалуйста, помогите меня...

Ответы

2 StephenKitt Aug 20 2020 at 19:37

.debпакеты не отслеживают поставщиков на пакет; Ближайшим эквивалентом является поле «Origin» Releaseфайла, описывающего репозиторий, из которого можно загрузить пакет.

Чтобы понять это, начните с apt show:

$ apt show ... | grep APT-Sources:
APT-Sources: http://deb.debian.org/debian buster/main amd64 Packages

Затем найдите соответствующий Releaseфайл в /var/lib/apt/lists:

$ ls /var/lib/apt/lists/deb.debian.org_debian_dists_buster_*Release
/var/lib/apt/lists/deb.debian.org_debian_dists_buster_InRelease

Наконец, найдите там «Origin»:

$ grep Origin: /var/lib/apt/lists/deb.debian.org_debian_dists_buster_InRelease
Origin: Debian
ArtemS.Tashkinov Aug 20 2020 at 18:42

Сопровождающие Debian / Ubuntu не сохраняют эту информацию. apt-cache show packagenameпоказывает информацию, сравнимую с ней, rpm -qiно ее нет Vendorкак таковой, только Maintainerто, что вы ищете.