diff options
| author | Claude <noreply@anthropic.com> | 2026-09-02 21:07:32 -0500 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-09-02 21:07:32 -0500 |
| commit | f10cd386fd85386303253287d3e0c5e2a7d52124 (patch) | |
| tree | 8498c114360df8a05acb96d83b9cdc91ccec03b5 /README.md | |
| parent | bd25a73ca5e801af4a9087597c15b1958d1c6588 (diff) | |
Use the go meta-port instead of a hand-rolled go/gofmt symlink
FreeBSD's lang/go is a real meta-port (installs as package name "go")
that depends on whichever goNNN is current and installs the go/gofmt
symlinks itself, tracked and upgradeable - `pkg install go` replaces both
the go125 install and the manual `ln -sf` steps in one command. Verified
against a real base image and rebuild: same resulting symlinks, now
pkg-owned instead of orphaned files pkg doesn't know about.
Docs updated to check for an unversioned meta-port first, falling back to
a manual symlink only when a toolchain doesn't have one.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 24 |
1 files changed, 12 insertions, 12 deletions
@@ -28,9 +28,10 @@ needs to provide](#what-an-app-needs-to-provide). on the host itself. `make` itself is already in FreeBSD base (bmake), so it's the one build tool Skiff never asks you to install. Watch for versioned port names (`go125`, `python312`, ...) - FreeBSD installs the - literal versioned binary, not a bare `go`/`python3`, so symlink a default - into the base image's `/usr/local/bin` if a Makefile invokes the - unversioned name. + literal versioned binary, not a bare `go`/`python3`. Check for an + unversioned meta-port first (`go` itself is one - see [ZFS + layout](#zfs-layout)); only symlink a default by hand if no meta-port + exists for what you need. - The build step needs real outbound network access from inside the jail (module/package downloads) - see the `--ip` note under [First deploy](#first-deploy). @@ -63,17 +64,16 @@ wants `/dev/null` and `/dev/random`.) Now install whatever your apps' Makefiles actually need to build: ``` -# pkg -c /skiff/base install -y go125 +# pkg -c /skiff/base install -y go ``` -Watch for versioned port names - FreeBSD installs `go125` as literally -`go125`, not `go`, so a Makefile invoking the bare command needs a default -symlinked in: - -``` -# ln -sf go125 /skiff/base/usr/local/bin/go -# ln -sf gofmt125 /skiff/base/usr/local/bin/gofmt -``` +FreeBSD's versioned language ports (`go125`, `python312`, ...) install as +that literal binary name, not a bare `go`/`python3` - a Makefile invoking +the unversioned command needs one. Check for an unversioned meta-port +first: `go` is exactly that - it depends on whichever `goNNN` is current +and installs the `go`/`gofmt` symlinks itself (`pkg install -y go`, not +`go125` directly, is the whole fix). If no meta-port exists for what you +need, symlink a default into `/usr/local/bin` by hand instead. Unmount devfs and snapshot once the image can actually build and run apps: |
