Mac系统配置多版本Solidity编译器PATH及solc-macos运行问题
解决方案
一、解决solc-macos无法运行的问题
你遇到的command not found大概率是两个原因:文件无执行权限,或者误把压缩包当成可执行文件直接运行,按以下步骤排查:
1. 确认下载的文件类型
从GitHub获取的0.7.6版本Mac独立包有两种:
- 单个可执行文件
solc-macos(大小约14MB) - 包含全套工具的压缩包(大小约33.8MB,解压后得到
solc、solidity-upgrade、yul-phaser)
如果你下载的是后者,需要先解压:
tar -xzf solidity_macos.tar.gz
2. 添加可执行权限
不管是单个文件还是解压后的文件,都需要赋予可执行权限:
# 针对单个solc-macos文件 chmod +x solc-macos # 针对解压后的三个工具文件 chmod +x solc solidity-upgrade yul-phaser
3. 验证运行
直接运行即可,不需要sudo(除非要将文件放到系统目录):
# 单个文件的情况 ./solc-macos --version # 解压后的情况 ./solc --version
二、配置多版本solc到PATH并管理
要同时使用0.8.7、0.8.0、0.7.6、0.7.5等版本,推荐两种方法:
方法1:手动命名+统一存放(轻量需求适用)
- 创建专门存放不同版本solc的目录:
mkdir -p ~/solc-versions
- 将各版本可执行文件重命名(带上版本号)并移动到该目录:
# 示例:将0.7.6版本的solc重命名后移动 mv solc ~/solc-versions/solc-0.7.6 # 其他版本同理命名:solc-0.8.7、solc-0.8.0、solc-0.7.5
- 将该目录添加到系统PATH,编辑你的shell配置文件(如
~/.zshrc或~/.bash_profile):
echo 'export PATH="$HOME/solc-versions:$PATH"' >> ~/.zshrc
- 刷新配置使生效:
source ~/.zshrc
- 验证:
solc-0.7.6 --version solc-0.8.15 --version # 之前Homebrew安装的版本也可通过软链加入统一管理
方法2:使用solc-select工具(推荐,适合频繁切换版本)
solc-select是官方推荐的多版本管理工具,可快速切换默认solc版本:
- 安装solc-select:
pip3 install solc-select
- 安装所需的solc版本:
solc-select install 0.7.5 solc-select install 0.7.6 solc-select install 0.8.0 solc-select install 0.8.7
- 切换默认版本:
solc-select use 0.7.6
- 验证当前版本:
solc --version
补充说明
你之前通过Homebrew安装的0.8.15版本,可通过软链加入统一管理目录:
ln -s /opt/homebrew/Cellar/solidity/0.8.15/bin/solc ~/solc-versions/solc-0.8.15
内容的提问来源于stack exchange,提问作者Peteris
相关产品推荐
相关产品推荐

