Manage Interactive Input
Some Debian packages request interactive input by a user for installation. This how-to describes how to handle such situations that usually produce an error in the installation process.
Problem (Example)
When installing Java (Debian package sun-java6-bin) the package requests you to accept Sun's license before the installation is effectively performed. If you have this package (or a package having a dependency to it) in a FAI class the installation may result in the following error:
sun-dlj-v1-1 license could not be presented try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive dpkg: error processing ...
Note: The problem is debconf must ask for acceptance of the Java license. As aptitude runs in non-interactive mode it aborts installing the package.
Solution
Questions by debconf can be answered in the FAI config space in the debconf folder. This is called "debconf preseeding".
Debconf preseeding is done by adding to debconf/DEFAULT (or another file matching an FAI class) something like:
sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true
Syntax explained
The arguments on each line are separated by white space, and have the following meaning: (in sequential order)
- Package name
- Question name
- Answer value type
- Answer value
Examples: see the files in /var/lib/fai/config/debconf/ of your FAI host (or boot medium)!
References
- "Install Sun Java on etch" (discussion on linux-fai mailing list, 09-May-2007)
More reading
- DebianWiki: DebianInstaller / Preseed
- example-preseed.txt (sample from Debian/lenny)
- Using preseeding (Ubuntu documentation)
- Automating the installation using preseeding (Embedded Debian documentation)