从 Live USB 中,并且不使用已安装的 Ubuntu 程序,如dpkg
、dpkg-query
、dselect
、aptitude
、apt-get
或任何其他程序(因为它们都已损坏Illegal instruction
),我如何 apt
读取作为列表读取的软件包列表,以便对已安装的软件包进行编目,稍后重新安装?
Reading package lists... Done
Building dependency tree
Reading state information... Done
本地包数据库在哪里?几乎是一个完美的答案:
/var/lib/dpkg/status
如果您更改包的状态,即安装它、删除它、标记它以执行某些操作,则由 dpkg 修改,...
我不想只列出“更改”的包,还包括依赖包、系统的整个状态等。它包含在
dpkg/status
?- 在另一个健康的系统上,该文件有大约 3800
Package:
个条目;在目标系统上它有 3600Package:
个条目,而在 Live USB 上它只有 2000 个条目。听起来不错,只是我担心它没有列出所有的包。
- 在另一个健康的系统上,该文件有大约 3800
我不是在寻找下载的
.deb
缓存,也不是保存临时数据文件的cache
fordpkg
/apt
——这些并没有给出完整的系统状态。/var/lib/apt/lists
似乎包含一个包源和包的列表,这几乎是完美的,除了很多解析涉及从中获取包名称列表。这是最好的选择吗?
该文件/var/cache/apt/pkgcache.bin
存在,但由于它是生成的二进制文件,我认为将其复制到全新安装是不够的。
见
man dpkg
:你可以不用担心了。如果包不在
status
,dpkg
则不知道。完全没有。顺便说一句,apt 所采用的“包列表”是另一回事:这些是它从
/etc/apt/sources.list
等源中下载的列表,并且位于/var/lib/apt/lists
. 这些包含有关存储库中软件包的信息,并且与本地系统无关。关于您当前的问题,您可以使用上面提到的选项使用实时系统
dpkg
读取该文件。--admindir