ruby-on-rails – 在Ubuntu 12.04上安装gem pg版本0.12.2时出错
发布时间:2020-12-17 02:37:18 所属栏目:百科 来源:网络整理
导读:即时通讯在Ubuntu 12.04上运行,我正在尝试在 Ruby 1.9.3p194 / Rails 3.2.3上安装pg gem v’0.12.2′.我已经安装了libpq-dev和build-essential但我仍然得到同样的错误: ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write pe
即时通讯在Ubuntu 12.04上运行,我正在尝试在
Ruby 1.9.3p194 / Rails 3.2.3上安装pg gem v’0.12.2′.我已经安装了libpq-dev和build-essential但我仍然得到同样的错误:
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 我确实成功安装了最新版本的pg gem,但我真的需要使用版本0.12.2 提前致谢 解决方法
安装
$sudo apt-get install ruby-dev build-essential 要么 $sudo apt-get install postgresql-client libpq5 libpq-dev $sudo gem install pg 更新 以下是我遵循的步骤: 安装PostgreSQL和开发包 $sudo apt-get install postgresql-9.1 $sudo apt-get install libpq-dev 设置与我的Ubuntu登录相同的用户 $sudo su postgres -c psql postgres=# CREATE ROLE <username> SUPERUSER LOGIN; postgres=# q 修改Gemfile # Remove gem 'sqlite3' gem 'pg' 修改app目录中的database.yml 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: 运行捆绑安装 $bundle install 创建数据库和迁移 $rake db:create:all $rake db:migrate 以下是我过去帮助的来源: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |