iconvconfig
Create iconv module configuration cache
SYNOPSIS
iconvconfig [-o FILE] [-p DIRLIST]
PARAMETERS
-o, --output=FILE
Write single output cache to FILE instead of one per input directory
-p, --modules-dir=DIRLIST
Scan gconv-modules* files in colon-separated directories DIRLIST (default: /usr/lib/gconv)
--help
Display usage help and exit
--version
Print version info and exit
DESCRIPTION
The iconvconfig command is a utility from the GNU C Library (glibc) that creates binary cache files for iconv character encoding conversion modules. iconv is the standard API for converting text between different charsets, relying on loadable modules described in text files named gconv-modules or gconv-modules.d/* located in directories like /usr/lib/gconv or /usr/lib64/gconv.
These text files list module aliases, conversion paths, and priorities. Parsing them at runtime for every iconv call would be inefficient, so iconvconfig scans specified directories, parses the files, and generates a compact binary cache file named gconv-modules.cache in each directory. This accelerates module discovery and loading significantly.
By default, it processes /usr/lib/gconv. Package managers invoke it automatically after installing locales or iconv modules (e.g., via dpkg postinst or rpm scripts). System administrators run it manually after adding custom modules to avoid performance issues. Running as root is often required to write caches in system directories.
Use cases include multi-arch systems (32/64-bit) with separate gconv paths, or custom charset installations. The cache must be regenerated if module files change.
CAVEATS
Requires write access to target directories (often root); caches invalidated by module changes must be regenerated to avoid iconv slowdowns or failures.
DEFAULT BEHAVIOR
Creates gconv-modules.cache in each scanned directory by globbing gconv-modules and gconv-modules.d/* files.
EXAMPLE
iconvconfig -p /usr/lib/gconv:/usr/lib64/gconv
Regenerates caches for 32/64-bit modules.
HISTORY
Introduced in glibc 2.2 (2000) to optimize iconv module loading; evolved with multiarch support in glibc 2.16+.


