base64(1) on Solnix vs Linux and the BSDs
base64 is not in the base Solnix system: install pkgs.solnix.coreutils to get the GNU coreutils base64, which matches the Linux page. FreeBSD and NetBSD have a different base64 with no long options on NetBSD and a different page structure on FreeBSD.
The manual pages
What Solnix runs
Not installed by default: add pkgs.solnix.coreutils. The published page is GNU coreutils 9.7 base64. The bundle lists no other illumos variant.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | same program | The Solnix page and the Linux page document the same GNU coreutils base64: the same synopsis, the same options (-d, -i, -w, --help, --version) and the same 76-column default wrap. The only difference is the version string on the page.Source: Solnix base64(1) SYNOPSIS, DESCRIPTION; Linux base64(1) SYNOPSIS, DESCRIPTION |
| FreeBSD, OpenBSD, NetBSD | not in base system | base64 is absent from a default Solnix system and has to be installed from pkgs.solnix.coreutils. A script that calls base64 on a fresh Solnix install will fail until the package is added. Source: Solnix base64(1) header: none: install pkgs.solnix.coreutils |
| FreeBSD | -i implemented or ignored | On Solnix, -i/--ignore-garbage makes decoding skip non-alphabet bytes. FreeBSD accepts --ignore-garbage and -i but says the option is unimplemented and silently ignored. Garbage input may fail on FreeBSD where it decodes on Solnix.Source: Solnix base64(1) -i, --ignore-garbage; FreeBSD base64(1) DESCRIPTION |
| NetBSD | -i implemented or ignored | On Solnix, -i ignores non-alphabet characters when decoding. The NetBSD page marks -i as '(not implemented)'.Source: Solnix base64(1) -i; NetBSD base64(1) -i |
| NetBSD | no long options | Solnix accepts --decode, --ignore-garbage, --wrap, --help and --version. The NetBSD synopsis lists only -d, -i and -w, and the page documents no long options.Source: Solnix base64(1) SYNOPSIS/OPTIONS; NetBSD base64(1) SYNOPSIS |
| NetBSD | -w syntax and multiple files | Solnix takes -w COLS or --wrap=COLS and at most one FILE. NetBSD takes -w wrap and accepts several file arguments. Both default to 76 columns and treat 0 as no wrapping.Source: Solnix base64(1) SYNOPSIS, -w; NetBSD base64(1) SYNOPSIS, -w |
| FreeBSD | long options on FreeBSD | FreeBSD base64 documents --decode (-d), --wrap (-w) and --ignore-garbage (-i) as accepted for compatibility with GNU base64. Its synopsis shows only -d, -w column and file. The page does not mention --help or --version.Source: FreeBSD base64(1) SYNOPSIS, DESCRIPTION; Solnix base64(1) --help, --version |
| FreeBSD | page covers uuencode family | The FreeBSD base64(1) page is shared with bintrans, uuencode, uudecode, b64encode and b64decode. The -m, -r, -o, -c, -p and -s options belong to those tools, not to base64. Solnix base64 has none of them.Source: FreeBSD base64(1) NAME, SYNOPSIS, options sections; Solnix base64(1) SYNOPSIS |
| FreeBSD | decoder input | FreeBSD base64 as a decoder accepts only raw base64 input. The Solnix page says decoding accepts newlines in addition to the base64 alphabet, and recovers from other bytes with --ignore-garbage.Source: FreeBSD base64(1) DESCRIPTION; Solnix base64(1) DESCRIPTION |
| all four | exit status documented | The NetBSD page documents exit status: 0 on success, non-zero if it could not encode or decode. The Solnix page has no EXIT STATUS section. FreeBSD does not document it either. Source: NetBSD base64(1) EXIT STATUS; Solnix base64(1); FreeBSD base64(1) |
| OpenBSD | no OpenBSD counterpart | The bundle includes no OpenBSD base64 page, so nothing is said about OpenBSD. Source: bundle header lists only linux, freebsd and netbsd counterparts |
Standards
- POSIX: base64 is not a POSIX.1-2024 utility.
- Solnix: The page says data are encoded as described for the base64 alphabet in RFC 4648.
- NetBSD: The NetBSD page describes the base64 scheme of RFC 3548.
Writing portable scripts
- Use only base64,
-dand-win portable scripts. Avoid-i(ignored or not implemented on FreeBSD and NetBSD) and the long options, which NetBSD does not document. - Strip stray bytes before decoding instead of relying on
-i. Pass-w0 if you need single-line output, and check the target documents it (Solnix, Linux and NetBSD do).
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.