概要:
此文章主要内容是一个web2开发老鸟, 在mac OS上搭建 move 开发环境过程中遇到的问题, 以及解决方案, 并在文章下方提供了一些在Linux/Ubuntu及windows上如何做的建议.
macos和ubuntu的terminal操作日志已上传到github仓库 (opens new window), 需要请查看

# 本地环境介绍

每个人经验不同, 请先容我介绍一下自己, 以便你能更准确的类比到自己

# 个人履历

鄙人6年开发经验, 以下描述是重叠的时间线

  • 开发经验

    • 6年Java经验, 具体来说就是spring全家桶
    • 2年Js经验, 具体来说就是react + ts
    • 一点pythoh经验, 具体来说就是最近在微调大模型, 学了一点点python语法以便读懂开源项目的代码
  • 操作系统经验

    • n年使用windows, 一点WSL经验
    • 半年使用ubuntu desktop, 2年ubuntu server
    • 2年使用macos 经验

# 硬件及基础环境

  • 2020款 13寸 MacbookPro M1
  • mac OS Sonoma 14.3
  • node
  • python 3.8
  • clash X Pro (科学上网工具, 默认你也可以科学上网)
  • brew (macos 上安装软件的工具, 类比Debian系的apt, Redhat系的rpm)

# 开始安装

# 安装文档

在安装环境阶段, 这篇文章 (opens new window)是最重要的, 它在官方文档中藏得很深, 正常google是不可能搜出来, 只有阅读move官方文档 (opens new window), 然后依照第二章的提示, 再跳转github才可以. 市面上所有的教程/文章都是基于此的.

摘录并翻译如下:

# 克隆仓库
git clone https://github.com/move-language/move.git

# 进入文件夹并执行脚本
cd move
./scripts/dev_setup.sh -ypt

# 刷新环境
source ~/.profile

# 安装move-cli
cargo install --path language/tools/move-cli

# 确认是否成功
move --help

# 看到如下显示就是成功了
move-cli 0.1.0
Diem Association <opensource@diem.com>
MoveCLI is the CLI that will be executed by the `move-cli` command The `cmd` argument is added here
rather than in `Move` to make it easier for other crates to extend `move-cli`

USAGE:
    move [OPTIONS] <SUBCOMMAND>

OPTIONS:
        --abi                          Generate ABIs for packages
...

# 踩坑之需要安装python3.12

# 执行脚本
(base) ➜  move git:(main) ./scripts/dev_setup.sh -ypt
Welcome to Move!
.....
# 输入 y 确认
Proceed with installing necessary dependencies? (y/N) > y
                    

# 提示python3.12没有, 请安装
(base) ➜  move git:(main) brew install --build-from-source python@3.12

# 踩坑之需要安装xcode-select

需要断开科学上网工具, 否则会安装失败

mac上很多工具编译需要依赖xcode, 我一开始以为是xcode版本不行呢, 一是我是xcodes安装的, 二是不是最新版.
所以我开始卸载xcode, 卸载xcodes -> app store 安装, 但最终发现是科学上网的事.


# 失败, 使用提示安装xcode-select --install
Error: python@3.12: the bottle needs the Apple Command Line Tools to be installed.
  You can install them, if desired, with:
    xcode-select --install

If you're feeling brave, you can try to install from source with:
  brew install --build-from-source python@3.12

# 需要断开科学上网工具, 否则会安装失败
(base) ➜  move git:(main) xcode-select --install


# 安装成功后继续安装python3.12, 成功
(base) -> brew install python@3.12

# 踩坑之科学上网

需要打开真正全局代理, 真正的系统层面的代理, 能代理到terminal命令的那种.

一般软件上显示的全局代理只是代理浏览器访问的页面, 请注意!

# 进入文件夹并执行脚本, 等很长时间....
cd move
./scripts/dev_setup.sh -ypt

# 刷新环境
source ~/.profile

# 踩坑之安装rust

cargo是rust的工具, 需要先安装rust

# 安装move-cli
(base) ➜  move git:(main) cargo install --path language/tools/move-cli 

# 失败, cargo是rust的工具, 而我从没有装过rust, 所以需要先安装rust
brew install rust

# 再次执行
(base) ➜  move git:(main) cargo install --path language/tools/move-cli 

# 终于成功啦

# 确认是否成功
move --help

# 看到如下显示就是成功了
move-cli 0.1.0
Diem Association <opensource@diem.com>
MoveCLI is the CLI that will be executed by the `move-cli` command The `cmd` argument is added here
rather than in `Move` to make it easier for other crates to extend `move-cli`

USAGE:
    move [OPTIONS] <SUBCOMMAND>

OPTIONS:
        --abi                          Generate ABIs for packages
...

# 后续-关上terminal后再打开就不行了

第二天回来, 新开terminal窗口, 准备快乐的学习. but 提示我command not found, what?
原因: move命令没加到环境变量中, 只是临时在哪一个termainl中的seesion中生效了
解决:

  • move使用cargo安装的, 所以先找到cargo的安装目录, 一般是在~/.cargo/bin

  • 把该路径加入到环境变量(我用的是zsh)

    • 打开配置文件vim ~/.zshrc
    • 把以下命令加入到最后export PATH=$PATH:/Users/你的用户名/.cargo/bin
  • 需要刷新配置文件, 让其生效,执行 source ~/.zshrc. 你如果不懂的话就退出terminal再打开就行了

# Linux/Ubuntu 失败

ubuntu 18 , 国内的服务器, 没有上网工具, 失败

  • macos 和 Linux/Ubuntu 同宗同源, 参照上方教程即可
  • 如果你需要了解linux基础知识, 欢迎查看我的这篇鸟哥的Linux私房菜 Ubuntu版 (opens new window)
  • 如果你需要了解ubuntu上安装软件方式方法, 请查看上述教程中的[第三章-ubuntu软件安装-更新-卸载]

# windows怎么办

目前move还不支持windows, 但是windows上有WSL啊, 即windows下的linux 子系统, 请查看WSL官方文档 (opens new window)并善用搜索引擎.