Как мне перейти на Postgres 9.2?


17

Совсем недавно я читал, что выпущен PostgreSQL 9.2 . В моей Ubuntu 12.04 установлен PostgreSQL 9.1.5. Как я могу обновить до 9.2 версии? Я пытался apt-get updateи apt-get upgradeбез обновлений для PostgreSQL.

Ответы:


32

Вот инструкции по добавлению репозитория postgresql apt: https://wiki.postgresql.org/wiki/Apt

Быстрый старт

Импортируйте ключ хранилища из http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc :

wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -

Отредактируйте /etc/apt/sources.list.d/pgdg.list. Распределения называются кодовое имя-pgdg. В этом примере замените squeeze на фактический дистрибутив, который вы используете:

deb http://apt.postgresql.org/pub/repos/apt/ squeeze-pgdg main

Сконфигурируйте закрепление пакетов в apt так, чтобы они предпочитали пакеты PGDG пакетам Debian в /etc/apt/preferences.d/pgdg.pref:

Package: *
Pin: release o=apt.postgresql.org
Pin-Priority: 500

Примечание: это заменит все ваши пакеты Debian / Ubuntu доступными пакетами из репозитория PGDG. Если вы не хотите этого, пропустите этот шаг. Обновите списки пакетов и установите пакет pgdg-keyring, чтобы автоматически получать обновления ключей репозитория:

sudo apt-get update
sudo apt-get install pgdg-keyring

После того, как вы добавили этот репозиторий, вы можете сделать sudo apt-get install postgresql-9.2


У меня уже установлен PostgreSQL, это будет конфликтовать с моим текущим установленным?
Дефенсор

он установит в свою собственную папку для postgresql-9.2. Если вы обнаружите, что некоторые из ваших команд (например, pg_dump) указывают на программы postgresql-9.1, вы можете изменить символическую ссылку или просто запустить команду из каталога postgresql-9.2. Перед установкой новой версии обязательно создайте резервную копию базы данных, чтобы быть уверенным.
Дэнни

1
Я не согласен с этим предупреждением об устаревании, поскольку PPA переходит к Quantal, а более новое репо - нет. Оба опаздывают на Raring, что нарушает рекомендуемый сценарий .
Тобу

1
Просто для дальнейшего использования, я получаю сообщение об ошибке, говоря, что /var/lib/postgresql/9.2/main недоступен или не существует. Решено с помощью sudo apt-get remove --purge postgresql-9.2 postgresql-9.1 sudo apt-get install postgresql-9.2
Pankaj

Обратите внимание, что использовать sudo не рекомендуется. В моей системе это приводит к тому, что приглашение sudo будет скрыто, и вся команда будет зависать бесконечно.
Церин

6

Существует новый официальный репозиторий postgresql.org. Он содержит новейшие версии postgresql, включая 9.3 по состоянию на февраль 2014 года. Пожалуйста, ознакомьтесь с подробными официальными инструкциями . Для Ubuntu 12.04 я использовал:

sudo bash -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update
sudo apt-get install postgresql-9.3 pgadmin3

1
Что обеспечивает 9.3 версию pg_dump? Dpkg говорит, что он все еще предоставляется postgresql-client-common, который застрял в 9.1.
Cerin

Пакет @Cerin postgresql-client-9.3содержитpg_dump
geekQ

Ах, ты прав. Но он не обновил символические ссылки в / usr / bin, что мне просто нужно сделать вручную.
Церин

-1

Попробуй это:

sudo -u postgres psql --cluster 9.2/main 

Я получаю это:Error: Invalid version specified with --cluster
Defensor

На Askubuntu человек, задающий вопрос, увидит каждый ответ без необходимости индивидуального обращения. Точно так же вы будете уведомлены о каждом комментарии к вашему ответу. Добро пожаловать на сайт! Есть ли у вас какие-либо предложения по поводу сообщения об ошибке версии Defensor?
Джон С. Грубер

1
Это просто неправильно. Он спрашивает, как обновить, чтобы не подключаться к кластеру 9.2.
Эдвард Андерсон

Насколько я знаю, ppa: pitti устанавливает 9.2 параллельно с 9.1 - он просто работает на другом порту. попробуйте psql -p 5433.
alfonx,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.