apt-get install -y 不适用于许可协议,如何实现自动化?

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

这要求我选择“确定”,然后选择“是”。

答案1

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

  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"
    

答案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

相关内容