LinuxCommandLibrary

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+.

SEE ALSO

iconv(1), iconv(3), localedef(8)

Copied to clipboard