Каждый раз я устанавливаю 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
Несмотря на это, у меня есть эти две папки и дублированные объекты. Почему это происходит?
Короткий ответ: это происходит, потому что Вы не удаляли версию 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 это притянуло.