可以在同一台计算机上安装多个 Linux 发行版。每个可执行文件的格式应该相同。因此,我想在一台计算机上使用多个发行版,并可以从所有发行版访问 Skype、Chrome 或 Spotify 等一些应用程序。我不想浪费时间和磁盘空间将它们单独安装在发行版上。我只想使用现代发行版,例如 Ubuntu、Mint、Fedora、Solus、Manjaro 等。
man hier
表达/usr/local
为文件夹是站点本地程序通常所在的位置。我可以用其中的内容创建一个单独的分区/usr/local
并将其安装在每个发行版上。请告诉我这是否是合适的文件夹。
安装相应的文件夹后:
- 在发行版之间共享可执行文件需要什么(权限、UID、GID)?
- 是否可以在一个发行版上安装一个软件并在另一个发行版上运行它?
- 一个发行版上的软件包升级是否会在其他发行版上可见?
- 删除该软件包在其他发行版上是否可见?
- 我应该安装更多文件夹,例如
/home
、/usr/share/games
、/usr/share/locale
、/usr/bin
、 、/lib
或/opt
吗/var
? - Flatpak 和 Appimages 怎么样?
答案1
据我所知,您希望拥有一个多重引导系统,可以一次引导不同的 Linux 发行版,但将相同的二进制文件保留在共享分区中。
您想要做的事情是不可行的,如果您尝试这样做,与单独管理每个发行版相比,您将花费 10 倍的时间。你在这里打开了一罐巨大的蠕虫。
是否可以在一个发行版上安装一个软件并在另一个发行版上运行它?
一般来说,没有。每个发行版的 Linux 可执行文件的编译方式都不同。它们依赖于特定安装库的特定版本。您可能能够在所有发行版上运行不特定于发行版的通用软件二进制文件,但即使是不使用外部库且仅依赖于内核的程序也将依赖于内核版本,这与发行版有很大不同发行版(例如,Fedora 使用比 RHEL 或 Ubuntu 先进得多的内核版本)。更不用说根据发行版的不同,相同的内核版本可能会使用不同的配置选项来构建。
在发行版之间共享可执行文件需要什么(权限、UID、GID)?
这是一个太宽泛的问题。例如,两个不同发行版中的相同包可能需要在不同用户下运行。因此,根据软件和发行版的不同,要求也有所不同。
一个发行版上的软件包升级在其他发行版上是否可见?
删除该软件包在其他发行版上是否可见?
不,每个发行版都有自己的包管理器和包格式,并且彼此不兼容(另请参阅这个问题:为什么 Linux 没有一个真正统一的包管理器?)。试图将它们混合起来会造成混乱。从源代码编译每个软件以避免与软件包管理器打交道意味着打开另一罐蠕虫。
关于有关安装点和共享分区的问题,请注意,仅/home
在不同发行版之间共享分区就足够棘手了,如本问题所示:不同的 Linux 发行版共享相同的 /home 文件夹?
答案2
不,只有 /usr/local 和可能的 /opt 可以安全共享。
不是 /home,因为点文件可能在发行版之间不兼容。 (但您可以在其他地方挂载 /home 以使文件可用)
不是/usr/share,因为那里的文件与体系结构无关,但与版本无关。
所有其他目录也都在您的发行版的管理之下,因此共享它们会导致冲突。
答案3
AppImage 可以安全地在不同发行版之间共享,因为它们不会更改系统中的文件。事实上,这是 AppImage 格式的要点之一 - 您下载应用程序一次,然后可以在任何发行版上运行它,而无需重新下载相同的应用程序。
您可以将 AppImage 存储在您想要的任何分区上,包括网络共享。