Hof*_*ann 3 debian apt package-management
我的运行 Raspbian 的 Raspberry 崩溃了,但我想知道我在该 SD 卡上安装了哪些软件包。有没有办法在不实际启动系统的情况下检测到它?
Debian 的软件包数据库位于/var/lib/dpkg. 它们是文本文件,即使您没有 Debian 工具,也很容易手动解析。特别是,该文件/var/lib/dpkg/status包含每个包的一段信息(不仅是已安装的包,还有系统已知的一些其他包),以.Package: PACKAGENAME
cd /media/sdcard0/var/lib/dpkg
<status awk -v RS= '/\nStatus: install ok installed\n/ {print $2}'
Run Code Online (Sandbox Code Playgroud)
如果您不在 unix 或其他系统上使用awk或其他文本处理工具,您可以检查目录/var/lib/dpkg/info. 除了虚拟依赖包之外的每个包都有几个文件,至少包括PACKAGENAME.list.
如果您使用的是带有 的系统dpkg,您可以告诉它查询一个非正常数据库的数据库。
dpkg --admindir=/media/sdcard0/var/lib/dpkg -l
dpkg --root=/media/sdcard0 -l
Run Code Online (Sandbox Code Playgroud)