diff options
| author | 2026-05-14 12:12:55 +0100 | |
|---|---|---|
| committer | 2026-05-14 12:12:55 +0100 | |
| commit | 5071c9ed1063e1739f26b8227c521d070ef525d6 (patch) | |
| tree | 83eff2fb9b94c04532d97e6673f9c1566d22ffe2 /remote-dev/README.md | |
| parent | 1589910f1319c1806bbfaf47c73a80cbcee8fafb (diff) | |
| download | dotfiles-5071c9ed1063e1739f26b8227c521d070ef525d6.tar.gz dotfiles-5071c9ed1063e1739f26b8227c521d070ef525d6.tar.bz2 dotfiles-5071c9ed1063e1739f26b8227c521d070ef525d6.zip | |
fix(remote-dev): switch python3.11 source from deadsnakes PPA to uv
The deadsnakes PPA may not be reachable on every VM (corporate apt
proxy, Ubuntu derivatives that add-apt-repository misdetects, etc.).
`uv python install 3.11` works on any distro: it fetches a portable
python-build-standalone CPython into ~/.local/share/uv/python/, which
is manylinux-wheel-compatible.
Symlink the resulting binary to ~/.local/bin/python3.11 (already on
PATH from zprofile). Move the step to after `home-manager switch`
since uv comes from the nix profile.
Diffstat (limited to 'remote-dev/README.md')
| -rw-r--r-- | remote-dev/README.md | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/remote-dev/README.md b/remote-dev/README.md index d38b082..00640b5 100644 --- a/remote-dev/README.md +++ b/remote-dev/README.md @@ -134,19 +134,19 @@ git log --show-signature -1 - **Network for first nvim launch**: `vim.pack.add` fetches plugins from GitHub on first start. Mason will also fetch LSP servers using `nodejs`/`uv` from this profile. -- **Mason pip installs need `python3.11`**: a handful of Mason - packages (basedpyright, autotools-language-server, codespell, - mdformat, nginx-language-server, systemdlint, yamllint) install - themselves into per-pkg venvs via pip. Ubuntu 20.04's - `/usr/bin/python3` is 3.8 (too old, and `basedpyright` pulls - `nodejs-wheel-binaries` whose only Linux wheels are manylinux — - rejected by Nix's python, forcing a source build that needs gcc 12+). - `bootstrap.sh` installs `python3.11` from the deadsnakes PPA — it's - Ubuntu-native, accepts manylinux wheels, and the versioned name - (`python3.11`) leaves `/usr/bin/python3` untouched. On an existing - VM run `sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt-get -update && sudo apt-get install python3.11 python3.11-venv` once, - then `:MasonToolsInstall` (or `:MasonInstallAll`) in nvim. +- **Mason pip installs need a managed `python3.11`**: a handful of Mason + packages (basedpyright, autotools-language-server, codespell, mdformat, + nginx-language-server, systemdlint, yamllint) install themselves into + per-pkg venvs via pip. Ubuntu 20.04's `/usr/bin/python3` is 3.8 (too + old; also `basedpyright` pulls `nodejs-wheel-binaries` whose only + Linux wheels are manylinux — rejected by Nix's python, which forces a + source build that needs gcc 12+). `bootstrap.sh` runs `uv python +install 3.11` (uv is in the nix profile) and symlinks the resulting + binary to `~/.local/bin/python3.11`. It's a portable manylinux-aware + CPython, and the versioned name leaves `/usr/bin/python3` untouched. + On an existing VM run `uv python install 3.11 && ln -sf "$(uv python +find 3.11)" ~/.local/bin/python3.11` once, then `:MasonToolsInstall` + (or `:MasonInstallAll`) in nvim. - **Ubuntu apt collisions**: Nix-installed binaries appear first in PATH. The leaf-tools policy above exists precisely to keep this shadowing contained to harmless tools. |
