【问题标题】:Apt / Debian Repository from maven with dpkg-scanpackages来自 maven 的 Apt / Debian 存储库与 dpkg-scanpackages
【发布时间】:2013-11-12 22:45:22
【问题描述】:

简短说明

我想从 maven 存储库文件夹 创建一个 apt 存储库。关注TutorialsTutorials 这工作正常。

cd /path/to/maven/repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
echo deb file:///path/to/maven/repo ./ >> /etc/apt/sources.list
apt-get update
apt-ftparchive release . > Release 
gpg --output Release.gpg -ba Release

但是,当我尝试像这样通过 apache 访问此存储库时

deb http://repository.mukis.de/apt/ ./

E: 遇到一个没有 Package: header 的部分 E: MergeList /var/lib/apt/lists/repository.mukis.de_apt_._de 的问题 E: 无法打开包列表或状态文件

删除嵌套的 maven 存储库文件夹结构解决了远程问题。我该如何解决这个问题,以便我可以保留 maven 结构?

详细说明

我有一个正在运行的 Nexus OSS 服务器和 Nexus APT Plugin,它不起作用。 之后,我尝试使用dpkg-scanpackagesapt-ftparchive 自己构建存储库,但没有成功。 reprepro 复制文件为什么这不是一个选项,因为我无缘无故地拥有了两次文件。

最后我只想要:

mvn deploy
apt-get install deployed-package

存储库不需要架构信息,因为只会安装 java 包。

提前致谢, 渚

【问题讨论】:

  • Release 文件的内容是什么。 IMO 你应该使用deb http://repository.mukis.de/apt/ distribution component 并且 apache 目录层次结构是错误的。
  • 内容在这里:repository.mukis.de/apt/Release 但是我不想要'分发组件'的东西,因为它没有,因为它只是 java 应用程序

标签: java maven repository apt dpkg


【解决方案1】:

您的目录层次结构混乱,apt-get 会给您带来麻烦。它在内部工作没有问题,但对于包列表来说,它是一个坏名字。该条目应该没有尾随/

$ cat sources.list 
deb http://repository.mukis.de/apt ./
$ apt-get -s -o Dir::State::Lists=/home/braiam/lab/ --option Dir::Etc::SourceParts=/home/braiam/ --option Dir::Etc::SourceList=/home/braiam/sources.list update
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Get:1 http://repository.mukis.de ./ Release.gpg [490 B]
Get:2 http://repository.mukis.de ./ Release [1,202 B]
Ign http://repository.mukis.de ./ Release
Get:3 http://repository.mukis.de ./ Packages [417 B]
Ign http://repository.mukis.de ./ Translation-en_US
Ign http://repository.mukis.de ./ Translation-en
Fetched 2,109 B in 3s (596 B/s)
Reading package lists... Done
W: GPG error: http://repository.mukis.de ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 59B7C730340E30A7
$ ls lab/
partial  repository.mukis.de_apt_._Packages  repository.mukis.de_apt_._Release

但是,如果你想防止奇怪的事情发生,我建议:

  • 构造像apt/dists/raring/apt/dists/raring/ 这样的真实层次结构(您可以随意更改稀有度,或者
  • 在您的服务器中创建多个相关符号链接以符合 Debian/apt 存储库政策

为什么不建议使用./

从客户端/用户的角度来看,这些需要此条目的存储库称为琐碎档案。由于两个 Release 文件的冲突,这些不支持首选项文件使用的 apt-pinning。如果您需要像开发人员建议那样构建 apt-repository,最好从一开始就这样做。有一些工具可以设置您的个人存档,称为 reprepo 和 mini-dinstall。如需完整指南,请阅读https://wiki.debian.org/HowToSetupADebianRepository

【讨论】:

  • 是的,我阅读了您的链接。 Reprepo 复制了所有的 debian 软件包 :( 我希望避免这种情况。
猜你喜欢
  • 2011-07-12
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多