1

简短的介绍

我想从Maven 存储库文件夹创建一个apt 存储库。遵循教程教程这工作正常。

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:遇到没有包的部分:标题 E:MergeList /var/lib/apt/lists/repository.mukis.de_apt_._de 有问题 E:无法打开包列表或状态文件

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

详细描述

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

最后我只想要:

mvn deploy
apt-get install deployed-package

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

在此先感谢,穆基

4

1 回答 1

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 存储库策略

为什么./不建议?

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

于 2013-11-14T14:00:26.270 回答