我正在尝试在cron任务中使用dotnet (.NET Core),但似乎dotnet的路径变量不存在于cron的作用域中。我想将dotnet的路径添加到cron中,但需要知道Ubuntu典型安装中dotnet实际安装的位置。另外,了解如何将路径变量添加到cron中也将有所帮助,不过我认为一旦获得了dotnet安装目录,就可以解决这个问题。
在看到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
对于我的情况(我已经使用dotnet-install.sh 脚本在 snap 上安装了 dotnet),路径为 ~/.dotnet
。希望能帮到其他人。
sudo ln -s ~/.dotnet/dotnet /usr/bin/dotnet
创建了符号链接。 - Makichdotnet-install.sh
脚本会识别它并不会再次安装。然而,这意味着dotnet
命令默认无法使用(即,除非您显式地为其创建别名);相反(对于WSL2),您需要使用dotnet.exe
。但是,whereis dotnet
仍将显示安装文件夹(该文件夹位于由Windows管理的文件系统的部分)。