feat(packaging): add install-linux-binary.sh for standalone binary installs

install-linux.sh downloads a native package and registers a systemd
service, which is the wrong shape for deployments that run the server
binary directly -- a hand-run process, a non-systemd supervisor, or a
MinIO deployment being migrated in place.

Add a Linux counterpart to install-mac.sh that fetches only the binary:
resolve the current release from the gh-pages pointer, download the
matching asset, verify its SHA-256, chmod it, and leave ./buckit in the
working directory. It does not touch PATH and does not install a service.

The checksum is verified against both the release-host .sha256sum and the
digest published in the gh-pages pointer, and the two must agree. The
binary and its adjacent checksum share an origin, so that digest alone
only proves the transfer was not corrupted; the pointer is served from a
different origin and turns the check into something an attacker must
defeat in two places. A pinned BUCKIT_VERSION skips the cross-check,
since the pointer only ever describes the latest release.

Publish the script to gh-pages alongside the others, and advertise it in
the README and the generated release-notes install table.
This commit is contained in:
abuckit
2026-08-03 20:04:48 -04:00
parent 440be6909c
commit fa2f0483a4
3 changed files with 238 additions and 1 deletions
+6 -1
View File
@@ -205,9 +205,10 @@ jobs:
- name: Publish install scripts
run: |
cp src/packaging/install-linux.sh pages/install-linux.sh
cp src/packaging/install-linux-binary.sh pages/install-linux-binary.sh
cp src/packaging/install-mac.sh pages/install-mac.sh
cp src/packaging/install-windows.ps1 pages/install-windows.ps1
chmod +x pages/install-linux.sh pages/install-mac.sh
chmod +x pages/install-linux.sh pages/install-linux-binary.sh pages/install-mac.sh
- name: Write self-update checksum files
run: |
@@ -323,6 +324,10 @@ jobs:
<td><strong>Linux</strong>rpm / deb / apk</td>
<td><code style="font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px">curl -fsSL https://buckit-io.github.io/buckit/install-linux.sh | sh</code></td>
</tr>
<tr>
<td><strong>Linux</strong>standalone binary</td>
<td><code style="font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px">curl -fsSL https://buckit-io.github.io/buckit/install-linux-binary.sh | sh</code></td>
</tr>
<tr>
<td><strong>macOS</strong>Apple Silicon</td>
<td><code style="font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px">curl -fsSL https://buckit-io.github.io/buckit/install-mac.sh | sh</code></td>