vc2*_*310 5 linux bash restart anaconda conda
所以我想在Linux服务器上安装conda。为此,我以 root 用户身份运行 bash 脚本,并创建了一个将安装 conda 的新用户。新用户是“ags”。下面添加的是我的 shell 脚本中的行。
echo "Getting the conda installer"
su - ags -c "wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /${install_directory}/ags/miniconda.sh"
echo "Installing conda"
su - ags -c "bash /${install_directory}/ags/miniconda.sh -b -p /${install_directory}/ags/miniconda"
###ERROR PART UNDERNEATH ####
su - ags -c "/${install_directory}/ags/miniconda/condabin/conda init bash"
su - ags -c "export ARCGISHOME=/${install_directory}/ags/arcgis/server; conda activate
Run Code Online (Sandbox Code Playgroud)
但是,我的输出要求我重新启动 shell:
root@my_server:~# su - ags -c "/data/ags/miniconda/condabin/conda init bash"
no change //data/ags/miniconda/condabin/conda
no change //data/ags/miniconda/bin/conda
no change //data/ags/miniconda/bin/conda-env
no change //data/ags/miniconda/bin/activate
no change //data/ags/miniconda/bin/deactivate
no change //data/ags/miniconda/etc/profile.d/conda.sh
no change //data/ags/miniconda/etc/fish/conf.d/conda.fish
no change //data/ags/miniconda/shell/condabin/Conda.psm1
no change //data/ags/miniconda/shell/condabin/conda-hook.ps1
no change //data/ags/miniconda/lib/python3.7/site-packages/xontrib/conda.xsh
no change //data/ags/miniconda/etc/profile.d/conda.csh
modified //data/ags/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
root@my_server:~# su - ags -c "conda activate"
-sh: 1: conda: not found
Run Code Online (Sandbox Code Playgroud)
有没有办法重新启动我的 shell (ags) 并在之后仍然保持脚本运行?
Conda 定义conda activate为 shell 函数,并将conda init代码放入 init 文件(此处.bashrc)中,以确保在交互 shell 会话开始时定义该函数。重新启动会话的替代方法是source ~/.bashrc.
可能值得注意的是,在已经活动的部分中手动重新分配初始化文件的一个(通常是次要的)问题是,其中的一些代码.bashrc可能是非幂等的(即,多次运行它与运行它具有不同的效果)仅一次)。Fatih Arslan 有一篇不错的博客文章,其中包含有关编写幂等设计的 bash 脚本的技巧。