有没有办法获得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的哪个部分,只是一个很好的格式化功能,你可能会发现它对于构建列表很有用.
现在,它将错过包,因为一些包具有循环依赖性.但那些往往相当罕见,所以它应该让你足够接近.