一个基于Linux OS的环境应用程序可以在另一个Linux OS环境中运行吗?

时间:2017-03-17 22:46:41

标签: linux operating-system portability

我对Linux / Unix环境一无所知。所以为了理解我已经把这个问题提到了所有开发人员和Unix / Linux技术人员面前。

通过应用程序,我面向开发人员使用的IDE,尤其是:

  • Visual Studio
  • IntelliJ Idea社区版
  • PyCharm社区版
  • 的Eclipse
  • 开发人员,游戏玩家和网络工程师使用的其他外围应用程序

对于一些有经验的Linux用户,我的问题可能毫无根据。但请考虑我是Linux的初学者。提前谢谢。

1 个答案:

答案 0 :(得分:0)

术语"应用程序"这些天是一个非常模糊,模糊的人。它没有描述具有某种内部结构的一些工件以及如何调用它的方式,而仅仅描述了它可以被“使用”的一般事实。

不同类型的应用程序在今天的系统中广泛使用,这就是为什么我要求澄清你对术语"应用程序"在评论中。你给出的例子是多种多样的,虽然它们看起来很可比。

对您的问题的正确和一般性答案将是:

  

如果该环境提供必要的前提条件,则可以在不同的基于Linux的环境中使用一个应用程序。

因此,您的问题的核心是转向基于Linux的不同风格的系统是否提供类似的执行环境。实际上,将该问题扩展到操作系统是有意义的,从应用程序的角度来看,今天的替代方案之间的差异相对较小。

更详细的答案必须在不同类型的应用程序之间有所不同,或者在不同的前提条件之间更好。这些可以从构建应用程序的架构平台派生出来。以下是有点简化,但应该表达实际情况:

以IntelliJ IDEA和Eclipse IDE为例。两者都是基于Java的IDE。 Java可以看作是一种抽象层,它在不同的系统上提供非常相似的执行环境。因此,两个IDE通常可用于提供此类" Java运行时环境的所有系统,但在必要时将存在行为差异。这些差异要么被编程到IDE中,要么源于某些组件(例如文件选择对话框)实际上不是应用程序的一部分,而是选择的平台。当然,它们在不同平台上的外观和行为可能不同。

然而,另外一个方面在这里很重要,特别是在考虑基于Linux的环境时:今天被称为" Linux"的多样性。与MS-Windows或Apple的MaxOSX等纯操作系统不同,它们都遵循集中和限制性控制的方法,我们发现各种Linux风格的差异远远超出组件版本和可用性。选择自由允许灵活性,但在结果中也存在稍微复杂的现实。这意味着不同的Linux风格确实提供了不同的环境:

  • 不同的硬件架构,与MS-Windows和MacOSX不同,该系统不仅可用于基于intel x86的硬件,还可用于各种可能120种完全不同的硬件架构。
  • 图形用户界面(GUI或桌面环境,因此窗口,面板,按钮......)是Linux(Unix)世界中操作系统不可或缺的一部分,但是单独添加。这意味着你可以选择。
  • 不同Linux风格的安装中可用的基本组件数量差别很大。例如,有完整的,肥胖的桌面风味"比如openSUSE,RedHat或Ubuntu,但也有简约的变种,如Raspbian,Damn Small Linux,Puppy,Scientific Linux,专门用于某些任务的发行版,如防火墙,甚至是为洗衣机或月球火箭等嵌入式设备量身定制的变体。显然,它们为应用程序提供了不同的环境。它们只共享相同的操作系统核心,即内核",这就是名称" Linux"实际上只是指。
  • ...

然而,鉴于所有这些多样性与它的积极和消极方面,Linux社区一直是非常聪明,积极和精心设计的解决方案来处理特定情况。这就是为什么现在所有现代桌面目标发行版都配备了强大的软件管理系统。它控制软件包之间的依赖关系,并确保在尝试安装某些软件包时满足或解决这些依赖关系,例如在您的示例中添加IDE。因此,如果您尝试安装上面提到的两个基于Java的IDE中的一个,系统将注意安装一个工作的Java环境。但是,如果要为分发准备好要安装的软件包,该机制才有效。这就是基于Linux的系统的使用与其他操作系统的显着不同:这里介绍了存储库,如何搜索,选择和安装系统的可用和可用的软件包,以及在这里被覆盖。基本上:如果一个包的制作者做了他的家庭作业(或其他人为他做的)并且正确地"包"产品,然后正确解决依赖关系。但是,如果生产者只转储原始文件堆,可能作为ZIP存档并坚持使用" wild"安装通常在例如基于MS-Windows的系统上完成,因此通过将管理权限交给某些捆绑的"安装程序"来将文件写入本地文件系统。脚本可以做任何想做的事情(包括破坏和毁坏或腐败)系统被执行,然后系统软件管理被绕过,结果往往被打破"。

然而,没有理智的Linux用户或管理员会遵循这样的路径并安装这样的软件。这将表明完全不了解自己的系统如何实际运作以及随之而来的放弃所提供的所有优势和舒适度。

简化复杂的故事:

  

"应用程序"通常可以可以在不同的基于Linux的环境中使用,如果该应用程序以合适的方式打包,并且该系统提供应用程序提出的运行时环境等要求。

我希望能够揭示一个非常微不足道的情况; - )

玩得开心!