如何在 macOS 移除 .NET Core ?

2018-02-06 09:42:32来源:http://oomusou.io/netcore/mac-uninstall/作者:點燈坊人点击

分享

由于 Microsoft 所提供的 .NET Core SDK 安装档是 pkg 格式,优点是安装很方便,只要下一步下一步就好,但缺点是移除时比较麻烦。


Vervion

macOS High Sierra 10.13.3


.NET Core SDK 2.1.4


下载 .NET Core Uninstall Script
dotnet-uninstall-pkgs.sh

#!/usr/bin/env bash
#
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
current_userid=$(id -u)
if [ $current_userid -ne 0 ]; then
echo "$(basename "$0") uninstallation script requires superuser privileges to run" >&2
exit 1
fi
# this is the common suffix for all the dotnet pkgs
dotnet_pkg_name_suffix="com.microsoft.dotnet"
dotnet_install_root="/usr/local/share/dotnet"
dotnet_path_file="/etc/paths.d/dotnet"
dotnet_tool_path_file="/etc/paths.d/dotnet-cli-tools"
remove_dotnet_pkgs(){
installed_pkgs=($(pkgutil --pkgs | grep $dotnet_pkg_name_suffix))
for i in "${installed_pkgs[@]}"
do
echo "Removing dotnet component - /"$i/"" >&2
pkgutil --force --forget "$i"
done
}
remove_dotnet_pkgs
[ "$?" -ne 0 ] && echo "Failed to remove dotnet packages." >&2 && exit 1
echo "Deleting install root - $dotnet_install_root" >&2
rm -rf "$dotnet_install_root"
rm -f "$dotnet_path_file"
rm -f "$dotnet_tool_path_file"
echo "dotnet packages removal succeeded." >&2
exit 0


此为 .net core 官方所提供的 uninstall script 。


16 行



dotnet_pkg_name_suffix="com.microsoft.dotnet"



只要是 com.microsoft.dotnet 开头的 package,都是 .net core 所安装。


21 行



remove_dotnet_pkgs(){
installed_pkgs=($(pkgutil --pkgs | grep $dotnet_pkg_name_suffix))
for i in "${installed_pkgs[@]}"
do
echo "Removing dotnet component - /"$i/"" >&2
pkgutil --force --forget "$i"
done
}


将所有 com.microsoft.dotnet 为开的 package 名称储存为 installed_pkgs 阵列。


将 installed_pkgs 阵列内 package 一一 for 执行,使用 pkgutil —force —forget 移除 package。


35 行



rm -rf "$dotnet_install_root"
rm -f "$dotnet_path_file"
rm -f "$dotnet_tool_path_file"



删除 /usr/local/share/dotnet 目录
删除 /etc/paths.d/dotnet 档案
删除 /etc/paths.d/dotnet-cli-tools 档案

有此可见,要乾净移除 .NET Core SDK,必须包含 :



移除所有 com.microsoft.dotnet 为首的 package
删除 /usr/local/share/dotnet 目录
删除 /etc/paths.d/dotnet 与 /etc/paths.d/dotnet-cli-tools 档案

执行 .NET Core Uninstall Script

$ sudo sh ./dotnet-uninstall-pkgs.sh



测试 .NET Core SDK

$ dotnet --version



若出现 command not found ,表示 .NET Core SDK 已经成功移除。


Conclusion
只要是 pkg 格式的安装档,理论上都要原厂提供 反安装档 ,或者 uninstall script ,才能彻底的乾净移除,而不能只是将档案拖到 垃圾桶 而已
Reference

.NET Foundation , dotnet-uninstall-pkgs.sh


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台