在 MacOS 上清理我的 .bash_profile 的最安全方法?
Safest method to clean up my .bash_profile on MacOS?
我是 Mac 环境的新手,无意中安装了 Anaconda GUI。我希望完全删除它并安装 Miniconda。我想我是成功的,除了我能找到的 Anaconda 的唯一残余是在我的 .bash_profile
中。它看起来像:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/connor/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/connor/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
我的系统默认包含 .bash_profile
某些东西吗?我应该如何恢复 Anaconda 对我的文件所做的所有更改,或者我是否可以安全地完全删除它?
注意:我还没有安装 Miniconda,正在等待先完全删除 Anaconda 的所有痕迹。
编辑:
此外,我在 .xonshrc
和 .zshrc
中发现了更多人工制品。他们分别表示:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
import sys as _sys
from types import ModuleType as _ModuleType
_mod = _ModuleType("xontrib.conda",
"Autogenerated from $(/Users/connor/opt/anaconda3/bin/conda shell.xonsh hook)")
__xonsh__.execer.exec($("/Users/connor/opt/anaconda3/bin/conda" "shell.xonsh" "hook"),
glbs=_mod.__dict__,
filename="$(/Users/connor/opt/anaconda3/bin/conda shell.xonsh hook)")
_sys.modules["xontrib.conda"] = _mod
del _sys, _mod, _ModuleType
# <<< conda initialize <<<
和
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/connor/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/connor/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
bash 配置文件是一个设置脚本,在您打开终端时运行。在您提供的脚本中,conda 行设置 PATH 环境变量,其中在 those 行中,基本 conda 环境被添加到路径的开头。这样,如果 os 搜索任何二进制文件(例如 python),它首先搜索 conda 和当前激活的环境。由于您删除了所有 anaconda 文件及其关联的二进制文件,此 bash_profile 脚本现在应该什么都不做。
正如 Gordon Davisson 提到的,bash_profile 在您的 mac 上默认不存在。如果 bash_profile 当前不存在,那么 conda 安装程序将创建 bash_profile 并添加 conda 设置行。否则它只是将设置行附加到脚本。一般来说,只删除 bash_profile 中特定于 conda 的行是最安全的,因为其他程序可能太依赖 bash_profile 中设置的环境变量。但是,如果 bash_profile 仅包含与 conda 相关的行,那么您可以安全地删除整个文件。
这些文件中的 None 个(~/.bash_profile
、~/.zshrc
和 ~/.xonshrc
)默认存在于 macOS 中,因此如果 Anaconda 设置是其中唯一的东西,删除它们是安全的。有一个小警告:其他 file/script 可能会假设它们存在并尝试 source
(或 .
)它们;可能值得在您的主目录中搜索所有点文件以查找这些文件名。
顺便说一句,newly-created macOS 用户主目录的默认内容在 /System/Library/User Template/*
中——有一个包含大部分内容的 .../Non_localized
子目录,per-language添加 language-specific 的子目录(例如 .../English.lproj
)。你可以看到有什么:
sudo ls -lA '/System/Library/User Template/'{Non_localized,English.lproj}
我是 Mac 环境的新手,无意中安装了 Anaconda GUI。我希望完全删除它并安装 Miniconda。我想我是成功的,除了我能找到的 Anaconda 的唯一残余是在我的 .bash_profile
中。它看起来像:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/connor/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/connor/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
我的系统默认包含 .bash_profile
某些东西吗?我应该如何恢复 Anaconda 对我的文件所做的所有更改,或者我是否可以安全地完全删除它?
注意:我还没有安装 Miniconda,正在等待先完全删除 Anaconda 的所有痕迹。
编辑:
此外,我在 .xonshrc
和 .zshrc
中发现了更多人工制品。他们分别表示:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
import sys as _sys
from types import ModuleType as _ModuleType
_mod = _ModuleType("xontrib.conda",
"Autogenerated from $(/Users/connor/opt/anaconda3/bin/conda shell.xonsh hook)")
__xonsh__.execer.exec($("/Users/connor/opt/anaconda3/bin/conda" "shell.xonsh" "hook"),
glbs=_mod.__dict__,
filename="$(/Users/connor/opt/anaconda3/bin/conda shell.xonsh hook)")
_sys.modules["xontrib.conda"] = _mod
del _sys, _mod, _ModuleType
# <<< conda initialize <<<
和
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/connor/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/connor/opt/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/connor/opt/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
bash 配置文件是一个设置脚本,在您打开终端时运行。在您提供的脚本中,conda 行设置 PATH 环境变量,其中在 those 行中,基本 conda 环境被添加到路径的开头。这样,如果 os 搜索任何二进制文件(例如 python),它首先搜索 conda 和当前激活的环境。由于您删除了所有 anaconda 文件及其关联的二进制文件,此 bash_profile 脚本现在应该什么都不做。
正如 Gordon Davisson 提到的,bash_profile 在您的 mac 上默认不存在。如果 bash_profile 当前不存在,那么 conda 安装程序将创建 bash_profile 并添加 conda 设置行。否则它只是将设置行附加到脚本。一般来说,只删除 bash_profile 中特定于 conda 的行是最安全的,因为其他程序可能太依赖 bash_profile 中设置的环境变量。但是,如果 bash_profile 仅包含与 conda 相关的行,那么您可以安全地删除整个文件。
None 个(~/.bash_profile
、~/.zshrc
和 ~/.xonshrc
)默认存在于 macOS 中,因此如果 Anaconda 设置是其中唯一的东西,删除它们是安全的。有一个小警告:其他 file/script 可能会假设它们存在并尝试 source
(或 .
)它们;可能值得在您的主目录中搜索所有点文件以查找这些文件名。
顺便说一句,newly-created macOS 用户主目录的默认内容在 /System/Library/User Template/*
中——有一个包含大部分内容的 .../Non_localized
子目录,per-language添加 language-specific 的子目录(例如 .../English.lproj
)。你可以看到有什么:
sudo ls -lA '/System/Library/User Template/'{Non_localized,English.lproj}