我正在尝试在 JFrog 的 Artifactory 中为二进制 Debian 软件包(.deb 文件)建立一个本地存储库,以托管我们公司的一些内部 Debian 软件包。
在我的电脑上,我可以使用
dpkg -i <package filename>.deb
完美安装软件包。所以我怀疑我的特定软件包是否存在本质上的问题。但据报道,当我使用 Web 界面成功将包部署到 Artifactory 并更新 PC 上的包索引(通过成功运行 sudo apt update -y
)时,我实际上无法使用 sudo apt install
安装包。我总是收到错误E: Unable to locate package <package name>
。
澄清一下:我在 x86-64 上使用 Ubuntu 24.04 LTS Noble Numbat。在部署包时,我输入“
noble
”作为发行版,“multiverse
”作为组件,“amd64
”作为架构。我可以在存储库浏览器中看到上传成功,并且在存储库的原始目录结构中,.deb
文件最终位于文件夹层次结构的根目录中(而不是我个人期望的位于 pool/
下)。本地存储库应该正确配置为 APT 源(特别是考虑到我可以毫无问题地获取包索引)。最后,我多次尝试在 Artifactory Web 界面内重新计算存储库的索引。
我不知道如何解决这个问题。有谁知道这个问题最可能的原因是什么?预先感谢您!
我的问题的根本原因似乎是我运行的 Artifactory 版本无法处理用
.deb
压缩的 zstd
包,这似乎已成为标准。
在构建自定义包时明确指示
dpkg-deb
使用 GZip
使用 dpkg-deb -Zgzip -b foo/
压缩解决了我的问题。