docs(readme): replace process substitution with pipe syntax in install commands

- swap `sudo bash <(curl …)` for `curl … | sudo bash -s -- setup` to fix `/dev/fd/63` errors under sudo
- add callout explaining why process substitution fails with `sudo bash`
- update one-shot command to `curl … | bash` and clarify auto-elevation behavior
- fix version-reporting note to reflect pipe mode instead of process substitution
This commit is contained in:
2026-05-12 17:33:53 -04:00
parent eadae693a5
commit aba84b26f7
+6 -4
View File
@@ -5,15 +5,17 @@ Linux multi-tool — a Bash menu and CLI for installing common server apps and r
## Quick install
```bash
sudo bash <(curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh) setup
curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | sudo bash -s -- setup
```
This downloads the repo tarball, installs every file to `/usr/local/share/lxs/`, and creates the symlink `/usr/local/bin/lxs`. After install, sub-scripts run from disk — no network calls per command.
Or run once without installing:
> Avoid `sudo bash <(curl …)` — process substitution opens `/dev/fd/63` in your shell, which the root `bash` spawned by `sudo` cannot read (`bash: /dev/fd/63: No such file or directory`). Pipe through `sudo bash -s --` instead.
Or run once without installing (no `sudo` needed for the entrypoint — sub-scripts auto-elevate when they need root):
```bash
bash <(curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh)
curl -fsSL https://git.hyko.cx/hykocx/lxs/raw/branch/main/lxs.sh | bash
```
When a new version is published in this repo, the interactive menu shows a *"Nouvelle version disponible"* banner; run `lxs update` to pull all updated files.
@@ -73,7 +75,7 @@ After `lxs setup`, the full tree lives in `/usr/local/share/lxs/` and sub-script
### Releasing a new version
Bump only the [VERSION](VERSION) file — `lxs.sh` reads it at startup. Installed clients also fetch this file (cached 24 h in `~/.cache/lxs/`) to detect updates. In one-shot mode (`bash <(curl …lxs.sh)`) the file isn't readable from the process substitution, so `lxs version` reports `dev`.
Bump only the [VERSION](VERSION) file — `lxs.sh` reads it at startup. Installed clients also fetch this file (cached 24 h in `~/.cache/lxs/`) to detect updates. In one-shot mode (`curl … | bash`) the file isn't on disk next to the script, so `lxs version` reports `dev`.
## Requirements