使用sudo运行程序时未找到dotnet路径



当我用sudo运行一个编译过的程序时,例如:sudo ./program,它说:

必须安装.NET才能运行此应用程序。

应用程序:/home/pi/program架构:arm应用主机版本:6.0.10.NET位置:未找到

了解运行时安装:https://aka.ms/dotnet/app-launch-failed

下载.NET运行时:https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=手臂&rid=raspbian.11arm&apphost_version=6.0.10

然而,它同时安装在rootpi两个帐户中,我知道它与sudo有关,但我不知道如何修复它。Afaik sudo创建了一个干净的环境,但无论我在/etc/sudoers中禁用secure_path,甚至添加路径,它都会不断显示上述消息。

我已经在树莓派3b+中安装了dotnet 6.0.10的脚本版本:

uname -a输出:

Linux raspberrrypi 5.15.74-v7+#1595 SMP 10月26日星期三英国夏令时2022 armv7l GNU/Linux

我已经在rootpi:中导出了两条到env的路径

.bashrc内容:

export DOTNET_ROOT=$HOME/.DOTNETexport PATH=$PATH:$HOME/.dotnet

每次修改后,我都会重新启动几次,env路径会相应地更新,但它总是失败

它的唯一工作方式是使用sudo susudo -i以root身份登录,但每次我想使用root访问运行程序时,这样做都会让人头疼

我能做什么?

好吧,最简单的解决方案总是最好的。

sudo有一个保留环境的参数-E,因此它可以识别网络路径。

一个简单的解决方案是运行sudo -E ./program或创建一个包含-E的别名,并为每次使用保留环境。

显示溶液的sudo参数

最新更新