im running on Ubuntu 12.04 and i'm trying to install the pg gem v '0.12.2' on Ruby 1.9.3p194 / Rails 3.2.3. I have installed libpq-dev and build-essential but i still get the same error:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /var/lib/gems/1.9.1 directory.
fernando@ubuntu:/media/fernando/OS/Rails/oops_booking$ sudo gem install pg -v '0.12.2'
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... yes
checking for PQconnectionUsedPassword()... yes
checking for PQisthreadsafe()... yes
checking for PQprepare()... yes
checking for PQexecParams()... yes
checking for PQescapeString()... yes
checking for PQescapeStringConn()... yes
checking for PQgetCancel()... yes
checking for lo_create()... yes
checking for pg_encoding_to_char()... yes
checking for PQsetClientEncoding()... yes
checking for rb_encdb_alias()... yes
checking for rb_enc_alias()... no
checking for struct pgNotify.extra in libpq-fe.h... yes0
checking for unistd.h... yes
checking for ruby/st.h... yes
creating extconf.h
creating Makefile
make
compiling compat.c
compiling pg.c
pg.c: In function ‘pgconn_wait_for_notify’:
pg.c:2117:3: warning: ‘rb_thread_select’ is deprecated (declared at /usr/include/ruby-1.9.1/ruby/intern.h:379) [-Wdeprecated-declarations]
pg.c: In function ‘pgconn_block’:
pg.c:2592:3: error: format not a string literal and no format arguments [-Werror=format-security]
pg.c:2598:3: warning: ‘rb_thread_select’ is deprecated (declared at /usr/include/ruby-1.9.1/ruby/intern.h:379) [-Wdeprecated-declarations]
pg.c:2607:4: error: format not a string literal and no format arguments [-Werror=format-security]
pg.c: In function ‘pgconn_locreate’:
pg.c:2866:11: warning: variable ‘lo_oid’ set but not used [-Wunused-but-set-variable]
pg.c: In function ‘find_or_create_johab’:
pg.c:3947:3: warning: implicit declaration of function ‘rb_encdb_alias’ [-Wimplicit-function-declaration]
cc1: some warnings being treated as errors
make: *** [pg.o] Error 1
i did install succesfully the newest version of pg gem but i really need to work with the version 0.12.2
thanks in advance
install
$ sudo apt-get install ruby-dev build-essential
or
$ sudo apt-get install postgresql-client libpq5 libpq-dev
$ sudo gem install pg
update
Here are the steps I followed:
Install PostgreSQL and development package
$ sudo apt-get install postgresql-9.1
$ sudo apt-get install libpq-dev
Set up a user that is the same as my Ubuntu log-in
$ sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q
Modify Gemfile
# Remove gem 'sqlite3'
gem 'pg'
Modify database.yml in app directory
development:
adapter: postgresql
encoding: unicode
database: appname_development
pool: 5
timeout: 5000
username: <username>
password:
test:
adapter: postgresql
encoding: unicode
database: appname_test
pool: 5
timeout: 5000
username: <username>
password:
Run bundle install
$ bundle install
Create databases and migrations
$ rake db:create:all
$ rake db:migrate
Here are the sources I used to help:
http://mrfrosti.com/2011/11/postgresql-for-ruby-on-rails-on-ubuntu/
http://railsless.blogspot.in/2012/05/howto-install-postgresql-in-ubuntu11.html