An installer that had only ever met Arch
`deploy/lxc-install.sh` had never been executed -- there was no Proxmox host to run it on, and PLAN.md said so rather than letting it read as tested. It was reviewed and `bash -n` checked, which is not the same claim. Running it for the first time found two Arch-isms in `install.sh`, the script it wraps, and only a Debian machine could have found either. `python -m venv` is the one that mattered. On Arch `python` is Python 3, so the bare name had worked on the only machine this had ever run on. Debian has no `python` at all unless somebody installed `python-is-python3`, and the LXC bootstrap installs `python3` -- so the install aborted at the virtualenv step, with the service user, the bind mount and the clone already in place. It is `python3` now, which is right on both. `--shell /usr/bin/nologin` is the one that did not. That is where Arch keeps nologin and not where Debian does, but nothing ever invoked it: `sudo -u` execs the command directly and systemd's `User=` never reads a shell. The account worked while pointing at a file that was not there. `/usr/sbin/nologin` is correct on Debian and resolves on Arch too, whose `/usr/sbin` is a symlink to `bin`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,26 @@ for 1.0.0 have something to be assembled from.
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 1.0.3
|
||||
|
||||
Two Arch-isms in the installer, both of which only a Debian machine could find.
|
||||
`deploy/lxc-install.sh` had never been executed — it was reviewed and
|
||||
syntax-checked, which is not the same claim — and running it is what found them.
|
||||
|
||||
- Fixed: **`deploy/install.sh` could not create its virtualenv on Debian**, and
|
||||
so `deploy/lxc-install.sh` could not finish. It called bare `python`, which is
|
||||
Python 3 on Arch — the machine this was written and only ever run on — and
|
||||
does not exist on Debian at all unless `python-is-python3` is installed. The
|
||||
LXC bootstrap installs `python3`, so the install aborted at the virtualenv
|
||||
step with the service user, the bind mount and the clone already made. It now
|
||||
calls `python3`, which is right on both.
|
||||
- Fixed: the service account was created with `--shell /usr/bin/nologin`, which
|
||||
is where Arch keeps it and where Debian does not. Nothing invoked it — `sudo -u`
|
||||
execs directly and systemd's `User=` never reads a shell — so the account
|
||||
worked either way, but it was created pointing at a file that was not there.
|
||||
Now `/usr/sbin/nologin`, which is correct on Debian and resolves on Arch too,
|
||||
since Arch's `/usr/sbin` is a symlink to `bin`.
|
||||
|
||||
## 1.0.2
|
||||
|
||||
- **The documentation moved to the [wiki](https://git.houmeres.sk/Houmeres/LLeMbas/wiki).**
|
||||
|
||||
Reference in New Issue
Block a user