linux软件可以在所有发行版运行吗,我的Linux二进制文件可以在所有发行版上使用吗?...

脚的答案:这取决于

如果您正在发布的二进制文件,假设的答案是“不”,除非你正在分发所有的库,它曾经与它包括(从地上爬起来,除非你是提供自成一体反正一个非常庞大的系统,这是烦人)或静态链接等效项。

...但是巫师和金钱,还有金钱巫师...

IBM有一些“通用的Unixish”安装程序,它们在我尝试过的所有地方都使我感到震惊:来自几代内核,OpenSolaris(或现在称为的),Solaris和BSD的几种Linuces。但是它们很大。他们提供的东西同样巨大。用这种方式不会发布任何精巧的赛车程序,只有您期望从IBM获得的大型企业型东西。

至于仅停留在Linux上,但在大多数Linuxdom上都能很好地工作,这似乎可以二进制形式进行,这可以从某些供应商处看到的各种“ for Linux(通用)”类型的二进制安装程序中得到了证明。这种方式发布了一些聊天,浏览器,游戏,元安装程序等,但是总是由大型供应商提供,他们可以花一些时间来解决这个问题。他们可以说“ for Linux”,并且普遍相信它会起作用,这真是令人惊讶,但是事实确实如此。

但...

我通过构建实用程序将软件作为源进行分发。我做这在C,二郎,Python和狡诈等,这给了我很多关于它是否将运行与否更多的灵活性,而这是很容易写一个buildscript是确保在构建时存在正确的事情,而不是确保在运行时一切就绪。一旦存在,如果分发源代码,则为程序编写自动更新程序将变得很简单:源代码通常比包含所有部门和其他精神错乱的二进制文件小很多。使用此方法,我在跨Unices(有时是Windows)中可靠地部署时并没有很多麻烦,但这有点麻烦。

足够的戏弄,武装自己!

当您像srsly srs一样认真对待要在Linux世界中顺利适应时,您可以分发C源代码或转向完全托管的环境来使用已经预先构建的令人讨厌的令人愉悦的语言。例如,如果您正在编写Python代码,则可以检查版本并知道您使用的CPython版本,并且通常希望在给定的Linux上存在一些兼容的版本(这比检查广泛的C库要容易得多。 / versions(您可能正在使用)。Erlang,Guile,Python,Perl,CL等都非常出色 这类部署的目标很简单,其中许多都有中央存储库,例如CPAN或pip(或其他),用户可以在其中运行命令以在需要时自己拉动签名源,并知道事情通常会按预期工作。

[附录:1. 即使Haskell通常也可以通过Cabal实现这一目标 -尽管我会在生产环境中谨慎行事。2. Erlang有完全不同的“发布”部署策略,可确保您的代码带有完整的环境。3. Python在虚拟环境方面走了一步。并非所有的运行时都对您有所帮助。]

关于Linux上的托管环境的最后一点令人震惊。而且,作为一项奖励,它使您可以定义更多一般性的依赖关系,无需您付出额外的努力即可自动解决它们,不需要为每个发行版编写程序包,并且您可以停止关心系统是32还是64位(通常,无论如何)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值