Fix neovim symlink target: was basename(tarball), now explicit NVIM_EXTRACT_DIR
The tarball filename is nvim-linux-arm64.tar.gz but the extracted directory inside it is also named nvim-linux-arm64. However, my original code did $(basename nvim.tar.gz .tar.gz) which returns 'nvim' (strips both the directory and the suffix), creating a symlink to /opt/nvim/bin/nvim that pointed to a non-existent path. Discovered on rye after the bootstrap appeared to succeed but nvim wasn't findable. Fixed by hardcoding the extracted directory name based on the arch case: x86_64: nvim-linux64.tar.gz -> nvim-linux64 aarch64: nvim-linux-arm64.tar.gz -> nvim-linux-arm64 Same fix applied to: - run_once_20-install-user-packages.sh.tmpl (initial install) - dot_local/bin/update-neovim.sh (topgrade-time updates) Verified on rye: /usr/local/bin/nvim -> /opt/nvim-linux-arm64/bin/nvim, 'nvim --version' returns 'NVIM v0.11.4'.
This commit is contained in:
parent
a07596ebf7
commit
5ce06f98de
2 changed files with 18 additions and 6 deletions
|
|
@ -14,8 +14,14 @@ NVIM_TARGET_VERSION="v0.11.4"
|
||||||
|
|
||||||
ARCH="$(uname -m)"
|
ARCH="$(uname -m)"
|
||||||
case "$ARCH" in
|
case "$ARCH" in
|
||||||
x86_64) NVIM_TARBALL="nvim-linux64.tar.gz" ;;
|
x86_64)
|
||||||
aarch64|arm64) NVIM_TARBALL="nvim-linux-arm64.tar.gz" ;;
|
NVIM_TARBALL="nvim-linux64.tar.gz"
|
||||||
|
NVIM_EXTRACT_DIR="nvim-linux64"
|
||||||
|
;;
|
||||||
|
aarch64|arm64)
|
||||||
|
NVIM_TARBALL="nvim-linux-arm64.tar.gz"
|
||||||
|
NVIM_EXTRACT_DIR="nvim-linux-arm64"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "unsupported arch: $ARCH" >&2
|
echo "unsupported arch: $ARCH" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -46,7 +52,7 @@ fi
|
||||||
|
|
||||||
sudo rm -rf /opt/nvim-linux* /usr/local/bin/nvim
|
sudo rm -rf /opt/nvim-linux* /usr/local/bin/nvim
|
||||||
sudo tar -xzf "$TMP_TARBALL" -C /opt/
|
sudo tar -xzf "$TMP_TARBALL" -C /opt/
|
||||||
sudo ln -sf "/opt/$(basename "$TMP_TARBALL" .tar.gz)/bin/nvim" /usr/local/bin/nvim
|
sudo ln -sf "/opt/${NVIM_EXTRACT_DIR}/bin/nvim" /usr/local/bin/nvim
|
||||||
|
|
||||||
echo "neovim $NVIM_TARGET_VERSION installed"
|
echo "neovim $NVIM_TARGET_VERSION installed"
|
||||||
nvim --version | head -1
|
nvim --version | head -1
|
||||||
|
|
@ -68,8 +68,14 @@ fi
|
||||||
NVIM_TARGET_VERSION="v0.11.4"
|
NVIM_TARGET_VERSION="v0.11.4"
|
||||||
ARCH="$(uname -m)"
|
ARCH="$(uname -m)"
|
||||||
case "$ARCH" in
|
case "$ARCH" in
|
||||||
x86_64) NVIM_TARBALL="nvim-linux64.tar.gz" ;;
|
x86_64)
|
||||||
aarch64|arm64) NVIM_TARBALL="nvim-linux-arm64.tar.gz" ;;
|
NVIM_TARBALL="nvim-linux64.tar.gz"
|
||||||
|
NVIM_EXTRACT_DIR="nvim-linux64"
|
||||||
|
;;
|
||||||
|
aarch64|arm64)
|
||||||
|
NVIM_TARBALL="nvim-linux-arm64.tar.gz"
|
||||||
|
NVIM_EXTRACT_DIR="nvim-linux-arm64"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
die "unsupported arch for neovim tarball: $ARCH"
|
die "unsupported arch for neovim tarball: $ARCH"
|
||||||
;;
|
;;
|
||||||
|
|
@ -95,7 +101,7 @@ if [[ -n "$NVIM_TARBALL" ]]; then
|
||||||
fi
|
fi
|
||||||
sudo rm -rf /opt/nvim-linux* /usr/local/bin/nvim
|
sudo rm -rf /opt/nvim-linux* /usr/local/bin/nvim
|
||||||
sudo tar -xzf nvim.tar.gz -C /opt/
|
sudo tar -xzf nvim.tar.gz -C /opt/
|
||||||
sudo ln -sf "/opt/$(basename nvim.tar.gz .tar.gz)/bin/nvim" /usr/local/bin/nvim
|
sudo ln -sf "/opt/${NVIM_EXTRACT_DIR}/bin/nvim" /usr/local/bin/nvim
|
||||||
rm -f nvim.tar.gz
|
rm -f nvim.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue