Пытаюсь загрузить и проверить файлы .deb

Я пытаюсь загрузить и проверить все файлы .deb на http: //archive.ubuntu .com / ubuntu / pool / main / a / acct /

Я не хочу использовать apt, потому что считаю, что это ограничит меня файлами .deb для моей архитектуры, а также ограничит меня в том, какие версии поддерживаются

Я подумываю использовать для загрузки wget или curl, чтобы не ограничиваться тем, что доступно в моей системе (архитектура, версии и т. Д.).

Что касается проверки, я вижу некоторые файлы .dsc, но я считаю, что они предназначены только для проверки исходного кода.

Как я могу проверить загруженные файлы .deb? Я бы предпочел проверять с помощью подписи, а не просто проверять sha256sum. Однако, если нет возможности проверить подписи, подойдет проверка хэша.

Обновление: я пробовал dpkg --add-architecture и запускал apt-get update, но все еще не могу использовать apt для загрузки несовместимого программного обеспечения.

Спасибо за вашу помощь.

1
задан 30 March 2021 в 22:12

1 ответ

Возможно, есть более простой способ, но ниже приведен возможный способ самого низкого уровня .

Итак, мы знаем имя пакета, acct , он находится в основном кармане . В приведенном ниже примере я буду использовать Ubuntu 20.04 LTS ( focal ).

Затем нам нужно получить файл Packages с зеркала:

cd /tmp
wget -c http://archive.ubuntu.com/ubuntu/ubuntu/dists/focal/main/binary-amd64/Packages.xz

и получить от него сумму SHA256 для необходимого пакета:

xzcat Packages.xz | grep acct.*deb -A4 | grep SHA256 | awk '{print $2}' | tee acct.sha256

Затем мы можем получить правильное имя файла, посоветовавшись с https://packages.ubuntu.com/focal/acct для сравнения суммы:

cd /tmp
wget -c http://archive.ubuntu.com/ubuntu/pool/main/a/acct/acct_6.6.4-2_amd64.deb
# or construct it
wget -c "http://archive.ubuntu.com/ubuntu/$(xzcat Packages.xz | grep acct.*deb | awk '{print $2}')"

sha256sum acct_6.6.4-2_amd64.deb

или с более автоматизированным вариантом:

comm <(sha256sum acct_6.6.4-2_amd64.deb | awk '{print $1}') <(cat acct.sha256) && echo OK || echo NOK

Примечания:

  1. для других архитектур ЦП ( armhf , arm64 , s390x и ppc64el ) используют файловую структуру http://ports.ubuntu.com с вышеуказанным подходом.
  2. обратите внимание, что при текущем подходе вы можете получить "ад зависимостей". Поэтому для массовой загрузки пакетов deb с зависимостями для известной версии дистрибутива на основе Debian вы можете использовать мой специальный сценарий на основе Docker, расположенный по адресу https://github.com/N0rbert/deb-download (см. Его README .md для подробностей).
2
ответ дан 23 April 2021 в 23:28

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

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