web-dev-qa-db-fra.com

Arm64 Architecture (puce M1): Impossible d'installer PG Gem (en utilisant Postgresapp)

J'essaie d'installer A Rails sur mon ordinateur (MacBook Pro 2020 avec M1) exécutant Big Sur.

J'ai installé le postgregresapp.

Lors de la course bundle install Il ne construit pas le gemme pg GEM, donc j'ai essayé d'installer la gemme manuellement (en faisant gem install pg - essayé aussi avec gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/10/bin/pg_config).

Je reçois une erreur disant:

ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.

Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***

Lors de la vérification des journaux d'erreur, je vois:

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 */

Aucune idée sur la façon de résoudre ça?

7
Tiago

Pour ceux qui viennent d'essayer d'installer le gemme PG et ne se soucient pas de PostgreSapp, la clé de la fixation de PG sur le M1 garantit l'existence du libpq. Ces étapes m'ont permis d'installer l'installation de PG Gem sur mon Mac M1 sans recourir à la version X86 ou à la construction de drapeaux:

brew install libpq
export PATH="/opt/homebrew/opt/libpq/bin:$PATH"
gem install pg
0
wbharding