debconf-copydb
Copy debconf database from one format to another
SYNOPSIS
debconf-copydb [options] [sourcedb] [destdb]
PARAMETERS
--fromdb
Specify the source database to copy from.
--todb
Specify the destination database to copy to.
--type
Set the database type (e.g., 'File', 'SQLite'). Default is 'File'.
--owner
Set the owner for the destination file (for 'File' type databases).
--group
Set the group for the destination file (for 'File' type databases).
--mode
Set the file permissions for the destination file (for 'File' type databases).
--f
Copy only specified fields (e.g., 'Value,seen').
--filter
Copy only questions whose names match the regex.
--exclude
Do not copy questions whose names match the regex.
--no-questions
Do not copy questions, only configuration values.
--no-seen
Do not copy the 'seen' flag for questions.
--set-seen
Mark all copied questions as 'seen' in the destination.
--force
Overwrite destination without prompting if it exists.
--dry-run
Simulate the copy operation without making changes.
--verbose
Provide detailed output during execution.
--help
Display the help message.
--version
Display version information.
DESCRIPTION
debconf-copydb is a utility for copying configuration data between Debconf databases. It allows administrators to transfer values, seen flags, and other question properties from one Debconf backend to another, or to create backups. The command supports various database types, primarily 'File' (the classic text-based format) and 'SQLite'. It can copy a full database or selectively copy specific fields or questions based on regular expressions. This tool is invaluable for system migrations, debugging Debconf issues, or synchronizing configuration states across different environments or backup scenarios without reinstalling packages. It provides fine-grained control over what data is copied and how the destination database is handled.
CAVEATS
debconf-copydb operates on the database files directly. Care should be taken when using it on an active system, especially with the primary Debconf database (typically /var/cache/debconf/config.dat), as concurrent writes might lead to inconsistencies. It's generally safer to perform operations on offline copies or during system maintenance windows.
The --owner, --group, and --mode options are only applicable when copying to 'File' type databases. They have no effect on 'SQLite' or other future database types.
HISTORY
The debconf system, including tools like debconf-copydb, has been a core component of Debian-based systems for managing package configuration since its introduction. debconf-copydb specifically addresses the need for flexible management of this configuration data, especially as different backend storage types (like SQLite) were introduced to offer more robust or performant alternatives to the traditional text-based File format. Its development has focused on providing granular control over what data is copied and how it's handled, reflecting various use cases from simple backups to complex migrations and synchronization tasks.
SEE ALSO
debconf(7), debconf-set-selections(1), dpkg-reconfigure(8)