Huh, I think that worked. So I enabled and rebuilt and now can lookup words (and indeed can see responses from multiple of the DBs I installed), but during rebuild I saw multiple errors output from some build process:
Basename is /nix/store/gfbza56cr66mhka9rnzc2s1ksb939iza-dict-db-wiktionary-20220420/share/dictd/wiktionary-en
Locale is en_US.UTF-8
/nix/store/7cni7ndy2pm18ysl5znq6znb30sxp156-stdenv-linux/setup: line 1626: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/nix/store/m36d29gn5gm9bk0g7fcln1v8171hvn95-bash-5.2-p15/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
awk: cmd. line:4: fatal: cannot open file `en_US.UTF-8' for reading: No such file or directory
dictfmt: option '--locale' requires an argument
dictfmt-1.13.1
Copyright 1997-2000 Rickard E. Faith (faith@cs.unc.edu)
Copyright 2002-2007 Aleksey Cheusov (vle@gmx.net)
Usage: dictfmt -c5|-t|-e|-f|-h|-j|-p [-u url] [-s name] [options] basename
dictfmt -i|-I [options]
Create a dictionary database and index file for use by a dictd server
# qsu@ snipped _long_ help output from dictfmt
I don’t see anything obvious in https://github.com/NixOS/nixpkgs/blob/e5f018cf150e29aac26c61dac0790ea023c46b24/nixos/modules/services/misc/dictd.nix - no references to dictfmt
or awk
here's the full output of rebuilding in case the above snippet isn't clear:
$ sudo --reset-timestamp nixos-rebuild switch --upgrade
[sudo] password for qsu:
unpacking channels...
building Nix...
building the system configuration...
trace: warning: mdadm: Neither MAILADDR nor PROGRAM has been set. This will cause the `mdmon` service to crash.
these 20 derivations will be built:
/nix/store/200m9ajjj53vscmwp795rw85sdrnqhfn-dictd-dbs.drv
/nix/store/ajq02in86wmw5np7hgxmhcc7bvlnc676-system-path.drv
/nix/store/dl8w7mpvpskyx9nmqcz6hrijcnqryqrw-X-Restart-Triggers.drv
/nix/store/5d03f6k6xrv94pjxyhjp478lfkmlkxwa-unit-polkit.service.drv
/nix/store/5hksp8i3annfd1m42ycch11yb55gwg13-unit-script-dictd-start.drv
/nix/store/7alayslwnrkmbpdgyfz3cri698n9nrjl-dbus-1.drv
/nix/store/fxffiip2zvd2xrcdmvh0hxpb928w1wy1-X-Restart-Triggers.drv
/nix/store/9a8mvkj1qn1g8kypchsq732fppkqkwrp-unit-dbus.service.drv
/nix/store/66fvph86fwzbc0c8zfd45gzqj14na3n7-user-units.drv
/nix/store/7bmk2rf2lakba9sw72y8k8hj729l16bx-unit-dbus.service.drv
/nix/store/s6f16h3vyh8az4h1qqigvi2am4q6r53k-unit-accounts-daemon.service.drv
/nix/store/z8h5p821j1ywz8wlk6p1cca2f91hb9wk-unit-dictd.service.drv
/nix/store/9x827sr5fcm63h2l0578fsfy400xfibj-system-units.drv
/nix/store/c3p7zdy0m2jb3hz95bwzii72s93xsmqz-etc-dict.conf.drv
/nix/store/k7h48ln52vcykpnzxh1ivr5frghgj1k7-set-environment.drv
/nix/store/c44b30x3jzmvzbc71sk2ls1vhiw6033w-etc-profile.drv
/nix/store/mbyfn7zngqb13xa6pxcmpa497yd2ynfn-etc-pam-environment.drv
/nix/store/nvwjbv4x96h7i4jqa7fkr5qp9pr3bwhp-etc.drv
/nix/store/q8l78ijzxqjjsvl4lc2lz509a6glrvrn-users-groups.json.drv
/nix/store/w5fy9c9zcisi2s0nsphc63xd18a3q66b-nixos-system-qsulaptop-23.11pre524605.3a2786eea085.drv
this path will be fetched (0.05 MiB download, 0.20 MiB unpacked):
/nix/store/iwbwvxdkj5zhxwkh27cihx90q5cw0kix-libfaketime-0.9.10
building '/nix/store/ajq02in86wmw5np7hgxmhcc7bvlnc676-system-path.drv'...
building '/nix/store/c3p7zdy0m2jb3hz95bwzii72s93xsmqz-etc-dict.conf.drv'...
copying path '/nix/store/iwbwvxdkj5zhxwkh27cihx90q5cw0kix-libfaketime-0.9.10' from 'https://cache.nixos.org'...
building '/nix/store/200m9ajjj53vscmwp795rw85sdrnqhfn-dictd-dbs.drv'...
warning: collision between `/nix/store/gfbza56cr66mhka9rnzc2s1ksb939iza-dict-db-wiktionary-20220420/share/dictd/locale' and `/nix/store/psj541qixnmwj96ca5ylk7vlzqqyz88q-dict-db-wordnet-542/share/dictd/locale'
patching sources
updateAutotoolsGnuConfigScriptsPhase
configuring
no configure script, doing nothing
building
no Makefile or custom buildPhase, doing nothing
installing
Got store path /nix/store/gfbza56cr66mhka9rnzc2s1ksb939iza-dict-db-wiktionary-20220420
Directory reference: /nix/store/gfbza56cr66mhka9rnzc2s1ksb939iza-dict-db-wiktionary-20220420/share/dictd
Basename is /nix/store/gfbza56cr66mhka9rnzc2s1ksb939iza-dict-db-wiktionary-20220420/share/dictd/wiktionary-en
Locale is en_US.UTF-8
/nix/store/7cni7ndy2pm18ysl5znq6znb30sxp156-stdenv-linux/setup: line 1626: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
/nix/store/m36d29gn5gm9bk0g7fcln1v8171hvn95-bash-5.2-p15/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
awk: cmd. line:4: fatal: cannot open file `en_US.UTF-8' for reading: No such file or directory
dictfmt: option '--locale' requires an argument
dictfmt-1.13.1
Copyright 1997-2000 Rickard E. Faith (faith@cs.unc.edu)
Copyright 2002-2007 Aleksey Cheusov (vle@gmx.net)
Usage: dictfmt -c5|-t|-e|-f|-h|-j|-p [-u url] [-s name] [options] basename
dictfmt -i|-I [options]
Create a dictionary database and index file for use by a dictd server
-c5 headwords are preceded by a line containing at least
5 underscore (_) characters
-t implies -c5, --without-headword and --without-info options
-e file is in html format
-f headwords start in col 0, definitions start in col 8
-j headwords are set off by colons
-p headwords are preceded by %p, with %d on following line
-i reformat stdin having three-column .index file format
-u <url> URL of site where database was obtained
-s <name> name of the database
--license
-L display copyright and license information
--version
-V display version information
-D debug
--utf8 for creating utf-8 dictionary
--quiet
--silent
-q quiet operation
--help display this help message
--locale <locale> specifies the locale used for sorting.
if no locale is specified, the "C" locale is used.
--allchars all characters (not only alphanumeric and space)
will be used in search if this argument is supplied
--headword-separator <sep> sets headword separator which allows
several words to have the same definition
Example: autumn%%%fall can be used
if '--headword-separator %%%' is supplied
--index-data-separator <sep> sets index/data separator which allows
to explicitly set fourth column in .index file,
the default is "\034"
--break-headwords multiple headwords will be written on separate lines
in the .dict file. For use with '--headword-separator.
--index-keep-orig fourth column in .index file stores original headword
which is returned by MATCH command
--case-sensitive Create .index/.dict files for case sensitive search
--without-headword headwords will not be copied to .dict file
--without-header header will not be copied to DB info entry
--without-url URL will not be copied to DB info entry
--without-time time of creation will not be copied to DB info entry
--without-info DB info entry will not be created.
This may be useful if 00-database-info headword
is expected from stdin (dictunformat outputs it).
--columns Set the number of columns for wrapping text
before writing it to .dict file.
If it is zero, wrapping is off.
--default-strategy Sets the default search strategy for the database.
Special entry 00-database-default-strategy is created
for this purpose.
--mime-header Sets MIME header stored in .data file which
prepend definition
when client sent OPTION MIME to `dictd'
--without-ver do not create 00-database-dictfmt-<VER> entry in .index
/nix/store/m36d29gn5gm9bk0g7fcln1v8171hvn95-bash-5.2-p15/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
dictfmt: option '--locale' requires an argument
dictfmt-1.13.1
Copyright 1997-2000 Rickard E. Faith (faith@cs.unc.edu)
Copyright 2002-2007 Aleksey Cheusov (vle@gmx.net)
Usage: dictfmt -c5|-t|-e|-f|-h|-j|-p [-u url] [-s name] [options] basename
dictfmt -i|-I [options]
Create a dictionary database and index file for use by a dictd server
-c5 headwords are preceded by a line containing at least
5 underscore (_) characters
-t implies -c5, --without-headword and --without-info options
-e file is in html format
-f headwords start in col 0, definitions start in col 8
-j headwords are set off by colons
-p headwords are preceded by %p, with %d on following line
-i reformat stdin having three-column .index file format
-u <url> URL of site where database was obtained
-s <name> name of the database
--license
-L display copyright and license information
--version
-V display version information
-D debug
--utf8 for creating utf-8 dictionary
--quiet
--silent
-q quiet operation
--help display this help message
--locale <locale> specifies the locale used for sorting.
if no locale is specified, the "C" locale is used.
--allchars all characters (not only alphanumeric and space)
will be used in search if this argument is supplied
--headword-separator <sep> sets headword separator which allows
several words to have the same definition
Example: autumn%%%fall can be used
if '--headword-separator %%%' is supplied
--index-data-separator <sep> sets index/data separator which allows
to explicitly set fourth column in .index file,
the default is "\034"
--break-headwords multiple headwords will be written on separate lines
in the .dict file. For use with '--headword-separator.
--index-keep-orig fourth column in .index file stores original headword
which is returned by MATCH command
--case-sensitive Create .index/.dict files for case sensitive search
--without-headword headwords will not be copied to .dict file
--without-header header will not be copied to DB info entry
--without-url URL will not be copied to DB info entry
--without-time time of creation will not be copied to DB info entry
--without-info DB info entry will not be created.
This may be useful if 00-database-info headword
is expected from stdin (dictunformat outputs it).
--columns Set the number of columns for wrapping text
before writing it to .dict file.
If it is zero, wrapping is off.
--default-strategy Sets the default search strategy for the database.
Special entry 00-database-default-strategy is created
for this purpose.
--mime-header Sets MIME header stored in .data file which
prepend definition
when client sent OPTION MIME to `dictd'
--without-ver do not create 00-database-dictfmt-<VER> entry in .index
gawk: cmd. line:25: fatal: cannot open file `en_US.UTF-8' for reading: No such file or directory
Got store path /nix/store/psj541qixnmwj96ca5ylk7vlzqqyz88q-dict-db-wordnet-542
Directory reference: /nix/store/psj541qixnmwj96ca5ylk7vlzqqyz88q-dict-db-wordnet-542/share/dictd
Basename is /nix/store/psj541qixnmwj96ca5ylk7vlzqqyz88q-dict-db-wordnet-542/share/dictd/wn
Locale is en_US.UTF-8
/nix/store/7cni7ndy2pm18ysl5znq6znb30sxp156-stdenv-linux/setup: line 1626: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
created 21360 symlinks in user environment
gtk-update-icon-cache: Cache file created successfully.
gtk-update-icon-cache: Cache file created successfully.
building '/nix/store/dl8w7mpvpskyx9nmqcz6hrijcnqryqrw-X-Restart-Triggers.drv'...
building '/nix/store/7alayslwnrkmbpdgyfz3cri698n9nrjl-dbus-1.drv'...
building '/nix/store/mbyfn7zngqb13xa6pxcmpa497yd2ynfn-etc-pam-environment.drv'...
building '/nix/store/k7h48ln52vcykpnzxh1ivr5frghgj1k7-set-environment.drv'...
building '/nix/store/s6f16h3vyh8az4h1qqigvi2am4q6r53k-unit-accounts-daemon.service.drv'...
/nix/store/m36d29gn5gm9bk0g7fcln1v8171hvn95-bash-5.2-p15/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
dictfmt: option '--locale' requires an argument
dictfmt-1.13.1
Copyright 1997-2000 Rickard E. Faith (faith@cs.unc.edu)
Copyright 2002-2007 Aleksey Cheusov (vle@gmx.net)
Usage: dictfmt -c5|-t|-e|-f|-h|-j|-p [-u url] [-s name] [options] basename
dictfmt -i|-I [options]
Create a dictionary database and index file for use by a dictd server
-c5 headwords are preceded by a line containing at least
5 underscore (_) characters
-t implies -c5, --without-headword and --without-info options
-e file is in html format
-f headwords start in col 0, definitions start in col 8
-j headwords are set off by colons
-p headwords are preceded by %p, with %d on following line
-i reformat stdin having three-column .index file format
-u <url> URL of site where database was obtained
-s <name> name of the database
--license
-L display copyright and license information
--version
-V display version information
-D debug
--utf8 for creating utf-8 dictionary
--quiet
--silent
-q quiet operation
--help display this help message
--locale <locale> specifies the locale used for sorting.
if no locale is specified, the "C" locale is used.
--allchars all characters (not only alphanumeric and space)
will be used in search if this argument is supplied
--headword-separator <sep> sets headword separator which allows
several words to have the same definition
Example: autumn%%%fall can be used
if '--headword-separator %%%' is supplied
--index-data-separator <sep> sets index/data separator which allows
to explicitly set fourth column in .index file,
the default is "\034"
--break-headwords multiple headwords will be written on separate lines
in the .dict file. For use with '--headword-separator.
--index-keep-orig fourth column in .index file stores original headword
which is returned by MATCH command
--case-sensitive Create .index/.dict files for case sensitive search
--without-headword headwords will not be copied to .dict file
--without-header header will not be copied to DB info entry
--without-url URL will not be copied to DB info entry
--without-time time of creation will not be copied to DB info entry
--without-info DB info entry will not be created.
This may be useful if 00-database-info headword
is expected from stdin (dictunformat outputs it).
--columns Set the number of columns for wrapping text
before writing it to .dict file.
If it is zero, wrapping is off.
--default-strategy Sets the default search strategy for the database.
Special entry 00-database-default-strategy is created
for this purpose.
--mime-header Sets MIME header stored in .data file which
prepend definition
when client sent OPTION MIME to `dictd'
--without-ver do not create 00-database-dictfmt-<VER> entry in .index
awk: cmd. line:4: fatal: cannot open file `en_US.UTF-8' for reading: No such file or directory
/nix/store/m36d29gn5gm9bk0g7fcln1v8171hvn95-bash-5.2-p15/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
dictfmt: option '--locale' requires an argument
dictfmt-1.13.1
Copyright 1997-2000 Rickard E. Faith (faith@cs.unc.edu)
Copyright 2002-2007 Aleksey Cheusov (vle@gmx.net)
Usage: dictfmt -c5|-t|-e|-f|-h|-j|-p [-u url] [-s name] [options] basename
dictfmt -i|-I [options]
Create a dictionary database and index file for use by a dictd server
-c5 headwords are preceded by a line containing at least
5 underscore (_) characters
-t implies -c5, --without-headword and --without-info options
building '/nix/store/fxffiip2zvd2xrcdmvh0hxpb928w1wy1-X-Restart-Triggers.drv'...
building '/nix/store/c44b30x3jzmvzbc71sk2ls1vhiw6033w-etc-profile.drv'...
building '/nix/store/5d03f6k6xrv94pjxyhjp478lfkmlkxwa-unit-polkit.service.drv'...
-e file is in html format
-f headwords start in col 0, definitions start in col 8
-j headwords are set off by colons
-p headwords are preceded by %p, with %d on following line
-i reformat stdin having three-column .index file format
-u <url> URL of site where database was obtained
-s <name> name of the database
--license
-L display copyright and license information
--version
-V display version information
-D debug
--utf8 for creating utf-8 dictionary
--quiet
--silent
-q quiet operation
--help display this help message
--locale <locale> specifies the locale used for sorting.
if no locale is specified, the "C" locale is used.
--allchars all characters (not only alphanumeric and space)
will be used in search if this argument is supplied
--headword-separator <sep> sets headword separator which allows
several words to have the same definition
Example: autumn%%%fall can be used
if '--headword-separator %%%' is supplied
--index-data-separator <sep> sets index/data separator which allows
to explicitly set fourth column in .index file,
the default is "\034"
--break-headwords multiple headwords will be written on separate lines
in the .dict file. For use with '--headword-separator.
--index-keep-orig fourth column in .index file stores original headword
which is returned by MATCH command
--case-sensitive Create .index/.dict files for case sensitive search
--without-headword headwords will not be copied to .dict file
--without-header header will not be copied to DB info entry
--without-url URL will not be copied to DB info entry
--without-time time of creation will not be copied to DB info entry
--without-info DB info entry will not be created.
This may be useful if 00-database-info headword
is expected from stdin (dictunformat outputs it).
--columns Set the number of columns for wrapping text
before writing it to .dict file.
If it is zero, wrapping is off.
--default-strategy Sets the default search strategy for the database.
Special entry 00-database-default-strategy is created
for this purpose.
--mime-header Sets MIME header stored in .data file which
prepend definition
when client sent OPTION MIME to `dictd'
--without-ver do not create 00-database-dictfmt-<VER> entry in .index
gawk: cmd. line:25: fatal: cannot open file `en_US.UTF-8' for reading: No such file or directory
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/c1056hai4jj3rmc1csg9l0dpvidxzypz-dictd-dbs
checking for references to /build/ in /nix/store/c1056hai4jj3rmc1csg9l0dpvidxzypz-dictd-dbs...
patching script interpreter paths in /nix/store/c1056hai4jj3rmc1csg9l0dpvidxzypz-dictd-dbs
building '/nix/store/7bmk2rf2lakba9sw72y8k8hj729l16bx-unit-dbus.service.drv'...
building '/nix/store/9a8mvkj1qn1g8kypchsq732fppkqkwrp-unit-dbus.service.drv'...
building '/nix/store/5hksp8i3annfd1m42ycch11yb55gwg13-unit-script-dictd-start.drv'...
building '/nix/store/q8l78ijzxqjjsvl4lc2lz509a6glrvrn-users-groups.json.drv'...
building '/nix/store/z8h5p821j1ywz8wlk6p1cca2f91hb9wk-unit-dictd.service.drv'...
building '/nix/store/66fvph86fwzbc0c8zfd45gzqj14na3n7-user-units.drv'...
building '/nix/store/9x827sr5fcm63h2l0578fsfy400xfibj-system-units.drv'...
building '/nix/store/nvwjbv4x96h7i4jqa7fkr5qp9pr3bwhp-etc.drv'...
building '/nix/store/w5fy9c9zcisi2s0nsphc63xd18a3q66b-nixos-system-qsulaptop-23.11pre524605.3a2786eea085.drv'...
stopping the following units: accounts-daemon.service
activating the configuration...
setting up /etc...
reloading user units for qsu...
setting up tmpfiles
reloading the following units: dbus.service
restarting the following units: polkit.service
starting the following units: accounts-daemon.service
the following new units were started: dictd.service