From e9501bcd19d264b378d2bf026ef5eb8b2c68c3b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Fri, 24 Oct 2025 14:44:56 +0200 Subject: [PATCH] fix pyenv --- npm_install.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/npm_install.py b/npm_install.py index 9b2555c..1b7776c 100644 --- a/npm_install.py +++ b/npm_install.py @@ -237,25 +237,26 @@ def setup_certbot_venv(venv_dir: Path = Path("/opt/certbot")): PYENV_ROOT.mkdir(parents=True, exist_ok=True) run(["chown", "-R", f"{PYENV_OWNER}:{PYENV_OWNER}", "/opt/npm"], check=False) - pyenv_bin = next((c for c in PYENV_BIN_CANDIDATES if shutil.which(c)), None) if not pyenv_bin: raise RuntimeError("Nie znaleziono 'pyenv' (spróbuj /usr/bin/pyenv lub /usr/lib/pyenv/bin/pyenv).") env_pyenv = os.environ.copy() env_pyenv.update({ - "HOME": "/opt/npm", + "HOME": "/opt/npm", # ważne: wrapper pyenv robi cd $HOME "PYENV_ROOT": str(PYENV_ROOT), - "PATH": "/usr/lib/pyenv/bin:/usr/bin:/bin" + "PATH": "/usr/lib/pyenv/bin:/usr/bin:/bin" # pluginy pyenv (install) + system }) with step(f"Installing Python {PYTHON_VERSION} via pyenv into {PYENV_ROOT}"): run([ - "sudo", "-u", PYENV_OWNER, "-s", "env", + "sudo", "-u", PYENV_OWNER, "-s", + "env", f"HOME={env_pyenv['HOME']}", f"PYENV_ROOT={env_pyenv['PYENV_ROOT']}", f"PATH={env_pyenv['PATH']}", - pyenv_bin, "install", "-s", PYTHON_VERSION - ], env=env_pyenv, cwd="/opt/npm") + "bash", "-lc", + f'cd /opt/npm && "{pyenv_bin}" install -s {PYTHON_VERSION}' + ], env=env_pyenv) profile_snippet = f"""# Auto-generated by setup_certbot_venv # Ustawienia pyenv dla uzytkownika '{PYENV_OWNER}' @@ -317,6 +318,7 @@ fi run(["chown", "-R", f"{PYENV_OWNER}:{PYENV_OWNER}", str(PYENV_ROOT)], check=False) + def configure_letsencrypt(): with step("configure letsencrypt"): run(["chown", "-R", "npm:npm", "/opt/certbot"], check=False)