使用“apt-get install sun-java6-jre”时自动同意许可协议

使用“apt-get install sun-java6-jre”时自动同意许可协议

我正在 ubuntu 机器上创建一个静默安装脚本,它还会安装其他软件包。我遇到的一个问题是 sun java 软件包需要手动确认许可协议。我是否可以自动执行安装,以便该过程不必等到我手动确认对话框?

答案1

我相信该软件包使用 Debconf 询问许可证。您可以更改 debconf 用于向您提问的前端,甚至可以将其设置为没有前端,以实现无人值守安装。以下是一篇关于它的简短文章:

http://www.debianadmin.com/debconf-debian-configuration-management-system.html

答案2

我使用以下方法自动安装 Unix 和类 Unix 系统上的大多数程序预计脚本。Expect 旨在通过脚本与其他程序进行交互,并且这些脚本非常容易编写。

例子:

#!/usr/bin/expect -f
sudo apt-get install sun-java6-jre
expect "Password:"
sleep 1
send -- "mypassword\r"
expect "[y/n]"
sleep 1
send -- "yes\r"

答案3

切换前端只会抑制问题 - 它仍然需要被告知。这篇博文覆盖得很好。

答案4

使用 shell 脚本时,请尝试使用 send 和 expect。请确保已安装它们。另请查看http://www.manpagez.com/man/1/expect/

#! /usr/bin/expect -f

apt-get install sun-java6-jre
expect "[y/n]"
sleep 1
send "y\r"

此脚本调用安装程序,然后等待它输出“[y/n]”。输出此信息后,脚本在休眠 1 秒后继续,发送“y”和新行“\r”。

相关内容