在Ubuntu上,dotnet运行时安装在哪里?

13

我正在尝试在cron任务中使用dotnet (.NET Core),但似乎dotnet的路径变量不存在于cron的作用域中。我想将dotnet的路径添加到cron中,但需要知道Ubuntu典型安装中dotnet实际安装的位置。另外,了解如何将路径变量添加到cron中也将有所帮助,不过我认为一旦获得了dotnet安装目录,就可以解决这个问题。

4个回答

19

在看到Gomes的评论后,我进行了检查,我的系统似乎两种方法都有效:

$ /usr/bin/dotnet --version
2.1.400
$ /usr/share/dotnet/dotnet --version
2.1.400

我进行了更多的研究,发现在许多Unix方言中(如https://kb.iu.edu/d/acec所述),通常使用whereis命令来查找:

$ whereis dotnet
dotnet: /usr/bin/dotnet /usr/share/dotnet /usr/share/man/man1/dotnet.1.gz

但是经过进一步的审查,我发现/usr/bin/dotnet只是一个指向/share/dotnet/dotnet的符号链接:

/usr/bin$ ll dotnet
lrwxrwxrwx 1 root root 22 Jun 29 17:48 dotnet -> ../share/dotnet/dotnet*

这个页面还展示了如何查看操作系统在运行你在终端输入的命令which command时使用的是哪一个:

$ which dotnet
/usr/bin/dotnet

3
如果您正在使用Snap进行安装(根据Microsoft文档),请使用“whereis dotnet”获取正确的安装路径。 - Jag

8

对于我的情况(我已经使用dotnet-install.sh 脚本在 snap 上安装了 dotnet),路径为 ~/.dotnet。希望能帮到其他人。


5
同时,它没有将该路径添加到PATH环境变量中。因此,我使用sudo ln -s ~/.dotnet/dotnet /usr/bin/dotnet创建了符号链接。 - Makich

1
默认情况下,.NET Core(“dotnet”)安装在/usr/share/dotnet/。
据我所知,无法永久设置cron的路径环境变量,但可以通过在需要该变量的部分之前将脚本添加到crontab文件中来临时设置(请参见此处)。
或者,您可以在crontab中指定dotnet的绝对路径,例如/usr/share/dotnet/dotnet run --project /path/to/csproj/。

1
对于我的电脑,它是usr/bin/dotnet。 - Gomes

0
对于WSL2(Windows下的Linux),情况有些不同:如果您已经在Windows上安装了.NET Core,那么dotnet-install.sh脚本会识别它并不会再次安装。然而,这意味着dotnet命令默认无法使用(即,除非您显式地为其创建别名);相反(对于WSL2),您需要使用dotnet.exe。但是,whereis dotnet仍将显示安装文件夹(该文件夹位于由Windows管理的文件系统的部分)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接