Basic payloads: Run your first package (1 of 5)
The basic payloads series, hands-on: run your first package.
The Tebako team
github.com/tamatebako|
Note
|
Post 1 of 5 in the series Basic payloads. ● ○ ○ ○ ○
|
|
Note
|
Reference guide: Install tebako and Run a packaged app. |
This series teaches tebako v2 hands-on, one subject per post: run a package, make payloads, package applications, publish them. Every step is a command you can run right now.
This post’s subject is the first one: running a package. You do not need Ruby, any other language, or any toolchain — only tebako itself.
Figure 1 — Install tebako once, install a payload from any registry, and you get an ordinary command; a fat executable works the other way, with no install at all.
Install tebako
# macOS or Linux — pick one
$ brew install tamatebako/tap/tebako
$ curl -fsSL https://tebako.org/install.sh | sh
$ tebako --version
Tebako executable packager version 2.1.8
Install a payload and run it
Payloads live in registries — a registry is just a YAML file hosted next to someone’s releases. Add one, install from it, and run:
$ tebako add-registry tfs:github:tamatebako/hello
$ tebako install hello
$ hello
Hello, world!
An ordinary command appeared on your PATH. That command is a shim: a small link that dispatches, every time you invoke it, to the right payload version and runtime. You will meet version pinning in the last chapter of this series.
The other way: a fat executable
Some projects ship a single executable with everything carried inside. You download it, make it runnable, and run it — the runtime it needs is resolved and verified on first run, then shared with every other tebako package on the machine:
$ chmod +x ./metanorma-1.16.9-arm64-macos
$ ./metanorma-1.16.9-arm64-macos compile document.adoc
resolving runtime: ruby >= 3.3, < 5.0 (arm64-macos)
runtime ruby-3.3.7 (downloaded, verified)
Both ways run the same bytes. What you just used is the whole model from the architecture series: a bootstrap, a mounted runtime, payload slices. The next post makes your first payload.
|
Note
|
Continue with part 2 of 5: Data payloads: make one, read one. |