首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较两台计算机的dconf文件,并将它们与“dconf dump”或“them”智能合并

如何比较两台计算机的dconf文件,并将它们与“dconf dump”或“them”智能合并
EN

Ask Ubuntu用户
提问于 2020-11-21 09:09:37
回答 1查看 231关注 0票数 3

我有几台计算机运行在桌面上,我希望合并它们的设置(然后保持它们的同步)。使用dconf dump /,我可以获得配置细节,但是比较输出(与meld)是没有希望的,因为显示条目的顺序是不一样的,因此手动、智能合并是不可行的。

或者,我可以使用gsettings list-recursively,它提供了一个列表,可以排序,然后进行比较,但是我不知道如何回写结果(这个文件格式没有类似于dconf load的命令)。

我认为可能的办法是:

  • dconf dump的输出进行排序(应该有一些实用程序,但我找不到)
  • gsettings write-many函数,作为gsettings list-recursively的逆函数)
  • gsettings列表转换为dconf dump格式
  • dconf dump列表排序。

现有工具最简单的是什么?考虑到讨论这里,我的目标是保持配置保持同步,这可能并不容易。

举个例子,我包括了我目前拥有的两种列表格式的简短部分:

gsetting生产(提取):

代码语言:javascript
复制
org.gnome.rhythmbox.podcast-source paned-position 180
org.gnome.rhythmbox.podcast-source sorting ('Feed', true)
org.blueman.transfer opp-accept false
org.blueman.transfer shared-path ''
org.mate.Caja.Sendto last-compress 0
org.mate.Caja.Sendto last-medium ''
org.gnome.evolution-data-server.calendar contacts-reminder-interval 15

dconf dump (不同的提取物):

代码语言:javascript
复制
[apps/light-locker]
idle-hint=false
late-locking=false
lock-after-screensaver=uint32 0
lock-on-lid=false
lock-on-suspend=false

[ca/desrt/dconf-editor]
saved-view='/org/mate/caja/'
window-height=600
window-is-maximized=false
window-width=800
EN

回答 1

Ask Ubuntu用户

发布于 2020-11-22 14:53:15

目前,我找到了一个简单的解决方案:

我发现从dconf收到的转储在更新时变化很小。因此,从最初加载转储开始,然后逐步更新配置并生成一个新转储就足够了。初始转储和最终转储可以与meld进行比较;合并是可能的。

我将此与ansible一起使用,将currentTargetDump复制到其他机器并加载。这使得所有的ansible host计算机都具有相同的配置。

在加载新配置之前,我将对当前配置进行转储。我可以用Meld比较当前配置和目标配置,并将更改合并到目标配置中,并将其写入到将来的目标配置中,作为分发到所有主机的未来目标配置。

看起来很简单,到目前为止运作得很好。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1294092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档