我有一个软件。它具有用于Windows的GUI设置和用于Linux的CLI install.sh。在执行时,它要求用户接受许可证,并在接受时,它会依次询问安装位置,密钥,服务器IP,端口以及其他一些选项。我想使安装无人值守,以便用户双击文件,下一步是安装软件。任何建议,提前谢谢。
答案 0 :(得分:2)
答案取决于您使用的InstallShield项目类型。我强烈建议使用Basic MSI。 InstallScript自定义操作没问题,但不使用InstallScript或InstallScript MSI项目类型。
假设上述情况,您可以创建安全自定义公共属性,以便可以在命令行中传递它们。您还可以创建自定义对话框,以便在交互式安装期间输入值。然后,您可以创建验证自定义操作,以防止两种情况下的错误数据。最后,您可以使用Registry,INI,XML等系统更改中的属性,以便可以在应用程序所需的位置应用它们。
您的静默安装如下:
msiexec / I foo.msi / qn INSTALLDIR = C:\ FOO KEY = 12345 SERVERIP = 10.0.0.1 PORT = 12345 / l * v install.log
还要确保理解MSI不会自动保留属性的概念。您需要一些AppSearch /系统搜索来检索存储的值,以便在升级/修补/修复方案中重复使用。
答案 1 :(得分:1)
您需要的是无声模式。请查看您的安装系统手册以获取此关键字。
许多安装系统都支持它 - 如果您尚未开始创建设置,我建议您使用NSIS(/ SILENT参数)或Inno Setup(/ SILENT,/ VERYSILENT)。 这些是免费的(开源)安装系统,它们非常强大。
小心这个功能 - 许多用户在点击应用程序图标时都会感到困惑,没有任何反应(没有窗口打开)。
答案 2 :(得分:0)
好的,我使用expect工具(免费)做到了这一点。这里install.sh是我想自动执行的文件,发送是我的选项,以回应安装过程中提出的问题。如果有任何问题,请告诉我。
!在/ usr / local / bin目录/期望
产生“./install.sh”
设置超时2
expect {警告:强烈建议您以root用户身份安装RVS。您是否希望以root [Y / n]}运行安装程序
发送“Y \ r”
发送“xxxxxx \ r”
expect {按Enter键阅读许可协议:}
发送“ENTER \ r”
期待{你接受许可协议[y / N]吗?}
发送“y \ r”
期待{你想在哪里安装工具[/usr/local/pkg/RVS/v3.1a]?}
发送“ENTER \ r”
期望{你想在哪里创建工具链接[/ usr / local / bin]?}
发送“ENTER \ r”
expect {你想在哪里创建图书馆链接[usr / local / lib]}
发送“ENTER \ r”
期待{你希望使用哪种许可证类型[N / f / a]?}
发送“f \ r”
期待{IP地址:}
发送“1.1.1.1 \ r”
期待{Port:}
发送“33 \ r”
期待{SERVERKEY}
发送“xxxxxxxxxxxx \ r”
expect {你想安装对GNAT Pro {6.0,6.1,6.4}的支持吗(你需要一个GNAT Pro许可才能使用这个功能)[y / N]?}
发送“y \ r”
期待{继续安装[是/否]?}
发送“y \ r”
产卵“rvsinfo”
互动