fix: use 'sudo env PYTHONPATH=...' instead of -E for sudo re-exec
This commit is contained in:
+3
-6
@@ -120,13 +120,10 @@ def interactive(mode: str | None, output: Path | None, keep_rootfs: bool, yes: b
|
||||
args.append("--keep-rootfs")
|
||||
if output:
|
||||
args.extend(["-o", str(output)])
|
||||
env = os.environ.copy()
|
||||
# include user site-packages so root can find click/pyyaml/rich/questionary
|
||||
# use 'sudo env PYTHONPATH=...' so root finds user-installed packages
|
||||
user_site = site.getusersitepackages()
|
||||
if user_site and os.path.isdir(user_site):
|
||||
existing = env.get("PYTHONPATH", "")
|
||||
env["PYTHONPATH"] = f"{user_site}:{existing}" if existing else user_site
|
||||
_sp.run(["sudo"] + args, check=True, env=env)
|
||||
sudo_cmd = ["sudo", "env", f"PYTHONPATH={user_site}"] + args
|
||||
_sp.run(sudo_cmd, check=True)
|
||||
return
|
||||
|
||||
if cfg["_mode"] == "fakeroot":
|
||||
|
||||
Reference in New Issue
Block a user