snow leopard + pg gem

Hi,

I installed snow leopard on my machine and my ruby on rails project stopped working... When I tried

script/server

I this error

Booting WEBrick => Rails 2.3.3 application starting on http://0.0.0.0:3000 /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in `establish_connection': Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (dlopen(/Library/Ruby/Gems/1.8/gems/pg-0.8.0/lib/pg.bundle, 9): no suitable image found. Did find: (RuntimeError)     /Library/Ruby/Gems/1.8/gems/pg-0.8.0/lib/pg.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/pg-0.8.0/lib/pg.bundle)     from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection'     from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'     from /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/initializer.rb:438:in `initialize_database'     from /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/initializer.rb:141:in `process'     from /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/initializer.rb:113:in `send'     from /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/initializer.rb:113:in `run'     from /Users/{redacted}/Development/ROR Apps/{redacted}/Source/{redacted}/config/environment.rb:9     from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'     from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'     from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:156:in `require'     from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:521:in `new_constants_in'     from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:156:in `require'     from /Library/Ruby/Gems/1.8/gems/rails-2.3.3/lib/commands/server.rb:84     from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'     from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'     from script/server:3

Obviously there is no gem with such a name so I tried sudo gem install pg and I the following error message

NFO: `gem install -y` is now default and will be removed INFO: use --ignore-dependencies to install only the gems you list Building native extensions. This could take a while... ERROR: Error installing pg:     ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.8.0 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.8.0/ext/gem_make.out

So I uninstalled XCode and Postgresql 8.3 and installed Xcode from the snow leopard disk and installed postgresql 8.4. I tried to install the pg gem again and got this error

