Назад | Перейти на главную страницу

Почему при обновлении postgresql-client удаляется postgresql?

На сервере Debian 7 apt-get предлагал мне обновить следующие 2 пакета: postgresql-9.1 и postgresql-client-9.1. Поскольку я не хотел перезапускать сервер базы данных, я решил только обновить клиент и запустил:

sudo apt-get install --only-upgrade postgresql-client-9.1

Но это привело к удалению postgresql-9.1. Я знаю, что postgresql-9.1 зависит от postgresql-client-9.1, но почему обновление postgresql-client удаляет postgresql?


В apt-get upgrade вывод выглядит нормально:

~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  postgresql-9.1 postgresql-client-9.1
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/4,307 kB of archives.
After this operation, 432 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Но не при обновлении только клиента:

~$ sudo apt-get install --only-upgrade postgresql-client-9.1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  postgresql-doc-9.1
The following packages will be REMOVED:
  postgresql postgresql-9.1
The following packages will be upgraded:
  postgresql-client-9.1
1 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Need to get 0 B/996 kB of archives.
After this operation, 16.7 MB disk space will be freed.
Do you want to continue [Y/n]?

Невозможно обновить клиент postgresql без пакета postgresql. Но можно сделать так, чтобы служба postgresql не перезагружалась до следующей перезагрузки ОС. Использовать policy-rc.d

cat > ./usr/sbin/policy-rc.d <<EOF
#!/bin/sh
exit 101
EOF

chmod a+x ./usr/sbin/policy-rc.d

Просто не забудьте удалить policy-rc.d, если вы хотите перезапустить службу PostgreSQL без перезагрузки ОС.