tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby

ruby-on-rails - que - ruby on rails tutorial



Mensaje de error: asegúrese de que `gem install pg-v ''0.18.1''` tenga éxito antes de empaquetar (10)

¡Mi maestra en Bloc tuvo la solución! Si alguien tiene el mismo problema, ejecute los siguientes comandos:

  1. spring stop
  2. gem uninstall pg

  3. bundle install --without production

Esto resolvió mi problema.

tengo un problema con Ruby Lo intenté mucho pero nada funciona para mí.

Cuando quiero iniciar el servidor de rieles, aparece este mensaje de error:

Se produjo un error al instalar pg (0.18.1), y Bundler no puede continuar. Asegúrese de que "gem install pg -v ''0.18.1" tenga éxito antes de empacar.

Esto es lo que intenté ya:

sudo install gem bundle install bundle install --path vendor/cache gem install pg -v ''0.18.1''

Cuando pruebo gem install pg -v ''0.18.1'' obtengo este mensaje de error:

No se pudo encontrar gem ''pg (> = 0) ruby'' en ninguna de las fuentes de gemas listadas en su Gemfile o instaladas en esta máquina. Ejecute la bundle install para instalar las gemas faltantes.

Pero la bundle install tampoco funciona. Recibo este mensaje de error:

Se produjo un error al instalar pg (0.18.1), y Bundler no puede continuar. Asegúrese de que la gem install pg -v ''0.18.1'' tenga éxito antes de empacar.

También traté de iniciar el servidor en un nuevo proyecto de ruby.

Nada ayuda..

¡Gracias por tu ayuda!

Estos son mis cambios en mi Gemfile:

group :production do gem ''pg'' gem ''rails_12factor'' end group :development do gem ''sqlite3'' end


Bundler tiene algún problema para identificar la ruta del servidor PostgreSQL. Si está bastante seguro de que su servidor PostgreSQL está instalado correctamente, todo lo que necesita hacer es agregar la ruta a esta variable PATH . Ejemplo de comando:

export PATH=/path/to/postgres/bin/:$PATH

Si todavía tiene algunos problemas, es muy probable que tenga algún problema con la instalación de PostgreSQL. Si es así, intente instalar Postgres.app y ejecute el comando de la siguiente manera:

export PATH=/Applications/Postgres.app/Contents/Versions/9.3/bin/:$PATH

Asegúrate de que la versión sea correcta.


