Casi en el ultimo paso de la instalación de PosgreSQL en Linux Mint puedes encontrarte con este error que describo en este post aparte para no extender demasiado el post original.
Tabla de contenidos:
- El Error
- Posible causa en Linux Mint
- Como evitar este inconveniente
- ¿Que ocurre si uno elige el origen equivocado 😣?
El Error
Luego de agregar el repositorio de PostgreSQL, de haber actualizado la lista de repositorios, al momento de intentar instalar PostgreSQL (en este caso 11) puede aparecer en la terminal el siguiente error o excepción: 🚫
$ sudo apt-get install postgresql-11
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios aún no se han creado o se
han sacado de «Incoming».
La siguiente información puede ayudar a resolver la situación:
Los siguientes paquetes tienen dependencias incumplidas:
postgresql-11 : Depende: postgresql-client-11
Depende: libgssapi-krb5-2 (>= 1.14+dfsg) pero 1.13.2+dfsg-5ubuntu2.1 va a ser instalado
Depende: libicu60 (>= 60.1-1~) pero no es instalable
Depende: libpq5 (>= 9.3~) pero no va a instalarse
Depende: libssl1.1 (>= 1.1.0) pero no es instalable
Posible causa en Linux Mint
Es posible que agregaras un origen de paquetes incorrecta para tu distribución de Linux Mint. Cuando agregas el origen del paquete de PostgreSQL es importante notar que Linux Mint puede estar basado en la actualidad en Ubuntu/Debian lanzamientos Xenial o Bionic, y hasta hace unos años también en Trusty. Usar uno u otro no es indistinto, puede ocasionar que luego de actualizar los paquetes no se pueda llevar a cabo la instalación de PostgreSQL 11 porque atp(Advanced Package Tool) intenta ascender a un repositorio incompatible con la diestro de Mint que tenemos.
Como evitar este inconveniente
Antes de iniciar el primer paso de la instalación, podríamos averiguar en cual distribución Ubuntu/Debian esta basada nuestra diestro Linux Mint y luego "googlear" sus características, pero como nos gusta las cosas de inmediato, por el camino más corto y eficiente (como todo desarrollador) veremos esto directamente en el archivo /etc/upstream-release/lsb-release
ejecutando en la terminal el siguiente comando:
$ cat /etc/upstream-release/lsb-release
Lo cual retornara algo como:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
En caso de ser Xenial, la linea para Agregar el origen del paquete PostgreSQL seria:
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" > \
/etc/apt/sources.list.d/postgresql.list'
Y si es Bionic, solo cambia una palabra:
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" > \
/etc/apt/sources.list.d/postgresql.list'
¿Que ocurre si uno elige el origen equivocado 😣?
Si al momento de intentar intalar PostgreSQL en tu Linux Mint aparece el error descripto al principio de este post, tal vez sea a causa de este pequeño desliz.
Solución:
Intentar ejecutar la linea correcta, en la cual se cambia Xenial por Bionic o viceversa no tendrá resultado, se indicara Permission denied
😢, aun en modo superusuario. Una manera de solucionar esto es abrir el archivo creado que contiene el origen "incorrecto" y editarlo en forma manual usando el editor Vi o Nano, es importante hacerlo como superusurio para poder guardar los cambios:
$ sudo nano /etc/apt/sources.list.d/postgresql.list
El contenido dentro del archivo puede ser algo parecido a esto:
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
Cambia el Bionic por Xenial o al revés y luego sal, no olvidar guardar los cambios antes, ahora vuelve a actualizar:
$ sudo apt-get update
$ sudo apt-get upgrade
Esto debería solucionar el problema, ya ase puede instalar PostgreSQL 11😋.
Gracias, y hasta luego.
Written by @EspiFreelancer with StackEdit.