MacOS下安装mysqlclient及Diesel CLI安装报错问题求助
解决
cargo install diesel_cli 时的 -lmysqlclient 链接错误 这个问题我见得太多了——本质就是你的系统缺少MySQL客户端的开发库,Diesel CLI在编译MySQL相关功能时需要这个库来完成链接。下面是不同操作系统下的具体安装步骤,照着做就能搞定:
macOS(使用Homebrew)
- 先把Homebrew更新到最新版本:
brew update - 安装MySQL客户端开发库:
brew install mysql-client - 安装完成后,需要让编译器能找到这个库的位置,执行以下命令(建议把这两行加到你的shell配置文件里,比如
~/.zshrc或~/.bash_profile,这样下次打开终端就不用再设置了):export LIBRARY_PATH=$(brew --prefix mysql-client)/lib export CPATH=$(brew --prefix mysql-client)/include - 最后重新运行安装命令,明确指定MySQL特性(避免默认特性带来的冲突):
cargo install diesel_cli --no-default-features --features mysql
Ubuntu/Debian 系列 Linux
- 先更新软件包索引:
sudo apt update - 安装MySQL开发库:
sudo apt install libmysqlclient-dev - 直接重新执行Diesel CLI的安装命令即可:
cargo install diesel_cli --no-default-features --features mysql
CentOS/RHEL 系列 Linux
- 如果你用的是官方MySQL源,安装对应的开发库:
sudo yum install mysql-community-devel - 要是用MariaDB替代MySQL,就安装MariaDB的开发库:
sudo yum install mariadb-devel - 之后重新运行安装命令:
cargo install diesel_cli --no-default-features --features mysql
额外提示
如果安装完还是报错,试试重启终端确保环境变量生效(尤其是macOS环境)。另外,如果你不需要MySQL支持,也可以只安装你需要的数据库特性,比如PostgreSQL或SQLite:
# PostgreSQL 版本 cargo install diesel_cli --no-default-features --features postgresql # SQLite 版本 cargo install diesel_cli --no-default-features --features sqlite
内容的提问来源于stack exchange,提问作者user51




