首页 新闻 会员 周边

CentOS下 dotnet: command not found

0
悬赏园豆:50 [已解决问题] 解决于 2020-08-30 18:50
复制代码
CentOS 8,之前装的2.1是正常的,然后卸载了,再装了3.1的SDK就炸了,始终command not found

[root@iZwz9883ha8ul4wcjros0tZ /]# sudo dnf install dotnet-sdk-3.1
Last metadata expiration check:
2:55:32 ago on Sat 29 Aug 2020 06:44:23 PM CST. Package dotnet-sdk-3.1-3.1.401-1.x86_64 is already installed.
Dependencies resolved.
Nothing to
do.
Complete
!
[root@iZwz9883ha8ul4wcjros0tZ /]# dotnet --info
-
bash: dotnet: command not found
[root@iZwz9883ha8ul4wcjros0tZ
/]# whereis dotnet
dotnet:
/usr/bin/dotnet /usr/lib64/dotnet /etc/dotnet /usr/local/bin/dotnet /usr/share/dotnet /usr/share/man/man1/dotnet.1.gz
[root@iZwz9883ha8ul4wcjros0tZ
/]# ls /usr/bin/dotnet/sdk
3.1.401
[root@iZwz9883ha8ul4wcjros0tZ
/]# ls /usr/lib64/dotnet
host packs shared
[root@iZwz9883ha8ul4wcjros0tZ
/]# ls /usr/local/bin/dotnet/sdk
3.1.401
[root@iZwz9883ha8ul4wcjros0tZ
/]# ls /usr/share/dotnet/sdk
3.1.401
[root@iZwz9883ha8ul4wcjros0tZ
/]#
复制代码
找不到一个满意的昵称的主页 找不到一个满意的昵称 | 菜鸟二级 | 园豆:243
提问于:2020-08-29 21:54
< >
分享
最佳答案
1

试试 https://github.com/dotnet/runtime/issues/2929 中的方法

sudo ln -sf /usr/share/dotnet/dotnet /usr/local/bin/dotnet
收获园豆:45
dudu | 高人七级 |园豆:31007 | 2020-08-30 09:59

试过了  sudo ln -sf /usr/share/dotnet /usr/bin/dotnet

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 11:05

@找不到一个满意的昵称: 直接运行 /usr/bin/dotnet --info 出现什么提示?

dudu | 园豆:31007 (高人七级) | 2020-08-30 11:08

@dudu: -bash: /usr/bin/dotnet: Is a directory

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 11:59
[root@localhost dotnet]# whereis dotnet
dotnet: /usr/bin/dotnet /usr/lib64/dotnet /etc/dotnet /usr/share/man/man1/dotnet.1.gz
[root@localhost dotnet]# ls -l /usr/bin/dotnet
lrwxrwxrwx. 1 root root 30 8月  11 20:05 /usr/bin/dotnet -> ../..//usr/lib64/dotnet/dotnet
[root@localhost dotnet]# ls -l /usr/lib64/dotnet
总用量 120
-rwxr-xr-x. 1 root root 83872 8月  11 20:06 dotnet
drwxr-xr-x. 3 root root    17 8月  29 23:03 host
-rw-r--r--. 1 root root  1116 7月  30 10:08 LICENSE.txt
drwxr-xr-x. 6 root root   153 8月  11 20:02 packs
drwxr-xr-x. 3 root root    21 8月  29 23:04 sdk
drwxr-xr-x. 4 root root    67 8月  29 23:04 shared
drwxr-xr-x. 3 root root    19 8月  29 23:03 templates
-rw-r--r--. 1 root root 31330 7月  30 10:08 ThirdPartyNotices.txt
[root@localhost dotnet]# ls -l /etc/dotnet
总用量 4
-rw-r--r--. 1 root root 18 8月  11 20:05 install_location
[root@localhost dotnet]#

搞了台新的机器也是centos 8

dnf install dotnet-sdk-3.1安装之后一切正常

我准备把老的机器上面的dotnet-sdk全部remove,然后再手动把dotnet的文件夹全部删除之后再安装试试

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 12:05

@找不到一个满意的昵称: /usr/bin/dotnet 的软链接不对,现在可能错误地链接到了/usr/share/dotnet,应该是链接到/usr/share/dotnet/dotnet

dudu | 园豆:31007 (高人七级) | 2020-08-30 13:02

@dudu: 

Complete!
[root@iZwz9883ha8ul4wcjros0tZ /]# dotnet
-bash: dotnet: command not found
[root@iZwz9883ha8ul4wcjros0tZ /]# whereis dotnet
dotnet: /usr/lib64/dotnet /usr/share/dotnet
[root@iZwz9883ha8ul4wcjros0tZ /]# ls /usr/lib64/dotnet
host  packs  shared
[root@iZwz9883ha8ul4wcjros0tZ /]# ls /usr/share/dotnet
sdk  templates
[root@iZwz9883ha8ul4wcjros0tZ /]#

