cer*_*cem 7 debian package-management
如果我有一个正在运行的 debian 系统,可以发出以下命令来获取已安装软件包的列表:
dpkg --get-selections > packages.lst
Run Code Online (Sandbox Code Playgroud)
但是现在我只有工作系统的根分区(完整系统备份)的完整备份,仅此而已。如何从这些文件生成已安装软件包的列表?
chroot 进入它,然后运行 dpkg 将是最简单的事情。见https://superuser.com/a/417004/20798对于如何得到一个工作/proc
,/sys
和/dev
在chroot环境。
由于您在备份之外有一个工作的 debian 系统,您可能只需使用
dpkg --admindir=dir --get-selections
Run Code Online (Sandbox Code Playgroud)
该dir
默认为/var/lib/dpkg
,所以就把路径备份的/var/lib/dpkg
。
不要忘记,dpkg --get-selections
它不会显示哪些包是手动安装的,哪些只是为了满足依赖关系而安装的(因此应该在不再需要时自动删除,因为您实际想要的包的较新版本具有不同的 deps,或者因为您清除手动安装的软件包。)
我使用 aptitude,它可以轻松地将所有内容标记为自动安装,然后将一些软件包标记为手动安装,直到您想要保留的任何内容都被自动删除。先从大元套餐,喜欢build-essential
的Debian的等价物ubuntu-standard
和ubuntu-desktop
,和类似的东西。在 aptitude 中,点击r
查看包的反向依赖项(依赖于它的包)。
归档时间: |
|
查看次数: |
2322 次 |
最近记录: |