win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)

wsl2

安装好后环境测试效果如下,支持命令nvidia-smi,不支持命令nvcc,usr/local目录下没有cuda文件夹。
在这里插入图片描述

系统迁移到非C盘

wsl安装的系统默认在c盘,为节省c盘空间进行迁移。
1、输出wsl -l 查看要迁移的系统名称
在这里插入图片描述
2、执行导出命令:wsl --export Ubuntu-20.04 ./Ubuntu-20.04.tar ,以下命令将系统导出到F盘,文件名为Ubuntu-20.04.tar
在这里插入图片描述
https://zhuanlan.zhihu.com/p/536686989

3、注销原来的环境,命令格式为wsl --unregister (系统名称) 具体案例为: wsl --unregister Ubuntu-20.04

4、执行导入命令 ,命令格式为 wsl --import (发行版) (安装位置) (文件路径以及文件名称) ,具体案例为:wsl --import Ubuntu-20.04 F:\Ubuntu-20.04 F:\Ubuntu-20.04.tar --version 2,–version 2表示是wsl2导出的系统
在这里插入图片描述

配置国内源

1、备份sources.list文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、nano /etc/apt/sources.list , 将内容替换为以下(配置阿里云)。参考 https://zhuanlan.zhihu.com/p/421178143

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

3、然后执行 sudo apt-get update
sudo apt-get upgrade

安装conda环境

1、下载miniconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_23.11.0-1-Linux-x86_64.sh
2、创建可执行权限 chmod 777 Miniconda3-py39_23.11.0-1-Linux-x86_64.sh
3、执行安装命令
在这里插入图片描述
4、测试conda命令,如果执行报错,则配置环境变量。具体操作为在/etc/profile文件的最后面添加一行 export PATH=$PATH:/root/miniconda3/bin,文件保存后再执行 source /etc/profile
5、执行 conda init bash ,然后再执行 bash即可进入conda环境
在这里插入图片描述

pip配置豆瓣源

mkdir ~/.pip
nano ~/.pip/pip.conf
输入以下内容

