![apt-get install -y 不适用于许可协议,如何实现自动化?](https://linux22.com/image/565861/apt-get%20install%20-y%20%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE%EF%BC%8C%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%8C%96%EF%BC%9F.png)
对于大多数需要回答是/否的包来说,这对我来说很好:
sudo apt-get install -y ....
但是如果您需要一个让您接受许可证的软件包,您如何自动同意这一点?
例如,sun java:
sudo apt-get install -y sun-java6-bin sun-java6-jdk sun-java6-jre sun-java6-plugin
这要求我选择“确定”,然后选择“是”。
答案1
有一些方法可以做到这一点:
debconf
在安装之前执行以下命令进行预先回答:echo sun-java6-jdk shared/accepted-sun-dlj-v1-1 select true | \ /usr/bin/debconf-set-selections
使用
expect
:#!/usr/bin/expect -f sudo apt-get -y install sun-java6-jre expect "[y/n]" sleep 1 send -- "yes\r"
答案2
对于任何包,您都可以使用
apt-get -y install <package> << 'EOF'
ok
EOF
如果你有多个步骤,例如
1. Ok in step 1
2. Enter Option 1/2
3. y/n
apt-get -y install <package> << 'EOF'
ok
1
y
EOF