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