Closed theswerd closed 3 years ago
You need to get libpq built for macOS-arm64 (homebrew will install it somewhere under /opt/homebrew) and supply it to rustc using 'RUSTFLAGS='-L /path/to/library/directory''
Co something like:
RUSTFLAGS='-L /opt/homebrew/opt/libpq/lib' cargo install diesel_cli --no-default-features --features postgres
As pointed out by the comment above and the compiler error message this is not a diesel issue, but an issue with your environment (just install a compatible libpq or use the x86_64
target).
To avoid having to pass RUSTFLAGS='...'
every time I run cargo build
, I put this in ~/.cargo/config.toml
:
[target.aarch64-apple-darwin]
rustflags = '-L /opt/homebrew/opt/libpq/lib -L /opt/homebrew/lib'
I included /opt/homebrew/lib
in case you have a version of postgresql
installed. If you do, then you shouldn't have to install libpq
separately. Documentation on how this .cargo/config.toml file works is here: https://doc.rust-lang.org/cargo/reference/config.html#buildrustflags
Does anyone know why you don't have to do this on x86_64? Homebrew installs in /usr/local
on x86_64, so maybe cargo includes /usr/local/lib
in the library path but not /opt/homebrew/lib
?
@mikeyhew That sounds more like a homebrew issue than anything rust related.
extra tip:
people who installed Postgres.app you should use path:
-L /Applications/Postgres.app/Contents/Versions/YOUR_INSTALLED_VERSION/lib
this indeed is an issue with homebrew, it can happen that the rosetta 2/intel version is referenced and therefor only arch64 version of the packages are installed.
To verify that this might be the case run brew config
, if you find macOS: 10.15.7-x86_64
you have an intel version installed, if you have macOS: 14.4.1-arm64
you are on the correct version.
If you are on the wrong version, the easiest way is to completely uninstall and reinstall homebrew with the uninstall script.
hope that helps someone else.
I cannot install the diesel_cli on my Mac M1 Computer
Versions
rustc
version isrustc 1.49.0-beta.4 (877c7cbe1 2020-12-10)
Feature Flags
cargo install diesel_cli --no-default-features --features postgres
Problem Description
I cannot install the diesel_cli on my Mac M1 Computer
What are you trying to accomplish?
I want to install the diesel_cli
What is the expected output?
The diesel_cli being installed
What is the actual output?
Are you seeing any additional errors?
Steps to reproduce
run
cargo install diesel_cli --no-default-features --features postgres
on an M1 MacChecklist