我想知道,最近我决定从 Ubuntu 14.04 迁移到 XFCE mint linux,Ubuntu 中安装的游戏是否可以在 Mint 中运行?我已将我的主文件夹复制到外部硬盘驱动器上,我想知道我安装的游戏(战争雷霆)是否会在安装后将其所有文件复制并粘贴到我的主硬盘驱动器上后在 Mint 上运行薄荷?我了解我必须重新安装图形驱动程序。谢谢。
答案1
所有 Linux 发行版基本上都运行相同的软件。发行版的区别主要在于安装程序、软件安装机制,以及特定发行版上可能推荐或强制使用的某些系统组件(初始化系统、网络管理等)以及打包软件的选择。
大多数情况下,只要安装了必要的组件,在发行版 A 上运行的软件也将在发行版 B 上运行 - 大多数情况下图书馆。桌面/服务器发行版大多提供相同的库集(嵌入式发行版是另一回事)。然而,分发A的给定版本和分发B的给定版本可以包括不同版本的库。
发行版之间的不兼容性主要是由于库版本不同造成的。
Linux Mint 基于 Ubuntu 或 Debian(Ubuntu 又基于 Debian),但它们并不总是同时发布版本,因此您拥有的 Ubuntu 版本和您现在拥有的 Mint 版本可能不包含相同的库。
要检查程序需要哪些库,请查找可执行文件并运行ldd
对他们发出命令。您将看到如下输出:
$ ldd /bin/ls
linux-vdso.so.1 => (0x00007fff0938a000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ffbfb2c9000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ffbfb0c1000)
libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007ffbfaeb7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffbfab2c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffbfa928000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffbfb525000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffbfa70b000)
libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007ffbfa506000)
每行列出了程序所需的库,以及包含该库的文件的路径。如果您看到“未找到”,则意味着您没有安装该特定库(或者您拥有的版本不兼容)。通常libfoo.so.42
位于名称类似于 的包中libfoo-42
,但有时库的分组方式不同,库文件和库包可能具有不同的编号。您可以使用apt-file
命令查找包含特定文件名的包。
有时,您拥有正确版本的库 A,但程序 P 需要针对库 B 版本 1 编译库 A,并且您的发行版同时提供库 B 的版本 1 和版本 2,但仅提供针对版本 2 编译的库 A 版本这些问题可能更难诊断和解决。重新编译程序(如果有源代码)或库是一种解决方案,但并不总是那么容易。并行保持两个发行版(或发行版的两个版本)可以是另一种解决方案(在维护工作和磁盘空间方面具有非零但不是巨大的开销)。