Building native extensions. This could take a while... ERROR: Error installing pg:     ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb checking for main() in -lpq... yes checking for libpq-fe.h... yes checking for libpq/libpq-fs.h... yes checking for PQconnectionUsedPassword()... no checking for PQisthreadsafe()... no checking for PQprepare()... no checking for PQexecParams()... no checking for PQescapeString()... no checking for PQescapeStringConn()... no checking for lo_create()... no checking for pg_encoding_to_char()... no checking for PQsetClientEncoding()... no creating Makefile make gcc -I. -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -DHAVE_LIBPQ_FE_H -DHAVE_LIBPQ_LIBPQ_FS_H -I/Library/PostgreSQL/8.4/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common -c compat.c In file included from compat.c:16: compat.h:38:2: error: #error PostgreSQL client version too old, requires 7.3 or later. In file included from compat.c:16: compat.h:69: error: conflicting types for ‘PQconnectionNeedsPassword’ /Library/PostgreSQL/8.4/include/libpq-fe.h:293: error: previous declaration of ‘PQconnectionNeedsPassword’ was here compat.h:70: error: conflicting types for ‘PQconnectionUsedPassword’ /Library/PostgreSQL/8.4/include/libpq-fe.h:294: error: previous declaration of ‘PQconnectionUsedPassword’ was here compat.h:121: error: redefinition of typedef ‘PQnoticeReceiver’ /Library/PostgreSQL/8.4/include/libpq-fe.h:144: error: previous declaration of ‘PQnoticeReceiver’ was here compat.h:125: error: redeclaration of enumerator ‘PQERRORS_TERSE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:105: error: previous definition of ‘PQERRORS_TERSE’ was here compat.h:126: error: redeclaration of enumerator ‘PQERRORS_DEFAULT’ /Library/PostgreSQL/8.4/include/libpq-fe.h:106: error: previous definition of ‘PQERRORS_DEFAULT’ was here compat.h:128: error: redeclaration of enumerator ‘PQERRORS_VERBOSE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:108: error: previous definition of ‘PQERRORS_VERBOSE’ was here compat.h:128: error: conflicting types for ‘PGVerbosity’ /Library/PostgreSQL/8.4/include/libpq-fe.h:108: error: previous declaration of ‘PGVerbosity’ was here compat.h:132: error: redeclaration of enumerator ‘PQTRANS_IDLE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:96: error: previous definition of ‘PQTRANS_IDLE’ was here compat.h:133: error: redeclaration of enumerator ‘PQTRANS_ACTIVE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:97: error: previous definition of ‘PQTRANS_ACTIVE’ was here compat.h:134: error: redeclaration of enumerator ‘PQTRANS_INTRANS’ /Library/PostgreSQL/8.4/include/libpq-fe.h:98: error: previous definition of ‘PQTRANS_INTRANS’ was here compat.h:135: error: redeclaration of enumerator ‘PQTRANS_INERROR’ /Library/PostgreSQL/8.4/include/libpq-fe.h:99: error: previous definition of ‘PQTRANS_INERROR’ was here compat.h:137: error: redeclaration of enumerator ‘PQTRANS_UNKNOWN’ /Library/PostgreSQL/8.4/include/libpq-fe.h:101: error: previous definition of ‘PQTRANS_UNKNOWN’ was here compat.h:137: error: conflicting types for ‘PGTransactionStatusType’ /Library/PostgreSQL/8.4/include/libpq-fe.h:101: error: previous declaration of ‘PGTransactionStatusType’ was here compat.h:142: error: conflicting types for ‘PQtransactionStatus’ /Library/PostgreSQL/8.4/include/libpq-fe.h:285: error: previous declaration of ‘PQtransactionStatus’ was here compat.h:143: error: conflicting types for ‘PQparameterStatus’ /Library/PostgreSQL/8.4/include/libpq-fe.h:287: error: previous declaration of ‘PQparameterStatus’ was here compat.h:157: error: conflicting types for ‘PQsetErrorVerbosity’ /Library/PostgreSQL/8.4/include/libpq-fe.h:309: error: previous declaration of ‘PQsetErrorVerbosity’ was here compat.h:169:2: error: #error unsupported postgresql version, requires 7.3 or later. compat.c: In function ‘PQsetClientEncoding’: compat.c:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:28: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:55: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:61: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:67: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:73: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:79: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:85: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:93: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:102: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:115: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:125: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:137: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:143: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:151: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:159: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:167: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:173: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:179: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:185: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:197: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:203: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:209: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:215: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:221: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:230: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:237: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:280: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:339: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:386: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:465: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:539: error: old-style parameter declarations in prototyped function definition compat.c:539: error: expected ‘{’ at end of input In file included from compat.c:16: compat.h:38:2: error: #error PostgreSQL client version too old, requires 7.3 or later. In file included from compat.c:16: compat.h:69: error: conflicting types for ‘PQconnectionNeedsPassword’ /Library/PostgreSQL/8.4/include/libpq-fe.h:293: error: previous declaration of ‘PQconnectionNeedsPassword’ was here compat.h:70: error: conflicting types for ‘PQconnectionUsedPassword’ /Library/PostgreSQL/8.4/include/libpq-fe.h:294: error: previous declaration of ‘PQconnectionUsedPassword’ was here compat.h:121: error: redefinition of typedef ‘PQnoticeReceiver’ /Library/PostgreSQL/8.4/include/libpq-fe.h:144: error: previous declaration of ‘PQnoticeReceiver’ was here compat.h:125: error: redeclaration of enumerator ‘PQERRORS_TERSE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:105: error: previous definition of ‘PQERRORS_TERSE’ was here compat.h:126: error: redeclaration of enumerator ‘PQERRORS_DEFAULT’ /Library/PostgreSQL/8.4/include/libpq-fe.h:106: error: previous definition of ‘PQERRORS_DEFAULT’ was here compat.h:128: error: redeclaration of enumerator ‘PQERRORS_VERBOSE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:108: error: previous definition of ‘PQERRORS_VERBOSE’ was here compat.h:128: error: conflicting types for ‘PGVerbosity’ /Library/PostgreSQL/8.4/include/libpq-fe.h:108: error: previous declaration of ‘PGVerbosity’ was here compat.h:132: error: redeclaration of enumerator ‘PQTRANS_IDLE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:96: error: previous definition of ‘PQTRANS_IDLE’ was here compat.h:133: error: redeclaration of enumerator ‘PQTRANS_ACTIVE’ /Library/PostgreSQL/8.4/include/libpq-fe.h:97: error: previous definition of ‘PQTRANS_ACTIVE’ was here compat.h:134: error: redeclaration of enumerator ‘PQTRANS_INTRANS’ /Library/PostgreSQL/8.4/include/libpq-fe.h:98: error: previous definition of ‘PQTRANS_INTRANS’ was here compat.h:135: error: redeclaration of enumerator ‘PQTRANS_INERROR’ /Library/PostgreSQL/8.4/include/libpq-fe.h:99: error: previous definition of ‘PQTRANS_INERROR’ was here compat.h:137: error: redeclaration of enumerator ‘PQTRANS_UNKNOWN’ /Library/PostgreSQL/8.4/include/libpq-fe.h:101: error: previous definition of ‘PQTRANS_UNKNOWN’ was here compat.h:137: error: conflicting types for ‘PGTransactionStatusType’ /Library/PostgreSQL/8.4/include/libpq-fe.h:101: error: previous declaration of ‘PGTransactionStatusType’ was here compat.h:142: error: conflicting types for ‘PQtransactionStatus’ /Library/PostgreSQL/8.4/include/libpq-fe.h:285: error: previous declaration of ‘PQtransactionStatus’ was here compat.h:143: error: conflicting types for ‘PQparameterStatus’ /Library/PostgreSQL/8.4/include/libpq-fe.h:287: error: previous declaration of ‘PQparameterStatus’ was here compat.h:157: error: conflicting types for ‘PQsetErrorVerbosity’ /Library/PostgreSQL/8.4/include/libpq-fe.h:309: error: previous declaration of ‘PQsetErrorVerbosity’ was here compat.h:169:2: error: #error unsupported postgresql version, requires 7.3 or later. compat.c: In function ‘PQsetClientEncoding’: compat.c:21: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:28: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:35: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:43: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:55: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:61: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:67: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:73: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:79: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:85: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:93: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:102: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:115: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:125: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:137: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:143: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:151: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:159: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:167: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:173: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:179: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:185: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:197: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:203: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:209: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:215: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:221: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:230: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:237: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:280: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:339: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:386: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:465: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token compat.c:539: error: old-style parameter declarations in prototyped function definition compat.c:539: error: expected ‘{’ at end of input lipo: can't open input file: /var/tmp//cc4bbetE.out (No such file or directory) make: *** [compat.o] Error 1

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.8.0 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.8.0/ext/gem_make.out

I have this in my path -bash: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Android/android-sdk-mac_x86-0.9_beta/tools:/Library/PostgreSQL/8.4/bin/: No such file or directory

I also executed these commands before installing the pg gem sudo -s ARCHFLAGS='-arch x86_64'

However other blog posts ask the user to execute this line export PATH=/usr/local/pgsql/bin:${PATH}

but I do not have a local directory under 'usr' folder.

Please help... I am completely lost.

Any help is truly appreciated.

Thanks, Jai

I tried this command

sudo env ARCHFLAGS="-arch i386" gem install pg

and I was successfully able to install the gem

However, I still cannot start the server.. Any ideas anyone

Thanks, Jai

Do you still get the same error when trying to start script/server, or did it change? Because the ARCHFLAGS setting should have worked indeed. If it's still the same, I would try to uninstall the pg gem completely first before reinstalling it the same way.

Jai Jk wrote: