makedbm(8) on Solnix vs Linux and the BSDs
On Solnix, makedbm is the illumos /usr/sbin/makedbm. It writes ndbm files (outfile.pag and outfile.dir) for NIS maps. It has extra key-splitting options (-S, -D, -E) that the OpenBSD and NetBSD pages do not list, and -u takes a file argument, as on NetBSD.
The manual pages
- Solnix: makedbm(8) from
pkgs.solnix.illumos-world-man· illumos.org - OpenBSD: makedbm(8) 8.0
- NetBSD: makedbm(8) 11.0
What Solnix runs
A default Solnix system runs the illumos makedbm at /usr/sbin/makedbm. No other variants are shipped. Linux has no counterpart page in the bundle, so no Linux comparison is made.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| OpenBSD, NetBSD | output file format | Solnix makedbm writes a pair of ndbm files, outfile.pag and outfile.dir. OpenBSD describes a slightly modified ndbm format. NetBSD describes a db(3) database file. Map files are not interchangeable across these systems without checking the format. Source: Solnix makedbm(8) DESCRIPTION, OPERANDS outfile; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION |
| OpenBSD, NetBSD | key splitting options -S, -D, -E | Solnix has -S delimiter, -D number_of_delimiters and -E (delimiters are escaped) to control how the key is formed. The OpenBSD and NetBSD pages list none of these. Without them, the documented rule is key = text up to the first space or tab.Source: Solnix makedbm(8) SYNOPSIS, OPTIONS -S, -D, -E; OpenBSD makedbm(8) SYNOPSIS; NetBSD makedbm(8) SYNOPSIS |
| OpenBSD | -u argument and -U | Solnix -u takes a dbm file name (makedbm -u dbmfilename). On OpenBSD, -u is a plain flag in the main synopsis and the page names no file argument. OpenBSD also has -U, which tries the hash(3) format as well. Solnix has no -U.Source: Solnix makedbm(8) SYNOPSIS, -u; OpenBSD makedbm(8) SYNOPSIS, -U, -u |
| NetBSD | -u output format | Solnix -u prints one entry per line with a single space between key and value. NetBSD says its -u output is suitable to be passed back into makedbm. The Solnix page does not make that claim.Source: Solnix makedbm(8) -u; NetBSD makedbm(8) -u |
| NetBSD | comment handling in input | Solnix makedbm does not treat # as special, so a line starting with # becomes a record. NetBSD says # is a comment character and the rest of the line is ignored, and blank lines are ignored. Solnix does not say how it handles blank lines. Source: Solnix makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION |
| OpenBSD, NetBSD | line continuation | Solnix continues a record onto the next line when a line ends with a backslash. The OpenBSD and NetBSD pages do not mention line continuation. Source: Solnix makedbm(8) DESCRIPTION; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION |
| OpenBSD, NetBSD | yp_last_modified entry | Solnix adds a special key yp_last_modified, set to the date of infile or the current time when infile is the dash. The OpenBSD and NetBSD pages do not mention this entry. Source: Solnix makedbm(8) DESCRIPTION; OpenBSD makedbm(8) DESCRIPTION; NetBSD makedbm(8) DESCRIPTION |
| OpenBSD, NetBSD | special key names | OpenBSD and NetBSD name the keys in upper case (YP_DOMAIN_NAME, YP_INPUT_FILE, YP_MASTER_NAME, YP_OUTPUT_FILE). The Solnix page writes them as yp_domain_name, yp_input_file and so on. Solnix says keys with the prefix yp_ are interpreted by NIS server utilities. Source: Solnix makedbm(8) OPTIONS -d, -i, -m, -o; OpenBSD makedbm(8) -d; NetBSD makedbm(8) -d |
| OpenBSD, NetBSD | -m default and -b scope | On Solnix, -m without a master name sets yp_master_name to the local host name. The BSD pages take the name as the option argument and do not describe a default. OpenBSD and NetBSD say -b only has effect on hosts.byname and hosts.byaddr; the Solnix page does not restrict it.Source: Solnix makedbm(8) -m, -b; OpenBSD makedbm(8) -m, -b; NetBSD makedbm(8) -m, -b |
Standards
- POSIX: makedbm is not a POSIX.1-2024 utility.
- OpenBSD: The OpenBSD page has no STANDARDS section in the bundle.
- NetBSD: The NetBSD page has no STANDARDS section in the bundle.
Writing portable scripts
- Use only
-b,-d,-i,-l,-m,-o,-sand the infile outfile operands in portable scripts. Avoid-S,-D,-Eand-U. - Do not assume outfile names or format. Solnix writes outfile.pag and outfile.dir; NetBSD describes a db(3) file. Generate maps on the system that will serve them.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.