适用于Linux的便携式应用程序?


12

这个问题让我开始思考-是否有适用于Linux的便携式应用程序?我知道许多简单工具可以以独立方式运行,但是我会遇到常见Linux发行版的安全性限制吗?

考虑到大多数默认Linux系统上工具的可用性等等,是否甚至需要这样做?

编辑:澄清一下,我正在寻找可以在现有Linux系统上运行的应用程序-如果不需要,我不想随身携带整个操作系统。

Answers:


7

大多数使用GNU工具链的应用程序都可以从这样的源代码中构建:

./configure --prefix=[directory which will contain your 'portable' application]
make
make install

然后移至具有兼容库的另一台计算机。

Linux没有注册表,通常不需要真正安装“许多”应用程序,而是可以从源代码中构建它们,因此使“适用于Linux的My Specialy Portable©应用程序”毫无意义,因此我认为没有人关心。

只需查看此问题最高答案,您就会了解使applicatins成为“便携式”“ usefull”的愚蠢概念,仅在具有许可证管理的注册表和专有应用程序领域。


谢谢!我不确定之前是否很愚蠢,但是您真的把那点回家了;)
Andy Mikula 2009年

5

./configure技巧将对某些应用程序有效。但是,许多应用程序都将前缀编码为自身,然后在运行时使用它来查找支持文件。他们还需要能够加载其共享库文件(尽管LD_LIBRARY_PATH可以将环境变量设置为对此有所帮助)。但是,这样做的结果是,可移植的应用程序可能不太容易移植-它们将取决于位于指定的前缀。这可能会在许多地方使用(大多数现代发行版的安装介质在/media/DISKNAME),但确实会阻止应用程序真正可移植且与位置无关。

因此,最终的答案是,尽管并非不可能,但使便携式Linux应用程序充满了微妙之处。我怀疑这是造成它为什么没有像Windows那样多完成的主要因素。此外,公共计算设施(可带来大量便携式应用程序收益的地方)通常不运行Linux。大学实验室是一个明显的例外,但是您通常可以在此处的主目录中安装一些其他软件。


1

Linux for Traveler跟踪了此主题,并提供了一些技巧来绕开尚未针对Linux安装便携式应用程序的事实-可能是由于您提到的原因:如果您具有安装特权,则已经很容易添加新应用程序不需要使用便携式计算机。

  • 安装WINE并从PortableApps.com或其他地方运行应用程序。这似乎有些矫kill过正,但是它确实允许您使用已经安装的便携式应用程序。
  • 现有的Linux安装中运行Damn Small Linux (例如,在Ubuntu上)。如果您在给定的Linux系统上没有安装特权,则此选项很有用。


1

您可以检查Portable Linux Apps。只需下载可移植的二进制文件并使它们可执行即可。所有必需的依赖项都包含在二进制文件中。


1

为了使任何应用程序都具有可移植性,您可以在登录时进行放置在主文件夹中的符号链接。该应用程序会通过符号链接将偏好设置保存到它指向的任何位置,例如闪存驱动器。我已将其用于便携式Minecraft保存。


1

在现有Linux系统上运行应用程序的问题在于,经常会编译应用程序以使用共享库。有许多Linux发行版和许多版本的基本库。如果幸运的话,现有的Linux系统将具有相同的版本,并且您的应用程序将与正确版本的库链接。如果没有,它将不起作用。一种解决方法是使用静态链接库编译所需的应用程序,但这会导致程序规模更大。


1

关于您的问题的另一种说法是,如今的初创公司通常会先编写客户端代码,然后利用框架来为iOS,Android和Web合成客户端的繁重工作。这里的业务逻辑是可移植的,但是可以由该工具自动移植。这样的框架有很多,Meteor就是其中之一。

以此方式,在应用商店中找到的所有应用中,很大一部分都具有这种可移植的遗产。

为了进一步模糊这个想法,我们现在拥有WebAssembly,它使您可以使用越来越多的静态编译的传统服务器端语言编写浏览器代码(按定义是javascript),这些语言经过解析可以合成javascript以定位客户端。

您在询问有关Linux应用程序的信息,但是使用像Electron这样的工具,它实际上是一个围绕Node.js的GUI或命令行,因此便携式Linux应用程序的想法正在激增


0

场上有一个新玩家AppImage。应用程序打包为一个文件,并包含所有依赖项,因此无论基础分发如何,它们都可以运行。

AppImageHub上有一个应用程序图像存储库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.