两种不同的Linux安装差异的工具或技术


10

爱因斯坦(Albert Einstein)报价

精神错乱:一遍又一遍地做同样的事情,期望得到不同的结果

通常,Linux令我发疯,因为我一遍又一遍地做同样的事情,并且每个盒子都得到不同的结果。(请参阅我之前的问题)。

对我来说,最大的困惑是要接管别人安装的计算机(与网络托管公司签约时就是这种情况)。您只是不知道要处理什么。

我可以在Linux(Ubuntu)的安装程序上运行某种巧妙的差异工具,以使我了解该计算机如何偏离默认安装程序吗?

即,可以为我显示一系列将令人惊讶地执行的命令的列表,从而避免了反复试验的方法。


4
您将不会获得“行为异常的命令列表”。软件无法预测您会发现什么令人惊讶。
吉尔(Gilles)'所以

谢谢。这些答案使我对如何建模接管别人安装的计算机时需要考虑的相关差异区域有更好的理解。到目前为止,我们在以下方面有所不同:安装的软件包运行的服务配置文件系统类型。我想知道是不是还是列表无限?@Gilles-是的,由于对Linux的了解有限,我也很难预测自己会“感到惊讶”的事情!
2011年

1
列表是无限的。不是Linux的示例,而是前一阵子,Visual Studio不会在特定计算机上显示一些对话框(没有错误,只是控件应该在的空白处)。原来是由于安装了太多字体。这个故事的寓意是,总是有惊喜潜伏在角落。
吉尔(Gilles)'所以

Answers:


10

只要我有一个良好的参考系统而有一个错误的参考系统,我就会尝试将它们与vimdiff进行比较。我比较的内容因问题而异,例如

1)在包级别比较服务器时,我在每台服务器上创建包的排序列表,将结果发送到文件并进行比较,例如

在server1上:

dpkg --get-selections|sort > server1_packages

在server2上:

dpkg --get-selections|sort > server2_packages

将两个文件都复制到同一台计算机上并进行差异化(或vimdiff)化。

2)列出示例1中正在运行的服务

sysv-rc-conf --list|sort > server1_services

sysv-rc-conf --list|sort > server2_services

...等等,然后vimdiff这些。

3)例如,如果要对与Apache不一致的配置进行故障排除,请复制配置文件,并vimdiff复制这些文件等。


2
选项的良好摘要。将文件置于/etc版本控制下也是一个好主意,以帮助您跟踪发生的情况。etckeeper将为您做到这一点。
法赫姆·米莎

我收到“ dpkg:无法打开软件包信息文件`/ var / lib / dpkg / status”以读取:没有这样的文件或目录”。Centos和yum的关系如何?PS Nevermind,发现它“已安装的yum列表”
giorgio79

5

同一发行版的两个安装之间的大部分差异将在/etc。将/etc一台计算机的内容复制到另一台计算机上的临时目录并运行

diff -ru /etc /copy/of/other/etc

如果要比较具有默认安装的计算机,请从全新的默认安装(也许在虚拟机中)获取副本。

如果您可以从一开始就控制机器,请确保安装etckeeper以保持/etc版本控制。然后,您将能够准确看到发生了什么变化。

当然,会有很多差异。如果您还不知道在哪里看,这是研究行为上特定差异的错误方法。例如,假设命令adduser在两台计算机上的行为不同。那么最好的方法就是看adduser正在做什么;在两台计算机上运行它并进行比较。如果可以选择告诉它更详细(adduser没有),请使用它。从根本上说,在strace下运行程序,例如

strace -s9999 -efile adduser …

查看哪些文件adduser可以访问。


2

回到前面的问题,您的漂亮工具对我来说似乎是个好主意,但我从未听说过存在这样的野兽,需要检查诸如文件系统类型和大小之类的东西。

我在2002年遇到了一个现实生活中的例子:两个人在两个相邻的机架式服务器上安装了SuSE 7.3系统。他们付出了很多努力来使软件包在两台服务器上完全相同。不久之后,我们在开发某些软件时遇到了问题。它归结为一台服务器上的ext3文件系统,另一台服务器上的Reiserfs。Reiserfs上的普通“ ls”以词法顺序给出文件名,而ext3上没有。一个程序因文件名混乱而失败。


1

对于文件,用户,组,软件包,服务等,我使用了http://www.scriptrock.com ; 它对于一些服务器是免费的,并且为您提供了服务器之间差异的直观比较。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.