当前位置: 首页 > news >正文

【速写】conda安装(linux)

序言

昨天叶凯浩空降(全马241),降维打击,10分24秒断层夺冠。

夏潇阳10分53秒绝杀小崔10分54秒第2,小崔第3,均配都在3’30"以内,即便我是去年巅峰期也很难跑出这种水平。我就知道他去年大一刚过来5000米校运会就能跑19分02秒,显然天赋很好,只是没想到这么快就已经把我都拉开这么多了。

我是第4个跑回田径场,可惜最后100米被代陈一给反超,年轻人突出一个不讲武德,我还以为是艾鑫追上来。11分44秒(3’32"+3’53"+3’54"+24.5"),均配只有3’46",被前三慢了接近1分钟,现在就算认真跑也只有这种水平咯,令人唏嘘。

其实本来也就是拉亦童跑一跑的,实际上他最终也跑进了6分配,到今天已经能跑4K了,只要愿意,总还是能跑起来的,没那么难。


题述

下面记录的是与deepseek的对话,最近A800服务器被回收,日常不做人事,重回老破小的V100集群。之前因为集群有几次磁盘出问题,无法写入,home下好多自己的文件都被root权限接管,删又删不掉,关键还有一个venv也被接管,conda都remove不掉,只好重新安装一遍conda了。

它给出的方案确实可行,我觉得是很有帮助。一个很好用的小trick,linux上nvcc -v以及nvidia -smi命令都行不通的话,ls /usr/local | grep cuda是很好用的办法、

不得不说腰部以下的技术培训机构差不多都可以出局了,大模型第一波打烂的就是教培的腿,尽管我还是无法去解释模型为什么能够如此正确,至少从表面上来看,它并不是想象中的那么机械,总还是能启迪人做一些有趣的事情,大概算是有一点生动的吧。

值得关注的ICLR的BEST PAPER:AnyEdit: Edit Any Knowledge Encoded in Language Models,知识编辑,其实就是试图去解释了。

我对LLM可解释的观点是,目前想要解释模型的每个参数显然是不现实的,但至少我们应该想办法解释一些module,就像diffusers的U-Net的一些研究那样,这样的研究是有意义的。

但模型解释又是一个悖论,它无可避免地带来backdoor attack,安全性又受到威胁,如果我们为了安全似乎不该去解释模型,模型越黑越好,这样谁都不能走后门,众生平等。

但是倘若不解释,我们又很恐惧他的力量,不知这种力量从何而来,让人更加感觉不安全。

令人费解。

或许应该用“他”,而不是“它”了。


文章目录

  • 序言
    • 题述
    • 问题一:conda权限问题
      • 方案 1:请求管理员协助(推荐)
      • 方案 2:个人安装 MiniConda(无root权限)
      • 方案 3:使用虚拟环境(如果基础conda可用)
      • 方案 4:使用 pip --user 安装
      • 建议:
    • 问题二:安装conda到用户
      • **步骤 1:下载 Anaconda 安装脚本**
      • **步骤 2:运行安装脚本**
      • **步骤 3:激活 Conda**
      • **步骤 4:测试 Conda**
      • **常见问题解决**
      • **卸载方法**
      • **总结**
    • 问题三:conda install v.s. pip install
      • **1. 核心原则**
      • **2. 你的包列表分析**
      • **3. 推荐安装命令**
        • **方案 1:混合安装(最优灵活性)**
        • **方案 2:纯 Conda(稳定性优先)**
      • **4. 关键注意事项**
      • **5. 验证安装**
      • **总结建议**
    • 问题四:如何查看cuda的版本号?
      • **方法 1:通过 `nvcc` 编译器(最准确)**
      • **方法 2:通过 `nvidia-smi`(驱动兼容版本)**
      • **方法 3:检查 CUDA 安装路径**
      • **方法 4:查看动态库版本**
      • **方法 5:通过 PyTorch 验证(间接确认)**
      • **关键区别说明**
      • **常见问题**
      • **下一步建议**
    • 问题五:cuda版本已查询
      • **1. 安装 PyTorch(CUDA 11.3 版本)**
        • **通过 Conda 安装(推荐)**
        • **通过 Pip 安装**
      • **2. 验证 PyTorch 是否能识别 GPU**
      • **3. 安装其他依赖(vLLM 等)**
        • **vLLM**
        • **其他库(无严格CUDA限制)**
      • **4. 备选方案**
      • **关键注意事项**
      • **附:CUDA 11.3 兼容的 PyTorch 版本参考**


