我进行了很多搜索但没有成功。我的问题是我想在 Arch Linux 中安装应用程序的多个实例。更具体地说,我想要 2-3 个最新的 Skype 实例。一台用于我的工作,一台用于个人使用,一台用于大学。它们每个都应该有不同的目录、不同的桌面条目和不同的设置。这不仅仅是 Skype 的问题。在windows中这很容易。您只需将安装路径设置为不同,您就会有另一个实例。但在 Linux 中我不能这样做。我也想知道如何为其他软件做到这一点。
我认为应该通过定制包装来完成,但不知道从哪里开始!
谢谢
答案1
我想也许你正在寻找错误的东西。程序(二进制文件)和设置是非常不同的东西。相同的程序二进制文件可用于不同的设置(例如,对于不同的用户)。
在 Windows 上,曾经有一种趋势是将应用程序的设置存储在“程序文件”中,但这种情况越来越不常见。通常,用户应用程序的设置存储在 Windows 和 Linux 上的主目录中的某个位置。在 Linux 上,相当于将设置存储在应用程序目录中,即将它们存储在/etc
.这意味着即使您安装了两次,最终所有内容都会指向相同的设置。
您正在寻找一种使用不同设置运行应用程序两次的方法。
环境HOME
变量通常设置为您的主目录的位置。使用主目录进行设置的应用程序可能只读取HOME
环境变量。在运行应用程序之前更改它应该足以满足这些需求。您可以在命令行上执行此操作或编写一个简单的 shell 脚本来执行此操作。
#!/bin/bash
mkdir -p ~/.work
export HOME=~/.work
skype
如果这不起作用,那么应用程序可能需要采取更极端的措施来设置和使用chroot环境。
答案2
我认为一种简单而干净的方法是从**不同的用户**启动它们(应用程序)。
这样执行的二进制文件是相同的(来自/usr等)但$HOME
有所不同。
该解决方案有一些重要的缺点,可能与您的需求不兼容:
- 每个实例都需要一个新用户
- 不能分享轻松地在它们之间传输数据
一个进化这个概念的核心是使用以下方式启动应用程序虚拟机;
我将其视为先前解决方案的演变,因为它克服了上述问题:
- 可以通过以下方式轻松创建新实例克隆虚拟机
- 数据可以共享容易地VM之间以及VM与主机之间
缺点是对资源的要求很高,
但要记住,这是比率VM发明的上游!