“克隆”服务器

“克隆”服务器

我最近接到任务,要为我的一台生产服务器(均为 12.04LTS)制作开发版本。如果我可以在我的云服务上创建映像,那就简单了。问题是,它们都托管在 2 个不同的云服务(firehost 和 azure)上。

我没有创建有问题的生产服务器,但我需要确保至少安装了所有相同的软件包。我尝试过:

dpkg --get-selections 

并对两个服务器的 dpkg 进行了比较,但由于此列表包含所有已安装的依赖项,因此这是一个相当大的列表,需要一段时间才能完成分类。

我猜有两个问题:

1.) 我是否以正确的方式处理此事?

如果是,

2.) 我可以获得已安装的顶级软件包的列表吗?

答案1

如果您希望对两者进行比较,并且有一个可移动的列表,您可以这样做:

dpkg --get-selections>new.txt

这将获取您的输出并将其发送到文本文件(“new.txt”)。从那里您可以使用grep搜索。例如:

grep '^linux*' new.txt

或者如果你只是需要软件包,可以快速将两者结合起来

dpkg --get-selections|grep '^linux*'> new.txt

单引号包含您要查找的内容,插入符号 (^) 使搜索以“linux”开头,星号 (*) 是通配符(显示 linux 之后的任何内容)。

所以linuxhappy.txt会显示,但happylinux.txt不会。如果您需要确切的包名称,请使用$而不是星号。

我不确定您所说的“顶级”软件包到底是什么意思。我假设您的意思是您只想获取可以安装的程序列表,然后使用apt-getaptitude或 Synaptic 解析依赖项。

在这种情况下,如果你看一下:如何列出依赖包(反向依赖)?您应该能够看到所有依赖项。如果您真的想查看每一个每个程序都有依赖关系apt-cache dump,但是这非常长。

相关内容