OCaml 工具链环境安装教程
2026年4月18日
ocaml工具链的安装相关资源需要从以下链接对应网站找到:
- ocaml: https://ocaml.org/
- rocq(旧称rocq): https://rocq-prover.org/
- why3: https://why3.org/
- moonbit: https://www.moonbitlang.cn/
我们首先按照ocaml官网给出的步骤安装opam与ocaml:

https://github.com/nelvko/clash-for-linux-install
git clone --branch master --depth 1 \
https://gh-proxy.org/https://github.com/nelvko/clash-for-linux-install.git \
&& cd clash-for-linux-install \
&& bash install.sh
//remember config install&subscribe by yourself
cd ..
sudo setcap cap_net_admin+ep ./clashctl/bin/mihomo
echo "export http_proxy=\"http://127.0.0.1:7890\"" >> ~/.bashrc
echo "export https_proxy=\"http://127.0.0.1:7890\"" >> ~/.bashrc
source ~/.bashrc
sed -i 's/^ enable: false/ enable: true/' ./clashctl/resources/runtime.yaml
sudo grep "mihomo" /var/log/audit/audit.log | audit2allow -m mypol为了访问这些网站,我们需要提前配置好科学上网的环境(请自行配置网络代理)
下载并配置好后,接下来我们就可以启动mihomo了:
nohup ./clashctl/bin/mihomo -d \
./clashctl/resources -f \
./clashctl/resources/runtime.yaml \
> ./clashctl/mihomo.log 2>&1 &查看后台状态、查看端口配置,速率与杀死进程可以参考如下:
ps aux | grep mihomo
grep -E "^(mixed-port|port|socks-port|redir-port|tproxy-port|external-controller):" \
./clashctl/resources/runtime.yaml
netstat -tulnp | grep :7890
sar -n DEV 1 5
pkill -f mihomo有时候本地时间与外部时间差异太大也可能导致SSL在443端口出错,如下检查与配置,并且可以尝试临时禁用SELinux来测试SSL情况:
timedatectl
sudo chronyc -a makestep
sudo setenforce 0
openssl s_client -connect github.com:443 -proxy 127.0.0.1:7890我们在前一步已经配置好了visual studio code与openeuler的ssh连接,因此可以直接在windows端进行配置:

由于涉及到一定构建过程,第一步需要在系统上安装以下包:
gcc, build-essential, curl, unzip, bubblewrap, gmp-devel安装指令依然是yum或dnf,因此与apt下安装存在一些不同:
sudo yum groupinstall "Development Tools"
sudo yum install -y gcc gcc-c++ make curl unzip bubblewrap gmp-devel
确认配置好后,按照以下命令进行配置:
bash -c "sh <(curl -fsSL https://opam.ocaml.org/install.sh)"
由于openeuler属于魔改版centos系统,因此这里没有二进制发行是正常的,继续按照如下步骤配置,逐行输入下面的指令:
wget https://github.com/ocaml/opam/archive/2.5.1.tar.gz
tar -xzf 2.5.1.tar.gz
cd opam-2.5.1
make cold
make install
静待其make构建完成,然后使用make install安装(by the way,可以顺便查找一下一个叫cmake的指令,其是如何构建一个带有CMakeLists.txt的目录的)
有时候这个make过程在涉及到网络的部分会卡住或失败,遇到这种多重试几次就好了(特别是在Downloading vendored source dependencies...一步是重灾区,好事多磨,多试试吧)
必要时,当遇到由于443端口SSL网络连接失败导致tbz损坏的情况(特别是由于包大小原因,常见于dune-local),则如下操作后重试:
rm -f ./opam-2.5.1/src_ext/packagename.tbz像下面这样就已经算是make cold结束了.

像下面这样就已经算是make install结束了.

接下来按照官方的说明,对默认opam分支进行初始化以得到switch.
opam init
source ~/.bashrc
eval $(opam env)中间遇到如下的选项按1键即可:

出现如下提示说明opam环境初始化,并且已经成功安装了最新版本的ocaml-complier:

之后,你应该在默认switch上进行安装:
opam install dune ocaml-lsp-server odoc ocamlformat utop
操作中遇到任何关于opam的问题可以尝试通过以下方式进行查询:
opam help至此,最基础的ocaml环境已经配置好,下一步便是对rocq,why3与moonbit的配置,后面的步骤将会相对而言方便不少:
为了安装以上内容,逐步输入执行以下的命令:
opam repo add rocq-released https://rocq-prover.org/opam/released
opam update
opam install rocq-prover
opam install why3
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash
source ~/.bashrc至此,安装结束,可以开始愉快地coding了,让我们通过几个简单的案例来验证环境配置: