Summary
On Ubuntu 22.04, nb install --deb <pkg> reports Installed N/N packages but the package's binary is not actually installed / not findable anywhere in the prefix. A libc6 postinst + ldconfig failure (exit 1) appears to abort the place/link step, yet the run still exits success.
Environment
- nanobrew v0.1.198 (installed via
curl -fsSL https://nanobrew.trilok.ai/install | bash → /opt/nanobrew/prefix)
- Ubuntu 22.04.5 LTS x86_64 (cloud GPU pod;
ubuntu non-root user, sudo available)
Repro
$ nb install --deb tree
==> Fetching package index...
mirror=http://archive.ubuntu.com/ubuntu codename=jammy arch=amd64
main: cache miss, fetching...
universe: cache miss, fetching...
==> Fetched index (65013 packages) in 629ms
==> Resolving deps for 1 package(s)... (index built in 42ms)
==> Installing 5 package(s)... (resolved in 0ms)
downloading 5 package(s) in parallel...
download phase: 106ms
extract phase: 397ms (5 packages)
running: postinst for libc6
warning: postinst exited 1 for libc6
warning: ldconfig exited with code 1
==> Installed 5/5 packages (5 cached) in 1595.6ms
Then the binary is nowhere to be found:
$ find /opt/nanobrew -name tree -type f # (no output)
$ ls /opt/nanobrew/prefix/bin # only: nb
$ ls /opt/nanobrew/prefix/usr/bin # (empty)
$ tree --version # tree: command not found
Expected
tree (+ its 4 deps) installed, and the tree CLI usable — on PATH, or at a documented prefix path.
Notes / questions
- postinst on a non-root prefix:
libc6's postinst/ldconfig can't meaningfully run against /opt/nanobrew/prefix. Should --deb default to skipping postinst (the README benchmarks reference --skip-postinst), or treat a postinst failure as non-fatal-but-reported rather than silently aborting the place step?
- Misleading success: after the postinst/ldconfig failures, the summary still prints
Installed 5/5 packages and exits 0, even though no binary was placed. The summary/exit code should reflect a partial/failed install.
- Where do
--deb CLIs land? Nothing ended up on PATH or in prefix/bin / prefix/usr/bin. If --deb is sysroot-only by design (libs for Docker builds), documenting that + how to expose CLIs would help.
Minor
nb --version and nb version both error unknown command; version is only visible via nb --help (shows v0.1.198). A --version flag would help scripting and bug reports.
Context (why this matters / the good part)
Hit while provisioning GPU pods whose base image has a stale apt index (apt-get install python3-venv → 404 on superseded .deb versions). nanobrew's fresh-index --deb fetch is exactly the right fix, and the fetch/resolve/download path is excellent (65k packages in 629 ms, install in 1.6 s). Only the place/postinst step doesn't complete for CLIs.
Summary
On Ubuntu 22.04,
nb install --deb <pkg>reportsInstalled N/N packagesbut the package's binary is not actually installed / not findable anywhere in the prefix. Alibc6postinst+ldconfigfailure (exit 1) appears to abort the place/link step, yet the run still exits success.Environment
curl -fsSL https://nanobrew.trilok.ai/install | bash→/opt/nanobrew/prefix)ubuntunon-root user,sudoavailable)Repro
Then the binary is nowhere to be found:
Expected
tree(+ its 4 deps) installed, and thetreeCLI usable — on PATH, or at a documented prefix path.Notes / questions
libc6'spostinst/ldconfigcan't meaningfully run against/opt/nanobrew/prefix. Should--debdefault to skipping postinst (the README benchmarks reference--skip-postinst), or treat a postinst failure as non-fatal-but-reported rather than silently aborting the place step?Installed 5/5 packagesand exits 0, even though no binary was placed. The summary/exit code should reflect a partial/failed install.--debCLIs land? Nothing ended up on PATH or inprefix/bin/prefix/usr/bin. If--debis sysroot-only by design (libs for Docker builds), documenting that + how to expose CLIs would help.Minor
nb --versionandnb versionboth errorunknown command; version is only visible vianb --help(showsv0.1.198). A--versionflag would help scripting and bug reports.Context (why this matters / the good part)
Hit while provisioning GPU pods whose base image has a stale apt index (
apt-get install python3-venv→ 404 on superseded.debversions). nanobrew's fresh-index--debfetch is exactly the right fix, and the fetch/resolve/download path is excellent (65k packages in 629 ms, install in 1.6 s). Only the place/postinst step doesn't complete for CLIs.