Я пытаюсь создать локальное подписанное хранилище для пакетов Debian в одной из наших систем сборки. Намерение состоит в том, что после создания этого подписанного репо мы отправим его как часть нашего установщика вместе с открытым ключом подписи. Теперь, когда клиент запускает установщик, мы распаковываем созданный нами каталог репо, создаем файл /etc/apt/sources.list.d/<my-product>.list
и начинаем установку пакетов из этого локального репо.
Ниже приведены шаги, которые я выполняю, чтобы создать репо.
/root/tempRepo
dpkg-scanpackages /root/tempRepo /dev/null | gzip -9c > /root/tempRepo/Packages.gz
apt-ftparchive release /root/tempRepo > /root/tempRepo/Release
gpg --clearsign -o /root/tempRepo/InRelease /root/tempRepo/Release
gpg -abs -o /root/tempRepo/Release.gpg /root/tempRepo/Release
pkg1.deb pkg2.deb InRelease Packages.gz Release Release.gpg
/root/tempRepo
(скажем). sudo apt-key add <path-to-pub-key>
sudo apt-key list
/etc/apt/sources.list.d/<my-product>.list
со следующим содержанием, deb file:/root/ tempRepo/
или deb file:/root/tempRepo ./
sudo apt update
или sudo apt-get update
я получаю следующую трассировку ошибок, Get:1 file:/root/tempRepo ./ InRelease [1,346 B]
Hit:2 http://us.archive.ubuntu.com/ubuntu xenial InRelease
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Fetched 325 kB in 0s (833 kB/s)
Reading package lists... Done
N: Can't drop privileges for downloading as file '/root/tempRepo/./InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
W: file:/root/tempRepo/./InRelease: Signature by key 47GH0FHSDGDJDJDYSIFB7679795D559EC6EEE749 uses weak digest algorithm (SHA1)
E: Failed to fetch file:/root/tempRepo/./InRelease Unable to find expected entry 'Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.```