Я пытаюсь загрузить и проверить все файлы .deb на http: //archive.ubuntu .com / ubuntu / pool / main / a / acct /
Я не хочу использовать apt, потому что считаю, что это ограничит меня файлами .deb для моей архитектуры, а также ограничит меня в том, какие версии поддерживаются
Я подумываю использовать для загрузки wget или curl, чтобы не ограничиваться тем, что доступно в моей системе (архитектура, версии и т. Д.).
Что касается проверки, я вижу некоторые файлы .dsc, но я считаю, что они предназначены только для проверки исходного кода.
Как я могу проверить загруженные файлы .deb? Я бы предпочел проверять с помощью подписи, а не просто проверять sha256sum. Однако, если нет возможности проверить подписи, подойдет проверка хэша.
Обновление: я пробовал dpkg --add-architecture и запускал apt-get update, но все еще не могу использовать apt для загрузки несовместимого программного обеспечения.
Спасибо за вашу помощь.
Возможно, есть более простой способ, но ниже приведен возможный способ самого низкого уровня .
Итак, мы знаем имя пакета, 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
Примечания: