如果这个问题是在其他地方被问到的,我很抱歉,但我还没有找到针对我的具体情况的解决方案。
我正在尝试将已安装的软件包从我的适用于 Linux 的 Windows 子系统传输到我刚刚为 Ubuntu 18.04 LTS 设置的双启动。
需要澄清的是,我只对在新的双启动中安装相同的软件包和版本感兴趣,这样我就可以拥有与之前在 WSL 上相同的功能。
有人知道这是否可行吗?如果可以,有什么方便的解决方案吗?
答案1
最简单的方法:
- 确保 WSL 中的所有内容都是 100% 最新的(
apt update && apt upgrade
)。 - 在 WSL 中安装 aptitude(它是 APT/dpkg 的基于文本的前端,包名称为
aptitude
)。 - 在 WSL 中以交互方式运行 aptitude 至少一次。
- 将状态文件从
/var/lib/aptitude/pkgstates
外部复制到您用于传输数据的任何存储器中。 - 在本机 Ubuntu 安装上,安装 aptitude 然后将步骤 3 中的文件复制到
/var/lib/aptitude/pkgstates
。 aptitude upgrade
在本机 Ubuntu 安装上运行。
Aptitude 本身会记录上次运行时系统中所有软件包的状态。复制出这个文件并将其放在新系统上是 Debian(或 Ubuntu)系统上传输软件包列表最简单的方法,因为 aptitude 每次运行时都会尝试确保 APT/dpkg 状态与 aptitude 本身记录的状态相匹配。
请注意,你的原生 Ubuntu 安装可能已经拥有相当多的现有 WSL 安装所没有的软件包,在上述第 6 步之后清理时请注意不要意外删除其中的任何软件包,因为这样做可能会破坏你的系统。