人们现在使用成千上万种不同的释放数以百计的Linux发行版.每个发行版都包含一组不同的预安装软件、库和内核配置。一个普遍存在的问题是,在一个发行版上创建的软件经常不能在其他发行版上运行,甚至不能在其他版本上运行相同发行版——由于软件、库和内核版本不兼容。
例如,如果您是一名在基于linux的操作系统上编写研究软件的科学家,那么您的同事通常很难在他们的计算机上安装、配置和运行该软件,除非他们正在使用相同的版本你正在使用的是同一个Linux发行版。软件移植性的缺乏使得同事们很难复制和扩展你的工作,从而阻碍了科学的进步。
下图显示了Linux发行版的家族树,时间水平排列;单击查看完整尺寸的图像或参阅这里的原始来源.注意,这个图只显示了时间和祖先关系,并没有说明每个单独的版本;理想的图表会将所有发行版的所有版本呈现为直线上的单个点。
现在把两个发行版X和Y想象成这个巨大树上的点。你在X发行版上开发的软件在别人的Y发行版上运行的可能性与图中X和Y的距离成正比:
三年前,作为我博士论文的一部分,我开发了一个软件叫做CDE这减轻了这种跨发行版软件不兼容的问题。
您可以使用CDE将您的软件及其所有依赖项打包为一种可移植的格式,这种格式可以在几乎任何Linux发行版在您使用的发行版的大约5年内发布。(我在第2.3节描述了警告和限制这个研究论文.)
让我们通过放大Linux发行版家族树来可视化CDE的好处。下面的(超长!)图表是2006年到2011年发布的发行版树的一个切片。
如果您使用CDE在这个图中的任何发行版上打包您的软件,您就可以立即在图中的任何其他发行版上运行打包的软件.简而言之,CDE使您的软件可以在五年的时间内在数千个Linux发行版之间移植。
CDE是免费的开源软件,在GitHub上.尽管CDE是由一个研究生(我!)作为一个研究项目创建的,但我很高兴在过去的三年中有成千上万的人使用CDE来打包他们的Linux软件,包括:
不幸的是,我不再有时间维护CDE,但我希望这个项目以某种形式保持活力。参观CDE网站和阅读研究论文要学习更多的知识。
非常感谢开发这么好的项目。CDE是一个很好的工具,我已经使用了一年半,节省了很多时间。我学到的重要经验是保持我的内核版本老;-)
显示1评论