卸载完并手动删除所有dotnet目录之后,再dnf install dotnet-sdk-3.1安装,感觉少了很多东西一样。

跟上面比少了两样东西

1,/usr/lib64/dotnet/目录下没有dotnet

2, /usr/bin/dotnet 目录下没有/usr/lib64/dotnet/dotnet 的软连接

发现版本也不太一样,正常机器是3.1.107, 这台装的是3.1.401

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 14:08

@找不到一个满意的昵称: 用 yum 安装试试

dudu | 园豆:31007 (高人七级) | 2020-08-30 14:22

@dudu: 啥都试了..

 先卸载,然后rm几个dotnet目录,然后yum安装,跟dnf装的没啥区别。

[root@iZwz9883ha8ul4wcjros0tZ]# dnf remove dotnet-sdk-3.1
...
Complete!
[root@iZwz9883ha8ul4wcjros0tZ]# whereis dotnet
dotnet:
[root@iZwz9883ha8ul4wcjros0tZ]# yum install dotnet-sdk-3.1
...
Complete!
[root@iZwz9883ha8ul4wcjros0tZ]# dotnet --info
-bash: dotnet: command not found

然后试着切换版本安装,一样

dnf install https://packages.microsoft.com/centos/8/prod/dotnet-sdk-3.1.107-x64.rpm
...
Complete!
[root@iZwz9883ha8ul4wcjros0tZ]# whereis dotnet
dotnet: /usr/lib64/dotnet /usr/share/dotnet
[root@iZwz9883ha8ul4wcjros0tZ]# ls /usr/lib64/dotnet
host  packs  shared
[root@iZwz9883ha8ul4wcjros0tZ]# ls /usr/share/dotnet
sdk  templates
[root@iZwz9883ha8ul4wcjros0tZ]# dotnet --info
-bash: dotnet: command not found

装出的目录跟(正常)虚拟机里面的都不一样/usr/lib64/dotnet/下少个dotnet

不知道什么原因,同样的CentOS 8.2,包都是3.1.107_x64,装出来目录和文件都不一样

找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 17:21

@找不到一个满意的昵称: 建议参考微软官方文档,先试试 scripted install,如果还是不行,试试 manual install

dudu | 园豆:31007 (高人七级) | 2020-08-30 17:41

@dudu: 感谢dudu,你太有耐心了... 终于好了,我之前也是一直看的官方文档安装的,前面的方式都试过了;始终有点排斥手动安装,怕搞不定。

#提取(下载自己需要的版本) dotnet-sdk-3.1.401-linux-x64.tar.gz 到 /usr/local/bin/dotnet 目录
[root@iZwz9883ha8ul4wcjros0tZ ~]# mkdir -p "/usr/local/bin/dotnet" && tar zxf dotnet-sdk-3.1.401-linux-x64.tar.gz -C "/usr/local/bin/dotnet"

#提取完之后需要配置一个软连接到/usr/bin/dotnet,也可以配置环境变量,否则dotnet: command not found 
[root@iZwz9883ha8ul4wcjros0tZ ~]# ln -sf /usr/local/bin/dotnet/dotnet /usr/bin/dotnet

[root@iZwz9883ha8ul4wcjros0tZ ~]# whereis dotnet
dotnet: /usr/bin/dotnet /usr/local/bin/dotnet

[root@iZwz9883ha8ul4wcjros0tZ ~]# dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.401
 Commit:    39d17847db
 ...
找不到一个满意的昵称 | 园豆:243 (菜鸟二级) | 2020-08-30 18:49
其他回答(3)
0

确定装好了?要环境变量的吧

收获园豆:5
56180825 | 园豆:1756 (小虾三级) | 2020-08-29 22:14
0

我安装5.0 也是遇到了这个问题。装了几次,都是失败。
发现我先安装的.net core runtime,然后再安装的sdk。可能因为安装顺序不对,造成的。
--后来用新系统重新安装,先安装sdk,安装包要比 先安装runtime的时候,大了100M左右,安装之后,runtime 5.0也带上了的,并且dotnet 命令可以顺利执行。
我猜测,可能是sdk和runtime 安装顺序的问题。

ccli | 园豆:202 (菜鸟二级) | 2021-11-03 17:25
0

搞了半天,你这个是忘记卸载host了 所以dotnet命令无效。
正确做法 卸载全部netcore包 命令:【sudo yum remove dotnet-host】,(https://docs.microsoft.com/zh-cn/dotnet/core/install/remove-runtime-sdk-versions?pivots=os-linux)里有写。

然后重新安装
1,sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
2,sudo yum install dotnet-sdk-5.0 (这步骤SDK包已经包含了运行时)

安装完毕后 执行 dotnet --info 就可以了,如果出现info信息 就ok了,不用再添加软连接啥的

华北峰 | 园豆:9 (初学一级) | 2021-12-10 14:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册