Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – Perl:libapt-pkg-perl AptPkg :: Cache->精确的新奇怪行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在libapt-pkg-perl(v.0.1.25)的精确包中,我对AptPkg :: Cache对象的构造函数有一个非常奇怪的问题. perl脚本旨在为三种不同的体系结构(i386,armel,armhf)下载debian软件包.对于每个架构,我执行以下操作: >使用正确的参数和所需体系结构的包列表配置AptPkg :: Config’$_config’. >使用AptPkg :: Cache-
在libapt-pkg-perl(v.0.1.25)的精确包中,我对AptPkg :: Cache对象的构造函数一个非常奇怪的问题.

perl脚本旨在为三种不同的体系结构(i386,armel,armhf)下载debian软件包.对于每个架构,我执行以下操作:

>使用正确的参数和所需体系结构的包列表配置AptPkg :: Config’$_config’.
>使用AptPkg :: Cache-> new创建缓存对象.
>调用方法AptPkg :: Cache->策略以创建AptPkg :: Policy对象.
>调用方法AptPkg :: Policy-> candidate(“program-name”).
>下载所选架构的软件包.

这对Ubuntu Lucid很有效,但是使用Ubuntu Precise,我只能下载定义的第一个架构的软件包.对于其他两个体系结构,将没有安装候选者(方法AptPkg :: Policy-> candidate(“Package-Name”)不返回对象).

我尝试构建一个解决方法,我找到了一个解决方案,该脚本如何适用于所有三种体系结构,没有问题,精确:

如果我连续两次创建缓存对象(使用AptPkg :: Cache-> new),它就可以运行,脚本会为所有三种体系结构下载debian软件包:

my $cache = AptPkg::Cache->new;
$cache = AptPkg::Cache->new;

我确定问题与方法AptPkg :: Cache-> new有关,因为我检查了其他所有内容,可能导致问题的原因,两次.所有配置变量都设置正确,我甚至为每个架构获得了一个不同的Hash for AptPkg :: Cache-> new,但似乎我忽略了一些重要的东西.

我对perl不太熟悉,所以我问你们有没有人可以解释为什么脚本与变通方法一起工作但不是没有它.如果在脚本中有两次相同的代码行,那么看起来很奇怪.

解决方法

也许你遇到了这个错误https://bugs.launchpad.net/ubuntu/+source/libapt-pkg-perl/+bug/994509

一个脚本可以测试你是否受到影响.如果是其他问题,请考虑提交错误报告.

编辑:刚看到这是11个月大:/

大佬总结

以上是大佬教程为你收集整理的linux – Perl:libapt-pkg-perl AptPkg :: Cache->精确的新奇怪行为全部内容,希望文章能够帮你解决linux – Perl:libapt-pkg-perl AptPkg :: Cache->精确的新奇怪行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: