尽管我已经能够更准确地找出问题所在,但我在安装软件包时遇到了很多天的麻烦,并且在任何地方都找不到解决方案。libsocket-perl
在存档镜像中搜索特定依赖包时,apt-get 或 aptitude 似乎会向文件附加不正确的扩展名。
通过查看存档,我可以找到该包的许多版本:
http://ftp.us.debian.org/debian/pool/main/libs/libsocket-perl/
libsocket-perl_2.014-1+b2_s390x.deb
libsocket-perl_2.014-1.debian.tar.xz
libsocket-perl_2.014-1.dsc
libsocket-perl_2.014-1_amd64.deb
libsocket-perl_2.014-1_armel.deb
libsocket-perl_2.014-1_armhf.deb
libsocket-perl_2.014-1_i386.deb
libsocket-perl_2.014-1_kfreebsd-amd64.deb
libsocket-perl_2.014-1_kfreebsd-i386.deb
libsocket-perl_2.014-1_mips.deb
libsocket-perl_2.014-1_mipsel.deb
libsocket-perl_2.014-1_powerpc.deb
libsocket-perl_2.014.orig.tar.gz
...
但是当 apt-get 或 aptitude 尝试获取并安装它时,我会抛出以下错误:
E: Failed to fetch http://ftp.us.debian.org/debian/pool/main/libs/libsocket-perl/libsocket-perl_2.014-1+b1_amd64.deb 404 Not Found [IP: 64.50.233.100 80]
+b1_amd64.deb
在存档中找不到该扩展名。
现在我真的不明白为什么我需要+b1
该包的版本或者为什么它在存档中不可用。有没有一种方法可以让包管理器搜索可以替代的可用版本?
答案1
您可以运行以下命令apt-cache
来查找给定包的可用版本:
$ apt-cache showpkg libsocket-perl
然后根据该输出,转向apt-get
选择特定版本,如下所示:
$ apt-get install <package name>=<version>
例如:
$ apt-get install libsocket-perl=2.014-1_amd64
您update
也可以使用 an 来完成此操作。
$ apt-get update libsocket-perl=2.014-1_amd64
为什么会出现错误?
对我来说这看起来像是一个包装错误,仅此而已。