[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

安装pytorch-gpu环境

安装命令 :pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu121
可以根据自己的cuda版本到官网查找对应安装命令 https://pytorch.org/get-started/previous-versions/
安装结果如下所示
在这里插入图片描述
验证安装效果,import torch ;torch.cuda.is_available()
在这里插入图片描述

安装paddle-gpu环境

安装命令:python -m pip install paddlepaddle-gpu==2.6.0.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
详细安装教程:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
在这里插入图片描述

测试paddle环境出现报错
报错一 ImportError: libgomp.so.1: cannot open shared object file: No such file or directory
执行 apt-get install libgomp1 ,安装libgomp库,然后再次测试paddle环境,出现报错二

报错二 ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version ‘GLIBCXX_3.4.30’ not found (required by /root/miniconda3/lib/python3.9/site-packages/paddle/base/libpaddle.so)
1、先安装binutils 工具,apt install binutils
2、执行以下命令 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX,查看所支持的c++版本信息。可以看到刚好差了一点
在这里插入图片描述
补充知识,GCC 版本 GLibC C++ ABI libstdc++.so 版本可以到以下链接查看
https://www.cnblogs.com/freelancy/p/17012054.html
在这里插入图片描述
3、尝试查找系统最高版本的/libstdc++.so.6进行覆盖,目前可以找到的最高版本也进行29,与目标版本还是存在差距
在这里插入图片描述
**解决方案一 **:只针对cuda12以下程序有效
降低paddle版本,将paddle版本降低到2.4,可能会出现报错 ImportError: libpython3.9.so.1.0: cannot open shared object file: No such file or directory;
1、先执行命令 find / -name libpython3.9.so.1.0
在这里插入图片描述
2、将python可执行程序拷贝到系统程序目录下
cp /root/miniconda3/lib/libpython3.9.so.1.0 /usr/lib
3、验证效果
在这里插入图片描述
解决方案二:编译安装 (直接apt install gcc-13 也可以解决问题,只是网络太卡)
参考https://zhuanlan.zhihu.com/p/498529973实现gcc-13.2.0的编译安装,整个编译过程很顺利
下载编译gcc-13.2.0库

sudo apt-get install build-essential #安装编译程序依赖项#编译gcc.13.2.0
wget http://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar -xvf gcc-13.2.0.tar.gz
cd gcc-13.2.0
mkdir build
cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j 16  #16个线程进行编译,数量可以是cpu内核的两倍

在这里插入图片描述

安装gcc++,可以看到所生成的文件名称为/usr/local/lib64/libstdc++.so.6.0.32

#安装gcc.13.2.0
make install 
ls /usr/local/lib64/*c++.so*
cp /usr/local/lib64/libstdc++.so.6.0.32  /lib/x86_64-linux-gnu/

在这里插入图片描述
此时执行strings /usr/local/lib64/libstdc++.so.6.0.32 | grep GLIBCXX命令,可以看到以下内容:
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_3.4.31
GLIBCXX_3.4.32

修改原有软连接,最终执行效果如下图所示

 cd /lib/x86_64-linux-gnu/ll libstdc++*rm libstdc++.so.6ln -sf libstdc++.so.6.0.32 libstdc++.so.6

在这里插入图片描述
后续如果出现cuda库的报错,请先完成ubuntu下cuda+cudnn的安装
在这里插入图片描述

安装cuda与cudnn

参考 https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local 安装cuda11.8

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

参考 https://developer.nvidia.com/cudnn-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local

#wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2004-9.0.0_1.0-1_amd64.deb
wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

最后执行命令apt install nvidia-cuda-toolkit

wsl1

Command nvidia-sminot found

在wsl系统中不支持nvidia-smi命令,可以改用nvidia-smi.exe命令
Command ‘nvidia-smi’ not found, but can be installed with:
在这里插入图片描述
在使用nvcc命令时,可能也会存在报错。可以尝试执行 /usr/local/cuda/bin/nvcc 试一下
Command ‘nvcc’ not found, but can be installed with:
在这里插入图片描述
这个可以在/etc/profile文件中增加环境变量,将/usr/local/cuda/bin添加到path中,具体操作如下所示
步骤一、在/etc/profile文件中新增一行 export PATH=$PATH:/usr/local/cuda/bin/
在这里插入图片描述
步骤二、输入命令 source /etc/profile 使刚刚修改的环境变量生效
步骤三、输入 nvcc命令进行测试
在这里插入图片描述

cuda库报错
Error: libcudart.so.11.0: cannot open shared object file: No such file or directory
先执行以下命令,查找一下libcudart.so文件所在路径。
步骤一: 执行命令 find /usr/local/cuda/ -name libcudart.so*,找到其路径为·/usr/local/cuda/targets/x86_64-linux/lib/

在这里插入图片描述
步骤二:将·/usr/local/cuda/targets/x86_64-linux/lib/添加到系统环境变量中。也就是添加到/etc/profile文件中,最终效果如下图所示
在这里插入图片描述

步骤二、输入命令 source /etc/profile 使刚刚修改的环境变量生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/261367.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

找座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位…

移动端学习:实现App中的下载功能,在手机接管文件系统

我感觉把学习中遇到的问题记录下来,写成文章,然后和很多人一起讨论,还是一个很不错的学习方法的。 问题描述 请问有大佬知道vue2项目打包的apk的导出功能为什么失效了吗?网页,h5的应该还是可以下载的。我又不想导出功能和后端有交互,想纯前端下载,网页的下载写法好像打…

UE5 C++ 静态加载资源和类

一.上篇文章创建组件并绑定之后 在Actor中加载初始化了组件&#xff0c;现在在组件中赋值。使用static ConstructorHelpers::FObjectFinder<T>TempName(TEXT("Copy Reference"))&#xff1b;再用TempName.Object //静态加载资源static ConstructorHelpers::FOb…

Unity MVC开发模式与开发流程详解

在Unity游戏开发中&#xff0c;采用MVC&#xff08;Model-View-Controller&#xff09;模式是一种非常常见的设计模式。MVC模式将应用程序分为三个部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#x…

shell脚本实现Mysql分库分表备份

一.数据库的分库分表&#xff1f; 12张图把分库分表讲的明明白白&#xff01;阿里面试&#xff1a;我们为什么要分库分表https://mp.weixin.qq.com/s?__bizMzU0OTE4MzYzMw&mid2247547792&idx2&sn91a10823ceab0cb9db26e22783343deb&chksmfbb1b26eccc63b784879…

【云原生】Docker 安全与CA证书生成

目录 容器的安全行问题 Docker 容器与虚拟机的区别 Docker 存在的安全问题 1.Docker 自身漏洞 2.Docker 源码问题 Docker 架构缺陷与安全机制 1. 容器之间的局域网攻击 2. DDoS 攻击耗尽资源 3. 有漏洞的系统调用 4. 共享root用户权限 Docker 安全基线标准 1. 内…

CSB ---> (XXE)XML基础

本来今天想更一下CSbeacon上线多层的内网机器的&#xff0c;但是刚好今天是年后的第一节课&#xff0c;讲的是XXE的基础&#xff0c;那就来先盘一下基础&#xff01;&#xff01; 1.XXE XXE全称是XML External Entity即xml外部实体注入攻击&#xff01;其后果会导致用户…

蓝桥杯嵌入式第12届真题(完成) STM32G431

蓝桥杯嵌入式第12届真题(完成) STM32G431 题目 程序 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body**************************…

【Java EE初阶二十一】http的简单理解(二)

2. 深入学习http 2.5 关于referer Referer 描述了当前页面是从哪个页面跳转来的&#xff0c;如果是直接在地址栏输入 url(或者点击收藏夹中的按钮) 都是没有 Referer。如下图所示&#xff1a; HTTP 最大的问题在于"明文传输”,明文传输就容易被第三方获取并篡改. …

【前端】前端三要素之BOM

写在前面&#xff1a;本文仅包含BOM内容&#xff0c;JavaScript传送门在这里&#xff0c;DOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可以评…

提升网络质量:UDPspeeder 实现网络优化与提速

提升网络质量&#xff1a;UDPspeeder 实现网络优化与提速 背景与意义原理与功能使用方法未来展望相关链接服务 在当今高度互联的网络环境下&#xff0c;网络质量的优化和提速对于用户体验至关重要。针对高延迟和丢包率较高的网络链路&#xff0c;UDPspeeder 提供了一种前向纠错…

【设计模式】01-装饰器模式Decorator

作用&#xff1a;在不修改对象外观和功能的情况下添加或者删除对象功能&#xff0c;即给一个对象动态附加职能 装饰器模式主要包含以下角色。 抽象构件&#xff08;Component&#xff09;角色&#xff1a;定义一个抽象接口以规范准备接收附加责任的对象。具体构件&#xff08…

铌酸锂芯片与精密划片机:科技突破引领半导体制造新潮流

在当今快速发展的半导体行业中&#xff0c;一种结合了铌酸锂芯片与精密划片机的创新技术正在崭露头角。这种技术不仅引领着半导体制造领域的进步&#xff0c;更为其他产业带来了前所未有的变革。 铌酸锂芯片是一种新型的微电子芯片&#xff0c;它使用铌酸锂作为基底材料&#x…

网页数据的解析提取(正则表达式----re库详解)

前面&#xff0c;我们已经可以用requests库来获取网页的源代码&#xff0c;得到HTML代码。但我们真正想要的数据是包含在HTML代码之中的。要怎样才能从HTML代码中获取想要的信息呢&#xff1f;正则表达式是一个万能的方法&#xff01;&#xff01;&#xff01; 目录 正则表达…

Retrofit2原理分析

Retrofit官网 GitHub上的Retrofit 使用Retrofit进行网络请求的主要步骤 创建一个接口 用于描述HTTP请求。接口里的方法使用注解来标记请求方式、API路径、请求参数等信息。使用Retrofit.Builder().build();配置和创建一个Retrofit实例&#xff1b;调用retrofit.create()方法获…

1.3.mysql5.7安装包安装

安装包程序 双击安装 勾选后点击【next】 选择第二个默认安装后点击【next】 点击【Execute】 输入密码&#xff08;默认密码&#xff1a;tuners2012&#xff09;&#xff0c;点击【next】

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错&#xff1a; 解决方案&#xff1a; 将监听端口改成3000或者其他 修改后结果&#xff1a; 参考原文&#xff1a; Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

【电子书】游戏开发

资料 wx&#xff1a;1945423050 整理了一些互联网电子书&#xff0c;推荐给大家 游戏开发 ADOBE FLASH PROFESSIONAL CS6 标准培训教材.epubAndroid 3D 游戏案例开发大全.epubCocos Creator游戏开发实战.epubCocos2D-X游戏开发技术精解.epubCocos2d-JS游戏开发快速入门到实战…

电脑进水无法开机怎么办 电脑进水开不了机的解决方法

意外总是会不定时打破你的计划&#xff0c;电脑这类电器最怕遇到的除了火还有水&#xff0c;设备进水会导致数据丢失&#xff0c;那么我们遇到电脑进水怎么办&#xff1f;进水之后不正确处理也会引起很多不必要的麻烦. 解决办法 第一步&#xff1a;关机 如果您的电脑是在开…

Docker技术仓库

数据卷 为什么用数据卷&#xff1f; 宿主机无法直接访问容器中的文件容器中的文件没有持久化&#xff0c;导致容器删除后&#xff0c;文件数据也随之消失容器之间也无法直接访问互相的文件 为解决这些问题&#xff0c;docker加入了数据卷机制&#xff0c;能很好解决上面问题…