【conda】普通用户如何使用conda的安装的程序

这是一个非常常见的场景。普通用户要使用 root 用户安装的 Conda,关键在于权限环境变量

~~~root 安装的 Conda 通常路径是 /opt/conda 或 /root/miniconda3 等,其文件所有权属于 root,普通用户默认没有写入权限,但这并不影响使用。

~~~以下是几种方法,从推荐程度排序:

方法一:直接使用(最推荐,最安全)

~~~这种方法只要求 root 用户完成一次性的初始设置,之后普通用户就可以像使用系统命令一样使用 Conda 和管理自己的环境。

步骤:

1. root 用户修改 Conda 目录权限 (只需操作一次):

~~~root 用户需要将 Conda 安装目录及其下所有文件的组所有权改成一个特定的用户组(例如 users),并赋予该组读和执行的权限。这允许属于该组的成员使用 Conda。

bash
# 切换到 root 用户
su -
# 假设你的 Conda 安装在 /root/miniconda3
# 改变 Conda 目录的所属组(例如改为 'users' 组,或者创建一个新组如 ‘conda-users’)
#新创建一个组
groupadd conda-users
chgrp -R users /root/miniconda3
# 为所属组添加读和执行权限
chmod -R g+rx /root/miniconda3

2. 将普通用户添加到该用户组 (只需操作一次):

root 用户将需要使用的普通用户(例如 lili)加入到上一步指定的组中。

bash
# 还是 root 用户下执行
usermod -a -G conda-users lili

~~~此处一定加一个选项-a,如果不加,用户将会离开其他用户组,仅仅作为conda-users用户组的。-a代表append,也就是将用户添加到用户组conda-users中,而不必离开其他用户组。

~~~重要:普通用户需要完全注销后再重新登录,或者开启一个新的终端会话,才能使新的组权限生效。可以执行 groups 命令检查是否成功加入了 users 组。

3. 普通用户初始化 Conda:

普通用户在自己的家目录下初始化 Conda,这样 Conda 的 base 环境会自动激活等设置会写入用户自己的 ~/.bashrc 文件。

bash
# 切换回普通用户 lili
exit
# 执行 Conda 初始化脚本
/root/miniconda3/bin/conda init bash

~~~执行后,关闭当前终端并重新打开一个。你会发现命令提示符前出现了 (base),表示 Conda 的 base 环境已激活。

~~~若没有出现(base),可以使用conda activate /root/miniconda3/启动conda的base环境。

4. 普通用户使用 Conda:

现在你可以正常使用 conda 命令了。

关键:你不能 (conda install -n base pandas) 修改 root 拥有的 base 环境,因为你没有写入权限。尝试这样做会报权限错误。

正确做法:为你自己创建和管理虚拟环境,所有包都安装在虚拟环境中,这些环境默认位于你的家目录 ~/miniconda3/envs/ 下,你有完全的权限。

bash
# 创建一个属于自己的新环境
conda create -n my-env
# 激活该环境
conda activate my-env
# 在新环境里安装任何你想要的包,这不会要求 root 权限
(my-env) conda install pandas numpy

优点:

  • 安全:普通用户无法破坏 root 安装的 base 环境。

  • 方便:一次设置,所有被加入组的用户都能使用。

  • 符合最佳实践:鼓励用户在自己的虚拟环境中工作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容