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

离线环境拷贝迁移 conda envs 环境(蛮力方法,3行命令)

前言

最近要使用 GPU 服务器做实验,可惜的是,有网络连接的服务器显卡旧,算力不够;显卡较新的机器没有联网。于是有需求将旧机器上配置好的 conda 环境迁移至新机器。网上给的默认方法生成 yaml 文件迁移等 需要联网,只有直接把库文件都拷贝过去才不需要网络。下面记录一下迁移过程。

备注:请确保机器 B 已经安装 CUDA 等必要环境,以及系统架构(amd64 etc.)与机器A一致。

正文

下文中,旧机器(可以联网的机器)称为机器A,不能联网的目标机器称为机器B。

首先在机器 B 中需要先安装 conda。这里 conda 的安装不做赘述,我使用的是 Miniconda 3。

安装过程在另一篇博客中有记录。

语音、机器学习环境搭建记录_"file \"/data/miniconda3/envs/qt-torch/lib/python3_Haulyn5的博客-CSDN博客上一个 docker 容器让我安装奇奇怪怪的库的时候,动了一个系统库的文件,然后之间用的 ohmyzsh 给崩了……正好上一个容器忘了多开几个端口,这次重新搭建一个环境,把零零碎碎的东西记录下来。主要安装了 miniconda, pytorch, coqui ttshttps://blog.csdn.net/Haulyn5/article/details/126780167?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167706416616800186519066%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167706416616800186519066&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-126780167-null-null.blog_rank_default&utm_term=conda#:~:text=26/ohmyzsh%2Dinstallation/-,miniconda,-%E4%B8%8B%E8%BD%BD%E5%9C%B0%E5%9D%80%EF%BC%9A然后大力出奇迹的时候到了。

scp -rP 30724 ~/miniconda3/ root@10.201.200.199:/root/tmp_miniconda3/ 

在主机 A 上执行类似上面的命令,当然要做一些修改。

scp 命令是远程拷贝,首先要有机器 B 的 ssh 权限,-rP 后面的数字是 ssh 连接的端口号,默认是 22;假设主机 A 上 miniconda 的安装目录为 "~/miniconda3",如果不是修改为你的安装路径;将 root 修改为使用主机 B 的用户名,10.201.200.199 修改为机器 B 的 IP 地址,IP地址冒号后面的路径修改为你希望拷贝到的目的路径。

执行后会提醒输入 机器 B 指定用户的 password。输入并回车后就可以看到开始拷贝。大致的效果如下图。

滚动的屏幕可以让你有自己是 hacker 的错觉(

这里其实是将所有的 env 都迁移过去了,如果细致到某一个 env,可能就要细节很多了,但是我这边就两个 envs,所以就不做细致考究了,直接大力出奇迹把 miniconda3 目录都扔过去覆盖。具体时间取决于 AB 两台机器之间的网络速度以及库的大小。

12万个文件,共计 8 GB,千兆网线连接,传输用时 1 小时2分钟。

拷贝完,这里我简单将过去的 miniconda 备份了一下,其实不用,反正可以重新安装。如果不重命名的话,记得用 rm 命令删掉,这样干净一点不容易冲突。

mv ~/miniconda3/ ~/miniconda3_backup/

最后一步,将拷贝来的 conda 重命名为 miniconda。

mv /root/tmp_miniconda3/ ~/miniconda3

考虑到现在使用的 shell 也在使用 conda,使用命令 exit 退出重新登陆一下。

重新登陆后使用下面的命令检查环境,然后使用  conda activate 激活环境,至此迁移结束。

conda info -e

 

http://www.lryc.cn/news/16289.html

相关文章:

  • 【数据结构与算法】字符串1:反转字符串I 反转字符串II 反转字符串里的单词 剑指offer(替换空格、左旋转字符串)
  • 深入浅出C++ ——容器适配器
  • 电脑常用知识与工作常用工具
  • JS的事件循环
  • 【阿旭机器学习实战】【31】股票价格预测案例--线性回归
  • 浅谈毫米波技术与应用
  • 给安全平台编写插件模块的思路分享
  • 4123版驱动最新支持《霍格沃茨之遗》,英特尔锐炫显卡带你畅游魔法世界
  • OSI模型和网络协议简介
  • 传感器原理及应用期末复习汇总(附某高校期末真题试卷)
  • 【亲测2022年】网络工程师被问最多的面试笔试题
  • Web前端:全栈开发人员的责任
  • C语言之通讯录的实现
  • 手把手教大家在 gRPC 中使用 JWT 完成身份校验
  • VSCode远程连接服务器
  • 【C++】-- 异常
  • Java中的Stack与Queue
  • xilinx FPGA在线调试方法总结(vivado+ila+vio)
  • 自动化测试——css元素定位
  • ChatGPT可能马上取代你,这是它能做的十个工作
  • ubuntu转储coredump
  • 基于单片机的毕业设计推荐
  • APP测试中ios和androis的区别,有哪些注意点
  • 使用 Xcode 创建第一个 Objective-C 命令行程序 HelloWorld
  • 【蓝桥杯集训8】哈希表专题(3 / 3)
  • Java Scanner 类,超详细整理,适合新手入门
  • 干货 | 中小企业选型 Elasticsearch 避坑指南
  • 全局组件和局部组件
  • 提取括号中的内容
  • 数据结构-算法的空间复杂度(1.2)