我遇到了红宝石的问题。我尝试了很多,但对我没什么用。
当我想启动rails服务器时,我收到以下错误消息:
安装pg(0.18.1)时发生错误,Bundler无法继续。 确保" gem install pg -v' 0.18.1"在捆绑之前成功。
这是我已经尝试过的:
sudo install gem
bundle install
bundle install --path vendor/cache
gem install pg -v '0.18.1'
当我尝试gem install pg -v '0.18.1'
时,我收到此错误消息:
无法找到gem' pg(> = 0)ruby'在Gemfile中列出的或安装在此计算机上的任何gem源中。 运行
bundle install
以安装缺少的宝石。
但bundle install
也不起作用。我收到此错误消息:
安装pg(0.18.1)时发生错误,Bundler无法继续。 在捆绑之前确保
gem install pg -v '0.18.1'
成功。
我还尝试在新的ruby项目中启动服务器。
没有任何帮助......
感谢您的帮助!
这些是我在Gemfile中的更改:
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :development do
gem 'sqlite3'
end
答案 0 :(得分:106)
如果您使用 Ubuntu ,很可能您错过了隐藏的依赖
sudo apt-get install libpq-dev
如果您使用的是 OS X ,请尝试以下步骤
brew update
更新它。brew uninstall postgresql
brew install postgresql
gem install pg
答案 1 :(得分:29)
如果您是Ubuntu用户,则需要在安装gem之前执行以下操作
sudo apt-get install libpq-dev
如果您在GEMFILE中拥有r gem,则执行gem install pg -v '0.18.1'
或仅bundle install
。
答案 2 :(得分:20)
如果你使用的是Mac和Homebrew,看起来像libpqxx lib一样。
brew install libpqxx
这个命令应该这样做。
答案 3 :(得分:12)
如果您不确定pg_config的位置,并假设您使用的是Linux或Mac,则可以运行以下命令:
which pg_config
这将返回==> /usr/pgsql-9.1/bin/pg_config
现在将此路径用作
bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config
立即完成bundle install
答案 4 :(得分:10)
我在Bloc的老师有解决方案!如果有人遇到同样的问题,请运行以下命令:
gem uninstall pg
bundle install --without production
RedirectMatch 301 ^/mauritius_holiday_rentals/search//?/?/2/(.*)$ /mauritius_holiday_rentals/search/2/$1
RedirectMatch 301 ^/mauritius_holiday_rentals/search//?/?/(.*)$ /mauritius_holiday_rentals/search/$1
这解决了我的问题。
答案 5 :(得分:4)
ARCHFLAGS="-arch x86_64" bundle install
正如我所讨论的那样为here工作。
答案 6 :(得分:1)
使用Rails 5.1.2运行到此(一年后!)的任何人在首次安装和启动Postgresql(Centos 7)后,我执行了以下操作。 所以假设您已经安装了postgresql并且设置了postgres服务器和用户。(+通常用于Linux的标准开发工具)。
Add extra deps for rails to build gems.
$ sudo yum install postgresql-devel
Add postgres path in ~/.profile
export PATH=/usr/bin/postgres:$PATH (or your installed path)
Add another user/role with create db privileges using pgAdmin or shell
(should be the same user as the system/rails user because the postgres user doesn't have permissions for /rails/db/schema.rb, but the system/rails user does)
Below are shell commands for postgres create role and database.
$ sudo -u postgres psql (enter postgres password)
$ create role (linux/rails user) with createdb login password 'password';
$ \du (check its done and has createDB privs)
$ CREATE DATABASE name;
如果没有出现其他参数,您将自动成为新数据库的所有者。
或者您可以使用像DBeaver这样的gui来做同样的事情。
So the above sets up for rails to access postgresql and build the pg gem once you've swapped out the default Gemfile & config/database.yml
Now create app and set it up (no need for -d postgresql flag because we swap out the Gemfile and the config/database.yml file contents completely and rails will install a postgresql db on bundle update/install.
(change some to rake for earlier versions of rails)
$ rails new app
$ cd app
$ atom (or editor) Gemfile config/database.yml
Swap out both file contents (to ones shown below) & save.
$ bundle update
$ bundle install
Check it with
$ rails db:create
(postgresql database should now be connected), so scaffold something
$ rails g scaffold Users name:string email:string comment:text
$ rails db:migrate
$ rails server
http://localhost:3000 shows the default page and http://localhost:3000/users brings up your new Users page using postgresql not sqlite3. Put something in to test it.
下面是我用于Rails 5.1.2的Gemfile和config / database.yml文件,包括Heroku的点击。
Gemfile rails 5.1.2
source 'https://rubygems.org'
gem 'rails', '5.1.2'
gem 'puma', '3.9.1'
gem 'sass-rails', '5.0.6'
gem 'uglifier', '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks', '5.0.1'
gem 'jbuilder', '2.7.0'
gem 'taps'
#Postgresql Database
group :production do
gem 'pg', '0.21.0'
end
group :development, :test do
gem 'sqlite3', '1.3.13'
gem 'byebug', '9.0.6', platform: :mri
end
group :development do
gem 'web-console', '3.5.1'
gem 'listen', '3.0.8'
gem 'spring', '2.0.2'
gem 'spring-watcher-listen', '2.0.1'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
config/database.yml file contents (watch out for indentation)
development:
adapter: postgresql
encoding: unicode
database: development or app_name
pool: 5
username: (user created for postgres/rails)
password: password
host: localhost
test:
adapter: postgresql
encoding: unicode
database: development or app_name
pool: 5
username: (user created for postgres/rails)
password: password
host: localhost
production:
adapter: postgresql
encoding: unicode
database: development or app_name
pool: 5
username: (user created for postgres/rails)
password: password
host: localhost
完成以上所有操作后,您将获得一个dev / prod postgresql数据库,但无需测试,您也可以直接从rails访问数据库,只需运行" rails db"并输入密码。
它很简单,但可以快速启动并运行rails / postgresql。
答案 7 :(得分:1)
对于Alpine linux,您要先安装postgresql-dev
:
apk add --update postgresql-dev
答案 8 :(得分:0)
尝试安装pg
,如下所示:
gem install pg -- --with-pg-dir=/path/to/postgresql/root
如果它不起作用,请尝试
gem install pg -- --with-pg-include=/path/to/postgresql/root/include \
--with-pg-lib=/path/to/postgresql/root/lib
答案 9 :(得分:0)
Bundler在识别PostgreSQL服务器路径时遇到了一些问题。如果您非常确定您的PostgreSQL服务器已正确安装,那么您需要做的就是将此路径添加到PATH
变量。示例命令:
export PATH=/path/to/postgres/bin/:$PATH
如果您仍然遇到一些问题,很可能您的PostgreSQL安装有问题。如果是,请尝试安装Postgres.app并执行如下命令:
export PATH=/Applications/Postgres.app/Contents/Versions/9.3/bin/:$PATH
确保版本正确。