我可以使用以下命令运行 VS 代码
sudo code ~/.zshrc --user-data-dir="/root/.vscode"
但这让我很烦恼。
我该如何配置才能以 root 身份运行 VScode,而无需 --user-data-dir 参数?
答案1
您可以尝试添加-H
sudo 参数:
-H, --set-home
Request that the security policy set the HOME environment
variable to the home directory specified by the target user's
password database entry. Depending on the policy, this may be
the default behavior.
那将是:
sudo -H code ~/.zshrc
这样,~/.zshrc
仍然会引用您的呼叫用户.zshrc
,但的主目录code
将显示为 root 的主目录(~root
)。
虽然你正在做的事情(以 root 身份运行 vs code)听起来不对。也许你有你的理由,但一般来说,不建议以 root 身份运行程序。
答案2
按着这些次序 :
sudo chown -R <current_user> <path_to_your_vscode_installation_directory>
- 根据您的要求,用户将是
用户:根 - 您可以使用以下命令找到 vscode 目录的路径:
whereis code
例如路径可以是:/usr/share/代码 - 因此最终命令将是:
sudo chown -R root /usr/share/code
这将运行 vscode 作为根无需–用户数据目录争论。
答案3
我也一直在寻找这个答案,并拼凑了几个不同的答案,得出一个简单的脚本,在每次 VSCode 更新后运行一次:
#!/bin/bash
sed -i '/^#!.*/a set -- "$@" "--no-sandbox" "--user-data-dir=~"' /usr/bin/code
sed -i '/^ELECTRON=.*/i VSCODE_PATH="/usr/share/code"' /usr/bin/code
sed -i 's!/code !&--no-sandbox --user-data-dir=~ !' /usr/share/applications/code.desktop
第一个 sed 总是附加修复参数。第二个 sed 修复应用程序启动路径。这些导致 VSCode 从命令行正确启动。但是,最后一个 sed 修复了菜单项,以便从 (debian) 开始菜单启动它会导致应用程序加载。