Установка пакета с параметрами, запрашиваемыми в кли

Скажем, мне нужно установить пакет, используя dpkg -i, который будет запрашивать у пользователя некоторые значения, такие как имя пользователя и пароль.

Я легко могу сделать это из терминала и приступить к установке.

Но, следуя этому плану, я не могу автоматизировать установку, например, если я хочу написать скрипт для установки пакета, который принимает параметры в интерактивном режиме.

Поэтому мне нужен план установки dpkg, который является интерактивным (запрашивает имя пользователя и пароль), но все же может быть вызван из сценария, чтобы процесс установки был автоматизирован.

Как я могу пойти по этому поводу? Есть ли альтернативы?

3
задан 17 March 2018 в 20:54

2 ответа

Для таких вещей вы можете написать expect скрипт. Это не очень сложно справиться.

Сначала вы должны установить интерпретатор:

apt-get install expect

Затем вы можете написать что-то вроде этого, например:

#!/usr/bin/expect -f
set timeout 30
set password "pass"
set username "user"

#run the command
spawn dpkg -i package.deb

# Look for username prompt
expect "*?sername:*" #<--- this statement is important it wait's for a prompt "username:"
send "$username\r"

# Look for passwod prompt
expect "*?assword:*" #<--- the same with the "password:" prompt
send "$password\r"

#dpkg -i continues

Сценарий, конечно, должен быть исполняемым. Expect идеально подходит для управления интерактивными терминальными программами через скрипт (ssh, ftp, ...)

0
ответ дан 17 March 2018 в 20:54

Вы можете создать файл предварительной конфигурации, используя инструменты из пакета debconf-utils. Вы можете создать файл предварительной конфигурации вручную с помощью:

<owner> <question> <type> <value> 

или в качестве примера:

my-package username string Bob
my-package password string I$aN1ceGuy

Проще установить его на свой компьютер и запустить:

debconf-get-selections | grep my-package
[ 118] Используйте выходные данные для создания файла.

Когда у вас есть файл, используйте:

debconf-set-selections <filename>.  
dpkg -i my-package

Параметры, указанные в имени файла, будут использоваться по умолчанию, и пакет будет установлен без вывода сообщений.

http://www.debian.org/releases/stable/i386/apbs03.html.en

0
ответ дан 17 March 2018 в 20:54

Другие вопросы по тегам:

Похожие вопросы: