我正在使用 reprepro 托管一些内部存储库。
将客户端升级到 Ubuntu 16.04 后,apt-get update会发出警告“InRelease: Signature by key ... uses weak digest algorithm (SHA1)”。
InRelease 文件像这样开始:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Run Code Online (Sandbox Code Playgroud)
因此,reprepro 已使用 SHA1 对 InRelease 文件进行签名。如何将其更改为 SHA256 或 SHA512?
我想要一个用于稳定和不稳定的 lucid 包的私有 apt 存储库。当我尝试包含 debian 时,我不断收到错误消息。
Multiple distributions with the common codename: 'lucid'!
First was in ./conf/distributions line 1 to 8, another in lines 10 to 17There have been errors!
Run Code Online (Sandbox Code Playgroud)
我正在使用这个配置文件。
Origin: Stable Repository
Label: Stable Repository
Suite: stable
Codename: lucid
Architectures: i386 amd64
Components: main non-free
Description: Stable Repository
SignWith: yes
Origin: Unstable Repository
Label: Unstable Repository
Suite: unstable
Codename: lucid
Architectures: i386 amd64
Components: main non-free
Description: Unstable Repository
SignWith: yes
Run Code Online (Sandbox Code Playgroud)
我的配置文件有什么问题?
在我的仿生“客户”上,我得到:
GPG error: http://repo.localpod/Dml/ldom-debs/ubuntu bionic InRelease: The following signatures were invalid: ADE541A20ACF8997C01BDCF7090678A30132048A
Run Code Online (Sandbox Code Playgroud)
请注意,它说“无效”,而不是遗漏!
这些是我自己的 .deb 包,收集在一个 repo 中。(这适用于 trusty & xenial )
我已经用类似的东西签署了回购协议:(通过 reprepro 调用:conf/distributions)
gpg --batch --yes --keyring $KeyP --secret-keyring $KeyS -a --no-permission-warning --detach-sign --default-key 'ldom install service' --output $3 $1
$1 = .../Release
$2 = .../InRelease
Run Code Online (Sandbox Code Playgroud)
好的,所以我试过:
wget http://repo.localpod/Dml/ldom-debs/ubuntu/dists/bionic/InRelease
and:
# gpgv --keyring /etc/apt/trusted.gpg "InRelease"
gpgv: Signature made Thu 24 May 2018 12:20:29 PM CEST
gpgv: using DSA key 090678A30132048A
gpgv: Good signature from "ldom install service <tbuunix@...dk>" …Run Code Online (Sandbox Code Playgroud) reprepro list stretch不会在我的 apt 存储库中列出任何包,reprepro remove stretch <package>也不会从我的存储库中删除任何包。我怎样才能:
reprepro list stretch找到它们,或者reprepro从我的 repo 中删除包我有一台带有 apt 存储库的构建机器。当我完成构建时,我安装我的包:
sudo reprepro -Vb /var/www/html/apt/debian \
includedeb stretch \
${build_dir}/a320-latest-0.0.${SVN_REVISION}-Linux.deb
Run Code Online (Sandbox Code Playgroud)
一切似乎都运行得很好。我可以apt-get install a320-latest从任何将我的存储库添加到他们的/etc/apt/sources.list.d/.
当我进一步检查时,我可以确认我安装了几个软件包:
bob@apollo:/var/www/html/apt/debian$ tree pool
pool
??? main
??? a
? ??? a320
? ? ??? a320_0.0.571_amd64.deb
? ??? a320-latest
? ??? a320-latest_0.0.575_amd64.deb
??? h
? ??? helloworld
? ??? helloworld_0.2_amd64.deb
??? s
??? sim-dev
? ??? sim-dev_1.0_amd64.deb
??? …Run Code Online (Sandbox Code Playgroud) 我使用“reprepro”从我的本地存储库中获取最新的 Debian 软件包,手动工作正常。
现在我需要通过 cron 作业自动执行此过程,但 reprepro 密码是一个提示。
有没有可能通过bash脚本发送密码?在 reprepro 联机帮助页中找不到任何内容。