Мы пытаемся создать сценарий установки sun jdk на Ubuntu 9.04, чтобы он автоматически принял лицензионное соглашение. Я видел кое-что в сети о создании файла, который ищет пакет, но ни один из них не был завершен. Кто-нибудь знает, как заставить это работать?
Пакеты Sun Java отслеживают, согласились ли вы с лицензионным соглашением с помощью Debconf. Вы можете обойти эту проверку, запустив
echo "sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
перед установкой sun-java6-jre
или любой другой пакет Sun Java, который вы хотите.
Я тестировал это в ubuntu 10.04 и отлично работает:
#!/bin/sh
DEBIAN_FRONTEND=noninteractive
echo "sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
echo "sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
apt-get install -y sun-java6-bin
Моя первая мысль - использовать пакет для вашего собственного дистрибутива, поскольку Java в любом случае компилируется, нет особых преимуществ, если вам не нужна очень конкретная версия. Если бы это было так, вы также могли бы создать свой собственный пакет.
Обычно я перенаправляю STDIN. Например:
/command/to/run <<_EOF
answer1
answer2
_EOF
Для особо сложных вещей альтернативой является ожидать.