Obtener error: debe instalar al menos un paquete postgresql-client- <version> cuando lo implemente en heroku

91
sdilshod@sdilshod-Lenovo-B590:~/webapp/saturn$ heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.6194
DEPRECATION WARNING: You have Rails 2.3-style plugins in    vendor/plugins! Support for these plugins will be removed in Rails 4.0.  Move them out and bundle them in your Gemfile, or fold them in to your app  as lib/myplugin/* and config/initializers/myplugin.rb. See the release  notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2- 0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
DEPRECATION WARNING: You have Rails 2.3-style plugins in  vendor/plugins! Support for these plugins will be removed in Rails 4.0.   Move them out and bundle them in your Gemfile, or fold them in to your app   as lib/myplugin/* and config/initializers/myplugin.rb. See the release   notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-  0-rc2-has-been-released. (called from <top (required)> at /app/Rakefile:7)
 Error: You must install at least one postgresql-client-<version> package.
 rake aborted!
 Error dumping database
 /app/vendor/bundle/ruby/1.9.1/gems/activerecord-   3.2.12/lib/active_record/railties/databases.rake:415:in `block (3 levels)   in <top (required)>'
 /app/vendor/bundle/ruby/1.9.1/gems/activerecord- 3.2.12/lib/active_record/railties/databases.rake:188:in `block (2 levels) in <top (required)>'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/railties/databases.rake:182:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)

heroku pg: psql funciona bien, pero cuando migro rake db: migrate aparece el error que necesita para instalar el cliente pg. ¿Dónde necesito instalar pg client? Alguna ayuda

dilshod
fuente
1
Encontré [esta] [1] solución y solucioné el error [1]: stackoverflow.com/questions/17300341/…
dilshod

Respuestas:

202

En un sistema basado en Debian, los programas cliente de PostreSQL son proporcionados por postgresql-client-common como enlaces simbólicos a /usr/share/postgresql-common/pg_wrapper.

Si instala ese paquete e intenta utilizar cualquiera de los programas cliente de PostgreSQL como psql , pg_dump , pg_dumpall y pg_restore , pg_wrapper sin tener instalado el paquete binario específico de la versión, como postgresql-client-9.1 , emitirá este error:

Debe instalar al menos un paquete postgresql-client- <versión>

La forma más sencilla de solucionar este problema es instalar el metapaquete postgresql-client . Siempre depende del paquete de cliente de base de datos actualmente soportado para PostgreSQL en sistemas basados ​​en Debian y depende de postgresql-client-common

sudo apt-get install postgresql-client
jla
fuente
¡Gracias por la respuesta, jla! Parece error heroku y encontré stackoverflow.com/questions/17300341/… para resolver
dilshod
De nada. Encontré esto cuando buscaba el mensaje de error "al menos un" por usar psql en la línea de comandos y no usar heroku. Después de encontrar la respuesta, quería dejar una solución específica de Debian que proporcione un pg_dump y psql que funcionen para el error específico de Debian como alternativa a la solución sugerida de heroku de ignorar el error.
jla
1
corriendo a sudo apt-get install postgresql-clienttravés heroku run bashno funciona? Vuelve bash: sudo: command not found. ¿Que me estoy perdiendo aqui?
s2t2
8

Actualización 30 de marzo de 2020

De acuerdo con la respuesta elegida, pero descubrí que instalar postgresql-client-12 en Ubuntu 18 es un poco más complicado.

sudo apt update
sudo apt -y install vim bash-completion wget
sudo apt -y upgrade
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt -y install postgresql-client-12

Consulte esta referencia para obtener más detalles.

arcseldon
fuente
1
Con Ubuntu 20.04, solo la última línea de las instrucciones funcionó.
Holger Brandl