LXDhost 不会报告容器中的软件包

LXDhost 不会报告容器中的软件包

大家好,我让 Landscape 在 lxd 容器中运行。容器处于桥接模式。我将 lxdhost 添加到 Landscape,据我所知,它运行良好,连接正常。但是它没有报告其软件包,您可以想象,这对于补丁管理来说毫无用处。所有系统都运行 ubuntu 18.04。如果我手动运行 Landscape-package-reporter,我会收到以下错误:

sudo landscape-package-reporter 
[sudo] password for lxcuser: 
2020-01-17 14:38:53,220 ERROR    [MainThread] None
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 653, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/usr/lib/python3/dist-packages/landscape/client/package/reporter.py", line 92, in <lambda>
result.addCallback(lambda x: self.request_unknown_hashes())
File "/usr/lib/python3/dist-packages/landscape/client/package/reporter.py", line 498, in request_unknown_hashes
self._facade.ensure_channels_reloaded()
File "/usr/lib/python3/dist-packages/landscape/lib/apt/package/facade.py", line 265, in ensure_channels_reloaded
self.reload_channels()
File "/usr/lib/python3/dist-packages/landscape/lib/apt/package/facade.py", line 253, in reload_channels
version, with_info=False).get_hash()
File "/usr/lib/python3/dist-packages/landscape/lib/apt/package/facade.py", line 402, in get_package_skeleton
return build_skeleton_apt(pkg, with_info=with_info, with_unicode=True)
File "/usr/lib/python3/dist-packages/landscape/lib/apt/package/skeleton.py", line 131, in build_skeleton_apt
version.record, "Provides", DEB_PROVIDES))
File "/usr/lib/python3/dist-packages/apt/package.py", line 690, in record
return Record(self._records.record)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 724: invalid start byte

有趣的是,所有其他集装箱的包裹都报告正常,没有任何问题。

我查看了脚本,但由于我的编程知识很少,所以我找不到问题所在。

也许你们中有人有一个想法。

2023 年编辑:Veeam 似乎已经修复了这个问题。我现在使用的是 22.04 版本,横向版本是 23.03,无需进行任何自定义即可运行。

答案1

该问题(特别是位置 处的问题724)与 Veeam 软件包列表中的杂散 unicode 字符有关。/var/lib/apt/lists/repository.veeam.com_backup_linux_agent_dpkg_debian_public_dists_stable_veeam_binary-amd64_Packages我发现了这一点

我们已将此问题报告给 Veeam,因此它可能会或可能不会很快得到修复(我将更新此帖子)。

简单(但不是永久的)方法是删除 末尾的杂散字符。但是,更新软件包列表/var/lib/apt/lists/repository.veeam.com_backup_linux_agent_dpkg_debian_public_dists_stable_veeam_binary-amd64_Packages时,此更改将被覆盖。aptveeam

永久解决方案(只有更新才会覆盖)是在相关代码周围launchpad-client添加一个try/块except UnicodeErrorskeleton.py

我的博文了解有关如何执行此操作的更多详细信息。

相关内容