对于专有软件使用者来说,当需要升级到一个新版本的时候,并没有多少激动的感觉。因为这种升级通常是为一些补丁修复或微小的功能升级来掏钱买单。
即使不从金钱方面考虑,这种升级也可能会带来时间上的较大浪费,例如备份文件、卸载老版本并安装新版本等。与之形成鲜明对比的是,Linux用户期望升级时间的到来就如同期待他们的生日到来一样。举个例子来说,对于一个新版本的 KDE或Gnome,其中比较酷的新功能和用户体验都是免费的。和升级Windows软件所不同的是,Linux程序升级通常是通过操作系统本身来处理的。
Linux用户通常可以休闲的坐等升级管理器自己来完成这个任务。Linux应用程序的升级时间通常就是用户放松的机会。开源软件开发者送给他们的用户一个可以不断带来惊喜的礼物。
一、用户驱动是开源的最大优势
Vyatta负责战略和市场的副总裁Dave Roberts表示,“大多数开源项目会非常迅速的推出新版本。这个过程是社区推动式的,当然有时候也会有商业化公司参与其中。所以用户往往会看到预期的新功能。但是通常不会对新功能感觉太意外。如果一个开发者经常与他的用户讨论,新功能通常很难是一个秘密。这个过程是非常透明的。”
对于一个开源项目来说,通常在用户和开发团队之间会有不断的讨论或交流,这会让产品用户做好是否需要升级的准备。相比之下,专有软件公司是在它们自己的意愿的驱动下开发产品,而不是用户的直接参与。
一个新版本的专有软件产品进入市场通常需要花费12到18个月的时间。而开源软件则可能每个月都会看到几个不同的版本升级。
在开源世界中,用户更靠近开发。升级通常更细化,Roberts表示。新版本发布的成本要小的多,通常只是贴出供用户下载的新版本地址,不用再刻录成光盘或进行包装。
二、升级频繁带来的潜在影响
尽管用户通常期望在他们喜欢的应用程序中看到更频繁的新功能“礼物”,软件开发者对于这一过程却往往抱着矛盾的观点。
“频繁发布新版本是一把双刃剑。软件开发者一直在对他们的应用程序进行修正和打补丁。不利的一方面是,开发者并不希望总是在进行升级,”开放解决方案联盟(Open Solutions Alliance,OSA)的创始人之一,JasperSoft公司的首席技术官Barry Klawans表示,“开源中的商业化厂商通常不愿意频繁的进行这种升级。”
在Linux中的升级过程通常被认为是相当完美的。在很多Linux版本中,对操作系统的升级是通过一个类似微软的升级管理器来自动完成的。软件应用程序可以通过升级管理器来进行跟踪,这样用户通常除了点击以下OK按钮和输入密码外,通常不需要做任何其他的事情。
在大多数Linux发行版中,开源软件(通常被称为“软件包(packages)”)已经按照要求的格式被社区加入到软件库中。其安装脚本可以自动被操作系统处理,并且被增加到升级管理器程序列表中,以自动检查可用的更新。
但是,对于来自社区软件库之外的应用程序包,用户不得不手动的运行安装脚本。最初的安装和将来的升级可能只能通过用户在终端窗口中输入命令来实现。这多少有点让我们回忆起微软的DOS时代。
“某些软件公司在处理升级的时候做的比较好,它们多数是商业化的公司,”Klawans表示。
三、升级周期需根据实际情况选择
有的时候,这个升级过程可能给用户带来一些影响。在决定什么时候一个升级需要用户移除早期的版本并重装新版本,没有一个权威的指南可以让开源开发者来遵循。举个例子来说,Ubuntu 7.10要求用户已经安装了最新的老版本。如果中间忘记了更新——当新版本更新的非常快的时候这种情况是非常有可能发生的——意味着用户不得不执行两次或者更多的操作来实现更新的最新版本。
“某些产品的升级安装起来缺乏用户友好性,因此用户不得不开始一个完整的重新安装过程,”Klawans表示。
当这种现象发生的时候,它通常是应用程序中的基础性设计发生变化所导致的,而不是没有考虑到对用户所造成的不便性。通常这不是一个开源的问题。
“开发软件有时升级的步伐过于迅速步伐,尤其是对一些Web 2.0应用程序来说,会导致难以相信的复杂组件,”HP负责开源和Linux的首席技术专家Bdale Garbee表示。“而对用户来说,不得不解决一个产品的某些不方便的升级问题,这促使他们要分析他们的需要,然后决定什么时候以及是否要执行这个升级。”
当需要重装一个操作系统和大型软件的时候,最终结果应该是可以获得更好的性能。举个例子来说,对于Linux来说,对内核和其他操作系统基本部分的升级是通常与功能无关的。目标是稳定性、健壮性和可扩展性,因此向前兼容还是不错的,Garbee解释道。
已经具有一段历史的软件通常在升级周期的选择上表现不错,开发者可以让升级变得尽可能的无缝衔接,Garbee表示。“对于Linux你通常不会像在Windows中那样遭遇DLL痛苦。在Linux中程序中的依赖性受到了更好的控制,”他表示。
对于用户来说,开源是一个可以再生的礼物,Garbee表示。
四、开发者选择更灵活的产品升级模式
但是,在某些软件中,强制性的重新安装也确实是存在的。举个例子来说,开发者做出修改界面的决定,当升级的时候就需要重新安装。人们往往会把开源软件和同类型的专有软件对手在用户体验上进行对比,这就使得开源软件也会做出一些重大的改变,Garbee表示。
JasperSoft会在任何必要的时候发布新的开源版本。专业版则每年升级两三次。这样可以让用户获得最新版的开源测试版版本,Klawans表示。
在进行一个重大升级或功能变化的时候,这个产品可能需要一个完全的重新安装。而当开源公司提供给用户一个从同一个应用程序的免费版到商业化版本的升级的时候,一个临时性的升级则会发生,这个公司通过安装脚本的方式来处理它。
“应用软件厂商真的需要对提供安装脚本加以重视,或者至少有一个简单的导出方式来保存和重新加载现有的数据。这在客户关系管理软件中显得非常关键。”他表示。
Vyatta则使用了一个基于时间的发布周期。公司每年两次发布重大的升级,每隔8到12个星期则发布一些小的版本,Roberts表示。
“这个过程对我们来说是量身定做的。我们能够以更小的规模来向前发展的更快,”他如此表示。