差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
itwiki:migrate-with-chroot [2024/01/20 09:50] – 创建 ovwx@live.io | itwiki:migrate-with-chroot [Unknown date] (当前版本) – 移除 - 外部编辑 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 使用 CHROOT 完全迁移一个软件环境 ====== | ||
- | |||
- | 因为 PYTHON 环境搭建有些过于复杂了,特别是在应用调用了很多第三方库的情况下,转移到新的系统上面去运行更是可能错误百出,因此将整个环境打包迁移是最好的选择 | ||
- | |||
- | ===== 打包整个环境 ===== | ||
- | |||
- | < | ||
- | mkdir /opt/rootfs | ||
- | mkdir / | ||
- | mkdir / | ||
- | mkdir / | ||
- | mkdir / | ||
- | mkdir / | ||
- | chmod +t / | ||
- | mkdir / | ||
- | cp -rpf /bin /opt/rootfs | ||
- | cp -rpf /sbin /opt/rootfs | ||
- | cp -rpf /usr/share / | ||
- | cp -rpf /lib /opt/rootfs | ||
- | cp -rpf /lib64 /opt/rootfs | ||
- | cp -rpf /usr/bin / | ||
- | cp -rpf /usr/sbin / | ||
- | cp -rpf /usr/lib / | ||
- | cp -rpf /usr/lib64 / | ||
- | cp -rpf / | ||
- | cp -rpf /etc/bashrc / | ||
- | cp -rpf / | ||
- | cp -rpf /etc/passwd / | ||
- | cp -rpf /etc/shadow / | ||
- | cp -rpf / | ||
- | cp -rpf / | ||
- | </ | ||
- | |||
- | ===== 为环境挂载设备文件 ===== | ||
- | |||
- | 不挂载的话可能导致部分功能异常 | ||
- | |||
- | < | ||
- | mount -t proc /proc / | ||
- | mount --bind /sys / | ||
- | mount --bind /dev / | ||
- | mount --bind /dev/pts / | ||
- | mount --bind /dev/shm / | ||
- | </ | ||
- | |||
- | ===== 切换到指定环境并试运行软件包 ===== | ||
- | |||
- | < | ||
- | |||
- | chroot / | ||
- | micromamba activate PY377 | ||
- | # | ||
- | |||
- | </ | ||
- | |||
- | 我们可以注意到使用CHROOT迁移环境还是具有一定的复杂性的,如果没有涉及发行版本变化太大的话,还是使用 conda-pack 去迁移环境更好,这样环境会更干净一些,如果按照本文方式去迁移的话,一个应用就至少3~4个G了,但这样的话在新机器上正常运行的概率可以达到95%以上。 | ||
- | |||
- | |||