将软件包从 Windows 子系统传输到 Ubuntu 双启动

将软件包从 Windows 子系统传输到 Ubuntu 双启动

如果这个问题是在其他地方被问到的,我很抱歉,但我还没有找到针对我的具体情况的解决方案。

我正在尝试将已安装的软件包从我的适用于 Linux 的 Windows 子系统传输到我刚刚为 Ubuntu 18.04 LTS 设置的双启动。

需要澄清的是,我只对在新的双启动中安装相同的软件包和版本感兴趣,这样我就可以拥有与之前在 WSL 上相同的功能。

有人知道这是否可行吗?如果可以,有什么方便的解决方案吗?

答案1

最简单的方法:

  1. 确保 WSL 中的所有内容都是 100% 最新的(apt update && apt upgrade)。
  2. 在 WSL 中安装 aptitude(它是 APT/dpkg 的基于文本的前端,包名称为aptitude)。
  3. 在 WSL 中以交互方式运行 aptitude 至少一次。
  4. 将状态文件从/var/lib/aptitude/pkgstates外部复制到您用于传输数据的任何存储器中。
  5. 在本机 Ubuntu 安装上,安装 aptitude 然后将步骤 3 中的文件复制到/var/lib/aptitude/pkgstates
  6. aptitude upgrade在本机 Ubuntu 安装上运行。

Aptitude 本身会记录上次运行时系统中所有软件包的状态。复制出这个文件并将其放在新系统上是 Debian(或 Ubuntu)系统上传输软件包列表最简单的方法,因为 aptitude 每次运行时都会尝试确保 APT/dpkg 状态与 aptitude 本身记录的状态相匹配。

请注意,你的原生 Ubuntu 安装可能已经拥有相当多的现有 WSL 安装所没有的软件包,在上述第 6 步之后清理时请注意不要意外删除其中的任何软件包,因为这样做可能会破坏你的系统。

相关内容