linux – 如何列出重新创建一组已安装软件包所需的最小Debian软件包集?

有没有办法获得dpkg,apt-get或aptitude来生成需要在第二台机器上安装的软件包列表,以复制第一台机器上安装的软件包?

即如果我安装了普通的ubuntu服务器,在安装时选择了sshd选项,那么安装build-essential我希望输出看起来像:

#ubuntu 9.10 server
openssh-sshd
build-essential

据我所知,所有可用的打包工具都会在包装盒上生成一个详细的包装清单.我对openssh libs,ld,gcc以及sshd和build-essential引入的所有其他软件包不感兴趣,因为它们将在我安装sshd和build-essential时安装.

我想看到我需要安装的软件包列表,以便在另一台机器上重新创建我当前的软件包集.

这可能吗?

解决方法

deborphan,有点.它构建了系统中每个包的列表,找出了什么取决于什么,并打印出没有任何依赖关系的包.认情况下,它只打印库(以便于查找由其他软件包安装且不再需要的库,因此名称).它主要可以选择你想要的东西.我这样运行:

deborphan -anp required –no-show-section

-a指定所有包(不仅仅是库)
-n忽略“建议”或“推荐”依赖性检查(即只是“取决于”)
-p required列出所有包,尽管优先级
–no-show-section并不表示它所在的debian的哪个部分,只是一个很好的格式化功能,你可能会发现它对于构建列表很有用.

现在,它将错过包,因为一些包具有循环依赖性.但那些往往相当罕见,所以它应该让你足够接近.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...