![复杂的软件安装文档程序或工具](https://linux22.com/image/484165/%E5%A4%8D%E6%9D%82%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85%E6%96%87%E6%A1%A3%E7%A8%8B%E5%BA%8F%E6%88%96%E5%B7%A5%E5%85%B7.png)
我们必须分发和维护一个有点复杂的软件应用程序,其安装程序不会(也不期望)在任何类型的服务器上安装和配置所需的每个部分。
到目前为止,我一直是安装的负责人,我知道让安装顺利进行的所有陷阱和技巧。现在我们有更多的人想要接受此过程的培训,并希望在他们学习期间尽量减少我手把手指导他们的需要。
问题是,针对所有可能情况的线性文档远非理想,因为该过程中存在许多可能的路径,具体取决于起点(Windows Server 2003 32/64 位、Windows Server 2008 32/64 位、SQL Server 2005 32/64 位、Windows XP Pro SP2/SP3、.NET 2.0 SP1/SP2)以及每种组合中可能出现的所有问题。
因此,我正在寻找一个专门针对这种情况而设计的工具,希望能够根据一组输入参数(机器的配置)生成文档,或者更好的是,能够根据正在发生的事情指导安装过程的工具,并且可以记录新问题并将其映射到已知的解决方案。
我可以设想编写这样的工具,但这看起来不是一个(非常)简单的问题。这似乎是知识库和专家系统的交集。
那么,你会怎么做?假设失败,并拥有大量线性文档和像知识库一样的常见问题解答?
答案1
好吧,我有两条意见。第一条是你想听到的(尽管你可能没想到这一点)。
游戏书引擎(http://freshmeat.net/projects/gamebook-engine) 听起来这可能是你想要的,因为你本质上是在谈论一种“创造你自己的冒险”的过程。如果你在 Windows XP 上安装,请转到第 45 页,如果你攻击德鲁伊,请转到第 26 页。
第二条评论:你可能用错了方法。你真正应该做的是为这个安装程序编写一个包装器,它足够智能,能够了解你的平台,并具有该平台所需的特定指令。这(可能)需要做更多的工作,但从长远来看,这听起来会节省每个人的时间。
答案2
线性安装的问题在于缺乏幂等性,或者缺乏以相同结果一遍又一遍重复执行任务的能力,并且如果发生故障,它会在发生故障的地方继续进行(当然,在修复故障之后:-))。
如果手动安装中途失败,您通常必须重新开始整个过程。如果再加上人为因素,灾难可能就会发生。
对于 Windows 世界,我没有答案,但 Unix/Linux 有两个出色的配置管理工具,它们是为幂等性而设计的:Chef 和 Puppet。虽然有些东西可能需要线性安装程序,但如果发生意外情况并且某些东西没有完全安装,这些工具将从中断的地方恢复。
答案3
我可能会采用 wiki 方式:每个配置问题使用一个 wiki 页面,并根据答案链接到其他 wiki 页面。安装流程将通过遵循相应的链接来表示。当出现新问题时,您可以创建新的 wiki 页面。
然后,根据 wiki,您可能能够以一种好的方式打印出 wiki 页面,并按照不同服务器安装所需的顺序组合它们。
答案4
为什么不创建一个可移植的 HTML 页面,其中包含可以在带有向导式导航的浏览器中打开的链接,IE“如果您有 Windows 2003 服务器,请单击此链接”等等。