Linux Mint 20.3下使用dfx SDK创建新项目触发段错误求助
排查dfx new时出现Segmentation fault (core dumped)的问题
问题场景
运行Linux Mint 20.3的联想X200 ThinkPad,此前在Win10环境下可正常使用dfx SDK。通过sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"完成安装后,dfx文件位于/home/doolb/bin目录,执行export PATH=$PATH:/home/doolb/bin后,dfx --version可正常返回dfx 0.11.1,但执行dfx new DApp创建新项目时出现报错:
Fetching manifest https://sdk.dfinity.org/manifest.json ⠚ Checking for latest dfx version... Segmentation fault (core dumped)
已完成memtest内存检测、重装系统和dfx,但问题仍存在,怀疑与写入权限相关。
排查步骤
1. 验证写入权限
- 检查当前用户对
/home/doolb/bin目录及当前工作目录的权限:
确保当前用户拥有读、写、执行权限(权限位显示为ls -ld /home/doolb/bin ls -ld $(pwd)rwx)。 - 尝试在
/tmp目录(默认所有用户可写)创建测试项目:
若能成功创建,说明原工作目录存在权限问题,需调整目录权限或所属用户组。cd /tmp dfx new test_dapp
2. 跳过版本检查强制指定dfx版本
报错发生在版本检查阶段,可能是该环节的兼容性问题。尝试直接使用本地已安装的0.11.1版本创建项目:
DFX_VERSION=0.11.1 dfx new DApp
3. 重新验证dfx二进制文件完整性
- 删除现有dfx文件:
rm /home/doolb/bin/dfx - 手动下载对应版本的dfx二进制文件:
curl -o /home/doolb/bin/dfx https://github.com/dfinity/sdk/releases/download/0.11.1/dfx-x86_64-linux - 添加执行权限:
chmod +x /home/doolb/bin/dfx - 再次尝试创建项目:
dfx new DApp
4. 确认系统架构兼容性
联想X200部分型号为32位系统,而dfx 0.11.1仅支持64位环境,这会导致段错误。检查系统架构:
uname -m
若输出为i686(32位),需升级至64位系统,或尝试更早版本的dfx(部分旧版本可能支持32位)。
5. 分析核心转储定位问题
- 临时启用核心转储:
ulimit -c unlimited - 再次执行
dfx new DApp,生成核心转储文件core。 - 使用gdb分析转储文件:
在gdb中输入gdb /home/doolb/bin/dfx corebt查看调用栈,可定位段错误发生的具体位置,进一步缩小排查范围。
内容的提问来源于stack exchange,提问作者Doolb
相关产品推荐
相关产品推荐

