M1 Mac无需Rosetta安装ARM64版PostgreSQL以适配Diesel的问题咨询
你遇到的核心问题是现有PostgreSQL为x86_64架构,和你的ARM64进程环境不兼容,再加上Homebrew的架构路径未配置正确。下面是一步步的解决方案:
1. 安装ARM64架构的Homebrew
之前的报错提示需要在/opt/homebrew创建新的ARM版Homebrew安装,这是因为默认x86_64版Homebrew安装在/usr/local,而ARM64版需要独立部署在/opt/homebrew路径下。
先打开终端,通过arch命令验证当前环境为ARM64(输出应为arm64),然后执行以下命令安装ARM版Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,需要把ARM版Homebrew的路径加入环境变量:
- 如果你用zsh,编辑
~/.zshrc文件,添加一行:export PATH="/opt/homebrew/bin:$PATH" - 如果你用bash,编辑
~/.bash_profile或~/.bashrc,添加同样内容。
刷新环境变量让配置生效:
source ~/.zshrc # zsh环境用这个,bash环境替换为source ~/.bash_profile
验证Homebrew安装是否成功:执行brew --prefix,输出应为/opt/homebrew。
2. 安装ARM64版PostgreSQL
现在用ARM版Homebrew安装适配你环境的PostgreSQL:
brew install postgresql
安装完成后启动PostgreSQL服务:
brew services start postgresql
你可以验证安装的libpq架构是否正确:
file /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
输出内容中会包含arm64字样,说明这是适配你ARM64环境的库文件。
3. 重新安装Diesel CLI(确保ARM64版本)
为了让Diesel链接到新的ARM版libpq库,需要重新安装Diesel CLI:
cargo install diesel_cli --no-default-features --features postgres
4. 再次执行Diesel Setup
现在运行diesel setup就能正常工作了,它会自动链接到/opt/homebrew下的ARM64版libpq库,不会再出现架构不匹配的错误。
补充说明
你之前使用的Postgres.app是x86_64版本,所以它的libpq.5.dylib架构和你的ARM64进程不兼容,这就是报错里"wrong architecture"的原因。用ARM版Homebrew安装的PostgreSQL会完全适配你的当前环境。
内容的提问来源于stack exchange,提问作者musako




