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:
-
spring stop
gem uninstall pg
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$