Cualquiera que se acerque a esto (¡un año después!) Usando Rails 5.1.2 Hice lo siguiente después de instalar e iniciar Postgresql (Centos 7). Asumiendo que ya tienes postgresql instalado y el servidor de postgres y la configuración del usuario. (+ Las herramientas de desarrollo estándar habituales para 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;

Automáticamente se convertirá en el propietario de la nueva base de datos si no se presentan otros argumentos.

O puede usar una interfaz DBeaver de DBeaver como DBeaver para hacer lo mismo.

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.

A continuación se muestran los archivos Gemfile y config / database.yml que utilicé para Rails 5.1.2, incluidos los grifos para Heroku.

Rieles de Gemfile 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

Si haces todo lo anterior, obtendrás una base de datos dev / prod postgresql en rieles pero no hay pruebas, también puedes acceder a la base de datos directamente desde los raíles ejecutando "rails db" e ingresando la contraseña.

Es simple, pero te pone en marcha rápidamente con rails / postgresql.


Intente instalar pg así:

gem install pg -- --with-pg-dir=/path/to/postgresql/root

Si no funciona, prueba

gem install pg -- --with-pg-include=/path/to/postgresql/root/include / --with-pg-lib=/path/to/postgresql/root/lib


Si eres un usuario de Ubuntu, debes hacer lo siguiente antes de instalar la gema

sudo apt-get install libpq-dev

A continuación, ejecute gem install pg -v ''0.18.1'' o simplemente bundle install si tiene su gema en un GEMFILE.


Si está utilizando Mac y Homebrew, parece que falta la libpqxx lib.

brew install libpqxx

Este comando debería hacerlo.


Si estás en Ubuntu , lo más probable es que te falte una dependencia oculta

sudo apt-get install libpq-dev

Si está en OS X , pruebe estos pasos

  • Instale las herramientas de línea de comandos de Xcode (sitio del desarrollador de Apple). Si ya lo tienes instalado, actualízalo usando la brew update .
  • brew uninstall postgresql
  • brew install postgresql
  • gem install pg

Si no está seguro de dónde está su pg_config, y suponiendo que esté en Linux o Mac, puede ejecutar el siguiente comando:

which pg_config

esto devolverá ==> /usr/pgsql-9.1/bin/pg_config

ahora usa esta ruta como

bundle config build.pg --with-pg-config=/usr/pgsql-9.1/bin/pg_config

Hecho ahora bundle install


ARCHFLAGS="-arch x86_64" bundle install funcionó para mí como se discutió here .


Configuración de PostgreSQL en CentOS 6

[root@git2 ~]# yum install postgresql-server [root@git2 ~]# psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? [root@git2 ~]# /etc/init.d/postgresql Usage: /etc/init.d/postgresql {start|stop|status|restart|condrestart|try-restart|reload|force-reload|initdb} [root@git2 ~]# /etc/init.d/postgresql start /var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first. [FAILED] [root@git2 ~]# service postgresql initdb Initializing database: [ OK ] [root@git2 ~]# [root@git2 ~]# /etc/init.d/postgresql start Starting postgresql service: [ OK ] [root@git2 ~]# psql psql: FATAL: Ident authentication failed for user "root" [root@git2 ~]# [root@git2 ~]# su - postgres -bash-4.1$ psql psql (8.4.13) Type "help" for help. postgres=# /l List of databases Name | Owner | Encoding | Collation | Ctype | Access privilege s -----------+----------+----------+-------------+-------------+------------------- ---- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postg res template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postg res (3 rows) postgres=# postgres=# /q -bash-4.1$ -bash-4.1$ pwd /var/lib/pgsql -bash-4.1$ wget -q http://www.commandprompt.com/ppbook/booktown.sql -bash-4.1$ ls -lh booktown.sql -rw-r--r-- 1 postgres postgres 42K Jan 11 2005 booktown.sql -bash-4.1$ psql -f booktown.sql CREATE DATABASE (snip) -bash-4.1$ psql psql (8.4.13) Type "help" for help. postgres=# /l List of databases Name | Owner | Encoding | Collation | Ctype | Access privilege s -----------+----------+----------+-------------+-------------+------------------- ---- booktown | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postg res template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres : postgres=CTc/postg res (4 rows) postgres=# postgres=# /q -bash-4.1$ -bash-4.1$ pg_dumpall > /tmp/pg_dumpall.`date +%s`.sql -bash-4.1$ ls -lh /tmp/pg_dumpall.1349195444.sql -rw-r--r-- 1 postgres postgres 44K Oct 2 12:30 /tmp/pg_dumpall.1349195444.sql -bash-4.1$ -bash-4.1$ pg_dump --clean booktown > /tmp/pg_dump-booktown.`date +%s`.sql -bash-4.1$ ls -lh /tmp/pg_dump-booktown.1349196164.sql -rw-r--r-- 1 postgres postgres 46K Oct 2 12:42 /tmp/pg_dump-booktown.1349196164.sql -bash-4.1$ -bash-4.1$ psql booktown psql (8.4.13) Type "help" for help. booktown=# booktown=# /d (snip) public | subjects | table | postgres public | text_sorting | table | postgres booktown=# SELECT * FROM subjects; 0 | Arts | Creativity St 1 | Business | Productivity Ave (snip)

Configuración de PostgreSQL en Fedora 20

[root@localhost ~]# yum install postgresql-server (snip) [root@localhost ~]# systemctl start postgresql.service Job for postgresql.service failed. See ''systemctl status postgresql.service'' and ''journalctl -xn'' for details. [root@localhost ~]# [root@localhost ~]# systemctl status postgresql.service postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled) Active: failed (Result: exit-code) since Sat 2014-01-18 08:08:38 EST; 12s ago Process: 4921 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE) Jan 18 08:08:38 localhost.localdomain systemd[1]: Starting PostgreSQL database server... Jan 18 08:08:38 localhost.localdomain postgresql-check-db-dir[4921]: "/var/lib/pgsql/data" is missing or empty. Jan 18 08:08:38 localhost.localdomain systemd[1]: postgresql.service: control process exited, code=exited status=1 Jan 18 08:08:38 localhost.localdomain systemd[1]: Failed to start PostgreSQL database server. Jan 18 08:08:38 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state. [root@localhost ~]# [root@localhost ~]# postgresql-setup initdb Initializing database ... OK [root@localhost ~]# [root@localhost ~]# systemctl start postgresql.service [root@localhost ~]# [root@localhost ~]# systemctl stop postgresql.service [root@localhost ~]# [root@localhost ~]# cp -a /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf.orig [root@localhost ~]# # insecure... just for dev... [root@localhost ~]# vim /var/lib/pgsql/data/pg_hba.conf [root@localhost ~]# diff /var/lib/pgsql/data/pg_hba.conf.orig /var/lib/pgsql/data/pg_hba.conf 80c80 < local all all peer --- > local all all trust 82c82 < host all all 127.0.0.1/32 ident --- > host all all 127.0.0.1/32 trust [root@localhost ~]# [root@localhost ~]# systemctl start postgresql.service [root@localhost ~]# [root@localhost ~]# su - postgres -bash-4.2$ psql -c ''/du'' List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication | {} -bash-4.2$ psql -c "CREATE ROLE pguser1 UNENCRYPTED PASSWORD ''secret1'' NOSUPERUSER CREATEDB CREATEROLE NOINHERIT LOGIN" CREATE ROLE -bash-4.2$ psql -c ''/du'' List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- pguser1 | No inheritance, Create role, Create DB | {} postgres | Superuser, Create role, Create DB, Replication | {} -bash-4.2$ -bash-4.2$ psql -c ''/l'' List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) -bash-4.2$ -bash-4.2$ psql -c "CREATE DATABASE pgdatabase1 WITH OWNER = pguser1" CREATE DATABASE -bash-4.2$ psql -c ''/l'' List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+-------------+-------------+----------------------- pgdatabase1 | pguser1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) -bash-4.2$