apt-get install -y不能与许可证协议一起工作,如何自动化?

对于大多数需要“是/否”答案的软件包,这对我来说工作的很好:

sudo apt-get install -y .... 

但是,如果你需要一个让你接受许可证的包,你怎么自动同意呢?

例如,sun java:

 sudo apt-get install -y sun-java6-bin sun-java6-jdk sun-java6-jre sun-java6-plugin 

这要求我select确定,然后是的。

有一些方法可以做到这一点:

  1. 在安装前通过执行以下命令预先回答debconf

     echo sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true | \ /usr/bin/debconf-set-selections 
  2. 使用expect

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