Почему у меня есть две версии PostgreSQL в моей Ubuntu 18.04?

Каждый раз я устанавливаю PostgreSQL в Ubuntu 18.04 (даже когда я спрашиваю apt-get конкретно устанавливать версию 11 с a sudo apt-get install postgresq-11) Я получаю версию 10 и версию 11 в моей системе.

andre@linuxrocks:/var/lib/postgresql$ ls -la
total 48
drwxr-xr-x  5 postgres postgres  4096 jul 18 01:17 .
drwxr-xr-x 86 root     root      4096 jul  5 14:54 ..
drwxr-xr-x  3 postgres postgres  4096 abr 16 10:19 10
drwxr-xr-x  3 postgres postgres  4096 jul 13 00:37 11

Объекты в базе данных повторяют себя в этих двух папках.

postgres=# \! find ~ -type f -name 16563
/var/lib/postgresql/11/main/base/13132/16563
/var/lib/postgresql/10/main/base/16385/16563

Я имею два postgresql.conf, один в каждой папке, хотя DBMS, кажется, получает свои конфигурации только от той в 11 папках.

Я обнаружил это странное поведение после того, как я сделал a ps -f -u postgres видеть все процессы PostgreSQL и видеть, что моя система создала дублированные процессы (один от 10 папок и другого от 11). Таким образом, я произвел чистку и переустановил PostgreSQL (с sudo apt-get install postgresq-11) и теперь у меня больше нет дублированных процессов.

andre@linuxrocks:~$ ps -f -u postgres
UID        PID  PPID  C STIME TTY          TIME CMD
postgres  1595     1  0 14:30 ?        00:00:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/mai
postgres  1684  1595  0 14:30 ?        00:00:00 postgres: 11/main: logger   
postgres  1692  1595  0 14:30 ?        00:00:00 postgres: 11/main: checkpointer   
postgres  1693  1595  0 14:30 ?        00:00:00 postgres: 11/main: background writer   
postgres  1694  1595  0 14:30 ?        00:00:00 postgres: 11/main: walwriter   
postgres  1695  1595  0 14:30 ?        00:00:00 postgres: 11/main: autovacuum launcher   
postgres  1696  1595  0 14:30 ?        00:00:00 postgres: 11/main: stats collector   
postgres  1697  1595  0 14:30 ?        00:00:00 postgres: 11/main: logical replication launcher   
postgres 11074 11073  0 14:33 pts/0    00:00:00 bash
postgres 11078 11074  0 14:33 pts/0    00:00:00 /usr/lib/postgresql/11/bin/psql
postgres 11091  1595  0 14:33 ?        00:00:00 postgres: 11/main: postgres postgres [local] idle

Несмотря на это, у меня есть эти две папки и дублированные объекты. Почему это происходит?

1
задан 18 July 2019 в 20:58

1 ответ

Короткий ответ: это происходит, потому что Вы не удаляли версию 10 (Ubuntu 18.04) прежде, чем установить версию 11 из некоторого другого источника не-Ubuntu.

Смотрите на доступность версии 10 и 11 в репозиториях Ubuntu:

$ rmadison postgresql-10
 postgresql-10 | 10.3-1                | bionic
 postgresql-10 | 10.5-1                | cosmic
 postgresql-10 | 10.9-0ubuntu0.18.04.1 | bionic-security
 postgresql-10 | 10.9-0ubuntu0.18.04.1 | bionic-updates
 postgresql-10 | 10.9-0ubuntu0.18.10.1 | cosmic-security
 postgresql-10 | 10.9-0ubuntu0.18.10.1 | cosmic-updates

$ rmadison postgresql-11
 postgresql-11 | 11.2-1                | disco
 postgresql-11 | 11.4-0ubuntu0.19.04.1 | disco-security
 postgresql-11 | 11.4-0ubuntu0.19.04.1 | disco-updates
 postgresql-11 | 11.4-1.1~build1       | eoan

$ snap search postgresql
Name                                 Version   Publisher      Notes    Summary
postgresql95                         9.5.13    cmd✓           -        PostgreSQL is a powerful, open source object-relational database system.
postgresql96                         9.6.9     cmd✓           -        PostgreSQL is a powerful, open source object-relational database system.
postgresql10                         10.4      cmd✓           -        PostgreSQL is a powerful, open source object-relational database system.
postgresql93                         9.3.23    cmd✓           -        PostgreSQL is a powerful, open source object-relational database system.
postgresql94                         9.4.18    cmd✓           -        PostgreSQL is a powerful, open source object-relational database system.

От этого мы изучаем две вещи:

1) Версия 10 и 11 имеет различные имена пакета. Это означает, что можно установить multple версии бок о бок. Это, кажется, то, что Вы сделали. Можно просто удалить большинство Ваш Ваш postgresql-10 или postgresql-10-* пакеты. (Предупреждение - неправильное использование подстановочных знаков может повредить Вашу систему; всегда выполняемый a --simulate сначала и считайте свой вывод тщательно, чтобы гарантировать, что он удаляет только, что Вы хотите),

2) Версия 11 не доступна для 18,04 ни из какого официального источника Ubuntu. Это означает добавление некоторого источника не-Ubuntu. Так будьте вдвойне осторожны при удалении версии 10: Мы не знаем то, что Вы добавили, от того, где, или что другие зависимости не-Ubuntu это притянуло.

0
ответ дан 7 December 2019 в 19:29

Другие вопросы по тегам:

Похожие вопросы: