【发布时间】:2021-04-24 20:35:50
【问题描述】:
我一直在尝试在运行 Big Sur 的计算机(带有 M1 的 Macbook Pro 2020)上安装一个 rails 项目。
我已经安装了 PostgresApp。
运行bundle install 时,它无法构建pg gem,所以我尝试手动安装gem(通过执行gem install pg - 也尝试使用gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/10/bin/pg_config)。
我收到一条错误消息:
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
检查错误日志时,我看到:
have_library: checking for PQconnectdb() in -lpq... -------------------- no
ld: warning: ignoring file /Applications/Postgres.app/Contents/Versions/13/lib/libpq.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
"_PQconnectdb", referenced from:
_t in conftest-db479f.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libpq-fe.h>
4:
5: /*top*/
6: extern int t(void);
7: int main(int argc, char **argv)
8: {
9: if (argc > 1000000) {
10: printf("%p", &t);
11: }
12:
13: return 0;
14: }
15: int t(void) { void ((*volatile p)()); p = (void ((*)()))PQconnectdb; return !p; }
/* end */
知道如何解决这个问题吗?
【问题讨论】:
-
你需要使用 Postgres.app 吗?我遇到了同样的问题。我删除了它并使用了 postgres 的自制版本。效果很好。
-
@IngmarasKeleras 是的,原生版本在 MacOS 中存在一些排序问题。
标签: ruby-on-rails rubygems pg apple-silicon postgresapp