1

我正在尝试使用我在 puppet 中再次使用的 augeas 工具编辑我的 yum.conf 的排除部分。

问题是这样做:

# augtool
augtool> set /files/etc/yum.conf/main/exclude[last()+1] 'kernel*'
augtool> save
Saved 1 file(s)
augtool> set /files/etc/yum.conf/main/exclude[last()+1] 'python*'
augtool> save
Saved 1 file(s)
augtool> 

写出:

exclude=kernel*
exclude=python*

/etc/yum.conf文件中。

yum.conf 的 exclude 部分只支持空格分隔的列表。那么我怎样才能欺骗 augeas 在这里使用空间分离呢?还是我做错了什么?

覆盖整个排除选项不是解决方案,因为其中可能已经有其他条目。

4

1 回答 1

2

您在 Augeas 中遇到了一个记录为#275 的问题:yum.aug 不会将 'exclude' 或 'includepkg' 分解为 yum repositories 的序列。问题是镜头不会将值拆分为多个节点,而是将其视为一个带有空格的节点。

在 Augeas 中做到这一点的唯一方法是用一个空格分隔的字符串替换整行,这正是你不想做的:

set /files/etc/yum.conf/main/exclude 'kernel* python*'

我会在上面的票上提到这一点,所以我们知道有更多的需求,因为我们可能只需要接受打击,因为没有向后兼容性,就像在类似的情况下一样。

我们还没有它的补丁,但是一旦我们这样做了,您就可以在您的系统上使用更新的 yum.aug。将它放在下面/usr/share/augeas/lenses将覆盖打包的版本。

于 2012-08-14T15:11:30.947 回答