问题一:conda权限问题

我在linux服务器上工作,我是一个普通user,username是caoyang,home在 /nfsshare/caoyang下面,我发现conda命令安装在 /nfsshare/apps/anaconda3/bin/conda,即受root权限约束,我现在无法通过conda命令创建环境以及安装package,因为权限不够。有何解决方案?


你在使用 conda 时遇到权限问题,因为 anaconda3 目录归 root 所有。以下是几种解决方案:

方案 1:请求管理员协助(推荐)

最安全的方式是联系服务器管理员:

  1. 请求将 /nfsshare/apps/anaconda3 目录的组权限改为可写(例如 chmod -R g+w
  2. 或将你的用户加入有权限的组
  3. 或为你创建软链接到有权限的目录

方案 2:个人安装 MiniConda(无root权限)

# 下载 Miniconda(选择适合的版本)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 安装到你的home目录
bash Miniconda3-latest-Linux-x86_64.sh -b -p /nfsshare/caoyang/miniconda3# 初始化conda
/nfsshare/caoyang/miniconda3/bin/conda init bash# 重新加载配置
source ~/.bashrc

方案 3:使用虚拟环境(如果基础conda可用)

# 创建环境时指定有权限的目录
conda create --prefix /nfsshare/caoyang/my_env python=3.8# 激活时指定完整路径
conda activate /nfsshare/caoyang/my_env

方案 4:使用 pip --user 安装

# 在已有Python环境中使用
pip install --user package_name

建议:

  1. 优先选择方案2,完全独立且不会影响他人
  2. 安装后建议在 .bashrc 添加:
    export PATH="/nfsshare/caoyang/miniconda3/bin:$PATH"
    
  3. 如果空间有限,可以定期清理缓存:
    conda clean --all
    

这些方案都能避免需要root权限的问题。根据你的具体需求(是否需要特定版本的conda、是否允许自行安装等)选择最适合的方式。


问题二:安装conda到用户

如果我想给自己安装anaconda3呢?

这里我想给自己安装,因为像pip install可以添加--user的参数来指定安装到用户,但是conda似乎就不行,其实这里我也想过如果我给自己再安装一个conda是不是会跟外面root下面的conda冲突呢?不过好像并没有这个问题


如果你想在 Linux 服务器上以普通用户身份(无 root 权限)安装 Anaconda3,可以按照以下步骤操作,所有文件都会安装到你的 home 目录(如 /nfsshare/caoyang/),不会涉及系统目录,因此不需要管理员权限。


步骤 1:下载 Anaconda 安装脚本

进入你的 home 目录,然后下载最新版 Anaconda(Linux 64 位版本):

cd ~  # 进入你的 home 目录
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

(如果网络较慢,可以尝试用 curl -O 或找国内镜像源)


步骤 2:运行安装脚本

bash Anaconda3-2024.02-1-Linux-x86_64.sh

(替换成你下载的实际文件名)

安装过程会询问:

  1. Enter 查看许可协议,然后输入 yes 同意。
  2. 安装路径:默认会安装到 ~/anaconda3(即 /nfsshare/caoyang/anaconda3),直接按 Enter 确认。
    • 如果希望自定义路径(如 /nfsshare/caoyang/my_anaconda3),可以手动输入。
  3. 是否初始化 Conda:输入 yes,这样会自动将 Conda 添加到你的 ~/.bashrc

步骤 3:激活 Conda

安装完成后,重新加载 shell 配置:

source ~/.bashrc

现在你的命令行前会出现 (base),表示 Conda 基础环境已激活。


步骤 4:测试 Conda

conda --version  # 查看 Conda 版本
conda create -n test_env python=3.9  # 创建一个新环境
conda activate test_env  # 激活环境

如果一切正常,说明安装成功!


常见问题解决

  1. conda 命令未找到

    • 如果安装时没有选择自动初始化,需要手动将 Conda 加入 PATH。在 ~/.bashrc 末尾添加:
      export PATH="/nfsshare/caoyang/anaconda3/bin:$PATH"
      
    • 然后运行 source ~/.bashrc
  2. 磁盘空间不足

    • Anaconda 较大(约 3GB+),如果 home 目录空间有限,可以:
      • 安装 Miniconda(精简版,仅包含 Conda + Python)。
      • 安装后定期清理缓存:conda clean --all
  3. 安装包时权限错误

    • 确保所有操作在你的 home 目录下进行,不要尝试写入系统目录(如 /opt/usr/local)。

卸载方法

如果想卸载,直接删除整个 Anaconda 目录即可:

rm -rf ~/anaconda3  # 或你自定义的安装路径

然后清理 ~/.bashrc 中相关的 Conda 初始化代码。


总结

  • 优点:完全独立,不依赖系统权限,可以自由管理环境和包。
  • 缺点:占用个人存储空间(Anaconda 较大,Miniconda 更轻量)。
  • 推荐:如果不需要 Anaconda 的全部科学计算包,可以改用 Miniconda(安装方式类似,但更节省空间)。

如果有其他问题,欢迎继续提问!


问题三:conda install v.s. pip install

我已经安装好了anaconda3,执行which conda显示的路径也是在我的home下的路径。我创建了一个环境conda create --name llm312 python=3.12,现在我激活环境后conda activate llm312,我需要安装vllm,transformers,torch,accelerate,trl,peft等一系列库,你觉得是用conda install更适合,还是pip install更适合?


在你的情况下,选择 conda install 还是 pip install 取决于几个关键因素(尤其是涉及 GPU 加速的 PyTorch 和 vLLM)。以下是详细分析和建议:


1. 核心原则

  • 优先用 conda install:如果 Conda 官方仓库(defaultsconda-forge)有该包,且版本符合需求。
  • 退而用 pip install:当 Conda 没有该包,或需要更灵活的版本控制(如 PyTorch 的特定 CUDA 版本)。

2. 你的包列表分析

包名推荐安装方式原因说明
torchconda installConda 预编译的 PyTorch 通常与 CUDA/cuDNN 兼容性更好(如 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
vLLMpip installConda 无官方包,PyPI 版本更新更快(需确保 PyTorch CUDA 版本匹配)
transformers均可Conda-forge 有该包(conda install -c conda-forge transformers),但 PyPI 更新更快
acceleratepip installConda 版本可能滞后,PyPI 更新更及时
trlpip installConda 无官方包
peftpip installConda 无官方包

3. 推荐安装命令

方案 1:混合安装(最优灵活性)
conda activate llm312# 1. 优先用conda安装PyTorch(确保CUDA兼容性)
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia# 2. 剩余包用pip安装
pip install vllm transformers accelerate trl peft
方案 2:纯 Conda(稳定性优先)
conda install -c conda-forge pytorch torchvision torchaudio  # Conda-forge的PyTorch
conda install -c conda-forge transformers
pip install vllm accelerate trl peft  # 无法用Conda的包

4. 关键注意事项

  • CUDA 版本对齐

    • 运行 nvcc --versionnvidia-smi 查看服务器 CUDA 版本。
    • PyTorch 的 Conda 和 Pip 版本必须匹配该 CUDA 版本(如 pytorch-cuda=12.1pip install torch --index-url https://download.pytorch.org/whl/cu121)。
  • 依赖冲突处理

    • 如果混用 Conda 和 Pip 后出现冲突,优先用 Conda 创建干净环境:
      conda create -n llm312_clean python=3.12
      conda activate llm312_clean
      conda install pytorch...  # 先用Conda装核心包
      pip install ...          # 再用Pip装剩余包
      
  • 虚拟环境隔离

    • 为不同项目创建独立环境(如 llm312 专用于大模型),避免包冲突。

5. 验证安装

# 检查PyTorch是否能识别GPU
python -c "import torch; print(torch.cuda.is_available())"# 检查vLLM等是否可导入
python -c "from vllm import LLM; print('vLLM OK')"

总结建议

  • 推荐方案 1(混合安装):用 Conda 管理 PyTorch 和基础包,Pip 安装其他库。
  • 如果遇到问题,可以尝试:
    • 使用 conda listpip list 对比包来源。
    • 清理缓存后重试:conda clean --all && pip cache purge

如果需要更精确的版本号(如特定 CUDA 的 PyTorch),可以告诉我服务器环境细节,我会提供定制命令。


问题四:如何查看cuda的版本号?

如何查看cuda的版本号?

此时需要确定版本号安装torch


在 Linux 服务器上,可以通过以下几种方法查看 CUDA 版本号(适用于 NVIDIA GPU 环境):


方法 1:通过 nvcc 编译器(最准确)

运行以下命令查看 CUDA 编译器版本

nvcc --version

输出示例

nvcc: NVIDIA (R) Cuda compiler
release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

这里 CUDA 版本是 11.8

⚠️ 如果提示 nvcc: command not found,说明 CUDA Toolkit 未安装或未加入 PATH,尝试其他方法。


方法 2:通过 nvidia-smi(驱动兼容版本)

运行以下命令查看 GPU 驱动支持的 CUDA 版本

nvidia-smi

输出示例

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA A100 80G...  On   | 00000000:00:1B.0 Off |                    0 |
| N/A   35C    P0    50W / 300W |      0MiB / 81920MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

这里 CUDA Version: 12.0 表示驱动支持的最高 CUDA 版本(但实际安装的 CUDA Toolkit 版本可能更低,需用 nvcc 确认)。


方法 3:检查 CUDA 安装路径

如果 CUDA Toolkit 已安装,可以通过路径推断版本:

ls /usr/local | grep cuda

输出示例

cuda
cuda-11.8

这里 cuda-11.8 表示安装了 CUDA 11.8。


方法 4:查看动态库版本

cat /usr/local/cuda/version.txt  # 旧版CUDA

cat /usr/local/cuda/version.json # 新版CUDA

方法 5:通过 PyTorch 验证(间接确认)

如果你已安装 PyTorch,可以运行 Python 代码检查:

python -c "import torch; print(torch.version.cuda)"

输出示例

11.8

关键区别说明

方法实际含义用途
nvcc --version实际安装的 CUDA Toolkit 版本开发时需匹配此版本(如编译代码)
nvidia-smi驱动支持的最高 CUDA 版本运行 CUDA 程序时的兼容性参考
PyTorch 输出的版本PyTorch 构建时使用的 CUDA 版本确保 PyTorch 能调用 GPU

常见问题

  1. nvccnvidia-smi 版本不一致?

    • 这是正常现象,只要 Toolkit 版本 ≤ 驱动支持的版本即可(例如 nvcc 显示 11.8,nvidia-smi 显示 12.0 是兼容的)。
  2. 如何安装 nvcc

    • 需完整安装 CUDA Toolkit(从 NVIDIA 官网下载),或让管理员安装。
  3. 服务器没有 GPU 怎么办?

    • 运行 nvidia-smi 会提示 No devices found,此时无法使用 CUDA。

下一步建议

根据查到的 CUDA 版本,安装对应版本的 PyTorch 和 vLLM:

# 例如 CUDA 11.8
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install vllm -U  # vLLM 会自动匹配PyTorch的CUDA版本

如果需要更具体的帮助,请提供你的 nvcc --versionnvidia-smi 输出结果!


问题五:cuda版本已查询

我查看到cuda版本只有11.3,应该如何安装torch?

此时我是发现直接把它上面给的conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia中的11.8改成11.3并不能找到正确的版本。


如果服务器上的 CUDA 版本是 11.3,你需要安装与之兼容的 PyTorch 版本。以下是具体步骤和注意事项:


1. 安装 PyTorch(CUDA 11.3 版本)

通过 Conda 安装(推荐)
conda activate llm312  # 激活你的环境
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
  • 这会自动安装与 CUDA 11.3 兼容的 PyTorch 版本。
  • 如果下载慢,可以尝试添加国内镜像源(如清华源)。
通过 Pip 安装
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
  • cu113 表示 CUDA 11.3 的预编译版本。

2. 验证 PyTorch 是否能识别 GPU

安装完成后,运行以下命令检查:

python -c "import torch; print(f'PyTorch版本: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}'); print(f'CUDA版本: {torch.version.cuda}')"

期望输出

PyTorch版本: 2.0.1+cu113  # 版本可能不同,但应有`cu113`后缀
CUDA可用: True
CUDA版本: 11.3

如果 CUDA可用: False,说明安装的 PyTorch 与 CUDA 11.3 不匹配,需重新安装。


3. 安装其他依赖(vLLM 等)

由于 CUDA 11.3 较旧,部分库(如 vLLM)可能需要更高版本的 CUDA。以下是兼容性建议:

vLLM
  • vLLM 官方要求 CUDA ≥ 11.8,但可尝试手动安装旧版:
    pip install vllm==0.2.0  # 指定旧版本,可能兼容CUDA 11.3
    
    如果失败,可能需要从源码编译或放弃使用 vLLM。
其他库(无严格CUDA限制)
pip install transformers accelerate peft trl

4. 备选方案

如果 PyTorch 或其他库因 CUDA 11.3 限制无法运行:

  1. 请求管理员升级 CUDA(如升级到 11.8 或 12.x)。
  2. 使用 CPU 版 PyTorch(不推荐,性能极低):
    conda install pytorch torchvision torchaudio cpuonly -c pytorch
    
  3. 改用 Docker 容器(需管理员支持):
    # 使用预装高版本CUDA的容器
    docker run --gpus all -it pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
    

关键注意事项

  • 严格匹配 CUDA 版本:PyTorch、CUDA Toolkit、NVIDIA 驱动三者需兼容。
    • 可通过 PyTorch 官方页面 查找历史版本。
  • 环境隔离:建议为不同 CUDA 版本创建独立 Conda 环境。
  • 错误排查
    • 如果 import torch 报错,尝试重新安装或检查 LD_LIBRARY_PATH 是否包含 CUDA 库路径(如 /usr/local/cuda-11.3/lib64)。

附:CUDA 11.3 兼容的 PyTorch 版本参考

PyTorch 版本安装命令(Conda)安装命令(Pip)
1.12.1conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorchpip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
2.0.1conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 cudatoolkit=11.3 -c pytorchpip install torch==2.0.1+cu113 torchvision==0.15.2+cu113 torchaudio==2.0.2 --extra-index-url https://download.pytorch.org/whl/cu113

如有其他问题,请提供具体的错误信息(如 nvidia-sminvcc --version 的完整输出),我会进一步帮你分析!

相关文章:

  • android ams调试指令介绍
  • 深度学习实验中,需要设置验证集吗?
  • 【计算机视觉】CV实战项目-高分辨率遥感图像语义分割:High-Resolution-Remote-Sensing-Semantic-Segmentation
  • Zookeeper断开连接时分布式锁释放问题的解决方案
  • 线上查询车辆出险记录:快速掌握事故情况!
  • spring-rabbit的CachingConnectionFactory默认参数导致消费者Channel数量暴增问题解决
  • Linux学习——FTP(功能实现)
  • 【KWDB 创作者计划】_KWDB引领数据库技术革新的璀璨之星
  • 《Vue3学习手记6》
  • 【vLLM 学习】CPU 离线处理
  • Alibaba Druid 完整配置与 Keepalive 优化指南
  • 《全球反空间能力》报告翻译——部分1
  • Mysql中隐式内连接和显式内连接的区别
  • 自然语言to SQL的评估
  • 二叉树遍历(C语言版)
  • 小白学习python第四天
  • 跨专业自学AI人工智能学习路线图(2025版)
  • Linux日志处理命令多管道实战应用
  • 【Redis】Redis Zset实现原理:跳表+哈希表的精妙设计
  • 使用PHP对接印度股票市场数据
  • 国家发展改革委:我们对实现今年经济社会发展目标任务充满信心
  • 夜读丨庭院春韵
  • 美国政府将暂时恢复部分受影响留学生的合法身份,并将制订新标准
  • 乌克兰否认俄收复库尔斯克州,称战斗仍在持续
  • 甘肃张掖至重庆航线开通,串起西北与西南文旅“黄金走廊”
  • 中方在IMF发声:美滥施关税威胁全球金融稳定,对新兴市场和发展中国家构成严峻挑战