Hi there,
zypper should now (version 0.8.3+) finally be ready for use in automated
processes by providing several new options:
--non-interactive
global option - when using this option it is guaranteed that zypper
will not hang prompting
for an answer on stdin, or in an endless loop. Zypper will
automatically answer the questions with default
answers, influenced by some other options
--no-gpg-checks
global option - always choose to continue if some of the gpg checks
fails, e.g. a repository file is not
signed and should be, file is signed and gpg check fails, etc.
--auto-agree-with-licenses
special option for install and update commands. By using this, user
declares he/she agrees with terms
of licenses the command will install, and zypper will automatically
say yes to license confirmation
prompt. This is useful for people installing the same set of packages
on multiple machines (by an automated
process) and have read all the licenses before.
LIST OF PROMPTS:
The following should be a complete list of cases where zypper needs user
interaction together with the answers in non-interactive mode. All the
additional options mentioned here have higher priority over
--non-interactive, so if used, the answer the imply are automatically
used even if --non-interactive isn't used.
gpg callbacks: where --no-gpg-checks is applied, a message is displayed
or a warning is written to stderr and logged.
- accept unsigned file?
default: N, with --no-gpg-checks: Y
- import key into keyring?
always: N (new key can be imported only in interactive mode)
- accept unknown key?
default: N, with --no-gpg-checks: Y
- trust key?
default: N, with --no-gpg-checks: Y
- verification of signed file failed, continue?
default: N, with --no-gpg-checks: Y
- no digest for a file, continue?
default: N, with --no-gpg-checks: Y
- accept unknown digest?
default: N, with --no-gpg-checks: Y
- accept wrong digest?
default: N, with --no-gpg-checks: Y
other prompts:
- proceed with installation/removal/update?
always: Y
in addition, the --no-confirm option can be
used with the above commands, even without global --non-interactive
- confirm 3rd party license
default: N, with --auto-agree-with-licenses: Y
in addition, for zypper update, --skip-interactive option can be used
to exclude interactive patches from to-be-installed list (heritage
of rug)
- problem while installing/removing a resolvable, Abort/Retry/Ignore?
always: ABORT (this is ugly and can be improved in future)
- problem while downloading a package, Abort/Retry/Ignore?
always: ABORT (this is also ugly, can be enhanced somehow in the future)
- dependency conflict. Prompt for solution number, (c)ancel, or (r)etry
always: c
Also, several different exit codes listed in zypper's manual page can be
checked for when using zypper in an automated process.
Feedback is welcome, as well as bug reports. I will also wikify this,
after some time.
Cheers,
Jano
--
Jan Kupec, YaST team member
--
To unsubscribe, e-mail: opensuse-softwaremgmt+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-softwaremgmt+help(a)opensuse.org