如果我不使用sudo,truffle compile
会给我一个错误:truffle compile
输出。
使用sudo不会出现错误:sudo truffle compile
输出。
为什么会发生这种情况?
这是由于系统中Truffle的某些文件/目录的权限错误造成的。它们可能归root所有,Truffle不能在那里写作。简单地删除配置就可以解决问题:
sudo rm -rf ~/Library/Preferences/truffle-nodejs
或者,您可以使用chown
来更改这些文件的所有权,但如果您从未手动修改过配置,那么删除它会更简单,Truffle会为您重新创建它,并在需要时重新下载编译器二进制文件。
这是最近许多用户在Can't compile solc version"0.8.9〃#4431,但似乎并不是松露本身的一个bug。不知道为什么它如此广泛——是一些流行的教程告诉人们用sudo
或其他什么来运行Truffle吗?如果您这样做,Truffle将创建一些文件作为root,并且除非您继续使用sudo
运行,否则无法覆盖它们或创建新文件。