Создание нового пользователя
Для того, чтобы была возможность подключения к СУБД PostgreSQL от нового пользователя, необходимо создать данного пользователя, назначить ему права, выполнить настройку файла pg_hba.conf.
1. Создание пользователя
а) Добавление новой роли (пользователя) из оболочки SQL:
=# CREATE USER dmosk WITH PASSWORD ‘myPassword’;
* в примере создана роль dmosk с паролем myPassword.
б) Добавление новой роли (пользователя) из командной строки Linux:
createuser -P dmosk
2. Назначение прав на использование базы данных
Даем права на базу командой:
=# GRANT ALL PRIVILEGES ON DATABASE «database1» to dmosk;
Теперь подключаемся к базе, к которой хотим дать доступ:
=# \c database1
* в примере подсоединимся к базе с названием database1.
а) Так мы добавим все права на использование всех таблиц в базе database1 учетной записи dmosk:
database1=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO «dmosk»;
* в большинстве случаев, используется схема по умолчанию public. Но администратор может создать новую схему. Это нужно учитывать при назначении прав.
б) Также можно дать доступ к базе для определенных таблиц:
database1=# GRANT ALL PRIVILEGES ON TABLE table1 IN SCHEMA public TO «dmosk»;
* в данном примере мы даем права на таблицу table1.
Выходим из SQL-оболочки:
database1=# \q
3. Настройка файла pg_hba.conf
Для возможности подключиться к СУБД от созданного пользователя, необходимо проверить настройки прав в конфигурационном файле pg_hba.conf.
Для начала смотрим путь расположения данных для PostgreSQL:
=# SHOW config_file;
В ответ мы получим, что-то на подобие:
——————————————
/var/lib/pgsql/9.6/data/postgresql.conf
(1 row)
* в данном примере /var/lib/pgsql/9.6/data/ — путь расположения конфигурационных файлов.
Открываем pg_hba.conf:
vi /var/lib/pgsql/9.6/data/pg_hba.conf
Добавляем права на подключение нашему созданному пользователю:
…
# IPv4 local connections:
host all dmosk 127.0.0.1/32 md5
…
* в данном примере мы разрешили подключаться пользователю dmosk ко всем базам на сервере (all) от узла 127.0.0.1 (localhost) с требованием пароля (md5).
* необходимо, чтобы данная строка была выше строки, которая прописана по умолчаниюhost all all 127.0.0.1/32 ident.
После перезапускаем службу:
systemctl restart postgresql-9.6
* в данном примере установлен postgresql версии 9.6, для разных версий на разных операционных системах команды для перезапуска сервиса могут быть разные.
Параметры подключения
Теперь рассмотрим параметры подключений!
Типы подключений:
- local – использует unix сокет;
- host – использует TCP/IP, оно может быть шифрованным с помощью SSL или не шифрованным;
- hostssl – только зашифрованный TCP/IP;
- hostnossl – только не зашифрованный TCP/IP.
- all – подключение к любой БД;
- sameuser – БД, совпадающая по имени с ролью;
- samerole – БД, совпадающая по имени с ролью или группой, в которую она входит;
- replication – специальное разрешение для протокола репликации;
- имя базы данных – имя конкретной базы данных, или через запятую можно перечислить список баз данных.
Адрес узла:
- all – любой IP-адрес;
- ip-адресс – конкретный ip адрес, подсеть, или диапазон (172.20.143.0/24 или 172.20.143.0 255.255.255.0)
- samehost – означает адрес сервера с которого ведётся подключение, аналог 127.0.0.1;
- samenet – означает любой ip адрес из подсети сервера;
- доменное имя (или часть доменного имени, начиная с точки) – при этом postgresql проверяет ip-адрес подключающегося клиента на принадлежность к этому домену.
Имя роли:
- all – любая роль;
- <имя роли> – роль с указанным именем, при этом можно перечислить роли через запятую;
- +<имя роли> – групповая роль, в которую включены другие роли.
Тип аутентификации:
- Аутентификация без проверок:
- trust – разрешает подключение без аутентификации, то есть без проверки пароля или любых других проверок;
- reject – запрещает подключение ничего не проверяя;
- Аутентификация по паролю:
- md5 – пароль хранится в СУБД и шифруется MD5;
- scram-sha-256 – пароль хранится в СУБД, используется протокол SCRAM (более надёжно);
- ldap – пароль хранится на сервере LDAP;
- radius – пароль хранится на сервере RADIUS;
- pam – пароль хранится в подключаемом модуле PAM;
- Внешняя аутентификация:
- peer – запрашивает имя пользователя у операционной системы (только для Linux и только для локальных подключений);
- cert – аутентификация с использованием клиентского SSL-сертификата;
- gss – аутентификация Kerberos по протоколу GSSAPI;
- sspi – аутентификация Kerberos/NTLM для Windows.
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.
12 ответов
Лучший ответ
Я рекомендую вам попробовать использовать Postgres.app. (http://postgresapp.com) Таким образом, вы можете легко включать и выключать Postgres на вашем Mac. Как только вы это сделаете, добавьте путь к Postgres в ваш файл , добавив следующее:
Только после того, как вы добавили Postgres к своему пути, вы можете попытаться установить либо в виртуальной среде (используя pip), либо в пакеты вашего глобального сайта.
98
eykanal
16 Июн 2016 в 15:35
Вы можете найти каталог , используя его тезку:
Протестировано на Mac и Debian. Единственная проблема заключается в том, что я не вижу, как найти биндир для разных версий postgres, установленных на одной машине. Это довольно легко догадаться, хотя!
Примечание: я обновил свой pg_config до 9.5 в Debian с помощью:
3
Max Murphy
12 Май 2016 в 16:22
Подводя итог: PostgreSQL устанавливает свои файлы (включая двоичные или исполняемые файлы) в разных местах, в зависимости от номера версии и метода установки.
Некоторые из возможностей:
Не удивительно, что люди путаются!
8
jkdev
28 Окт 2015 в 18:52
Установка доморощенного
А затем установка postgresql
Дал мне этот прекрасный вывод:
Ааааааааааааааааа
23
cpres
5 Ноя 2014 в 18:32
Есть такая же проблема на Mac, вам, вероятно, нужно
Тогда вы можете запустить
Пиво решит проблему ПУТИ для вас
Это решение работает для меня по крайней мере.
zoe_stockholm
14 Мар 2017 в 12:02
После того, как вы установите текущее приложение PostgreSQL на MacOS X 10.11, именно здесь файл pg_config будет .
Тогда на Терминале:
Это поместит путь в .profile того терминала, который вы используете.
В вашей среде (при условии, что вы используете ), вы затем устанавливаете psycopg2:
Вы должны увидеть, загрузили ли вы его раньше:
13
Afrowave
5 Фев 2016 в 16:13
Postgres.app был недавно обновлен. Теперь он хранит все двоичные файлы в папке «Версии»
Где 9.4 — версия PostgreSQL.
28
Daniil Ryzhkov
14 Апр 2015 в 08:11
Проверьте /Library/PostgreSQL/9.3/bin, и вы должны найти pg_config
И.Е.
PS: вы можете сделать следующее, если сочтете это необходимым для ваших нужд pg —
Создайте .profile в вашем каталоге
Теперь вы можете использовать или команды из терминала, и установить psycopg2 или любую другую зависимость без проблем, плюс вы всегда можете просто , когда захотите заглянуть в свой pg_dir.
1
codesage
18 Ноя 2015 в 06:44
Я использовал :
1
Deepika Anand
8 Окт 2016 в 01:19
Работает для меня, установив первые следующие пип-пакеты: и
Koleen BP
28 Дек 2019 в 17:57
Вот как просто получить путь к
bereket gebredingle
26 Фев 2019 в 08:42
У меня была точно такая же ошибка, но я установил postgreSQL через brew и перезапустил оригинальную команду, и она отлично работала:
5
romainm
27 Фев 2016 в 11:47
Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.
Основные настройки
Конфигурационный файл отвечающий за настройки аутентификации – pg_hba.conf. Он находится в каталоге PGDATA:
postgres@s-pg13:~$ ls -l $PGDATA/pg_hba.conf -rw------- 1 postgres postgres 4760 июн 21 15:15 /usr/local/pgsql/data/pg_hba.conf
Его местоположение можно изменить задав параметр hba_file в конфигурационном файле postgresql.conf:
postgres@s-pg13:~$ cat $PGDATA/postgresql.conf | grep hba #hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
При изменении этого файла конфигурацию сервера нужно перечитать, выполнив:
- – из операционной системы;
- – если вы подключены к СУБД.
Если вы подключены к СУБД, то узнать местоположение файла можно таким способом:
postgres@s-pg13:~$ psql Timing is on. psql (13.3) Type "help" for help. postgres@postgres=# SHOW hba_file; hba_file ----------------------------------- /usr/local/pgsql/data/pg_hba.conf (1 row) Time: 0,740 ms
Файл pg_hba.conf состоит из строк, а строки состоят из следующих полей:
- тип подключения;
- имя БД;
- имя пользователя;
- адрес узла;
- метод аутентификации;
- необязательные дополнительные параметры в виде имя=значение. Эти параметры нужны некоторым методам аутентификации.
Эти строки обрабатываются сверху вниз и применяется первая найденная строка. Таким образом если тип подключения, имя БД, имя пользователя и адрес сервера совпали, то применяется определённый метод аутентификации.
pg_hba – если-то
При подключении выполняется аутентификация и проверяется привилегия CONNECT. Если результат отрицательный, доступ запрещается и строки ниже не рассматриваются. Если ни одна запись не подошла, доступ запрещается. Таким образом записи должны идти сверху вниз от частного к общему.
Вот пример файла pg_hba.conf, который создаётся при сборке из исходников:
# TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust
Первая строчка это тип подключения local, в котором используется локальный unix сокет, и не задействована сеть. При таком подключении все пользователи (all) могут подключаться методом trust. О методах поговорим позже.
Третья и четвёртая строки относятся к tcp подключениям (host). При таком подключении все пользователи могут подключаться только из локального хоста (127.0.0.1/32 или ::1/128) используя метод trust.
Последние три строки относятся к репликации. Репликация возможна по сокету (local) и по сети (host) но только с локального хоста (127.0.0.1/32 или ::1/128). Здесь тоже используется метод trust.
Если вы подключены к СУБД, то сможете посмотреть содержимое файла pg_hba.conf с помощью представления pg_hba_file_rules:
postgres@postgres=# SELECT * FROM pg_hba_file_rules; line_number | type | database | user_name | address | netmask | auth_method | options | error -------------+-------+---------------+-----------+-----------+-----------------------------------------+-------------+---------+------- 88 | local | {all} | {all} | | | trust | | 90 | host | {all} | {all} | 127.0.0.1 | 255.255.255.255 | trust | | 92 | host | {all} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | trust | | 95 | local | {replication} | {all} | | | trust | | 96 | host | {replication} | {all} | 127.0.0.1 | 255.255.255.255 | trust | | 97 | host | {replication} | {all} | ::1 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff | trust | | (6 rows) Time: 2,006 ms
Если в строке допущена ошибка, то это представление в поле error покажет ошибку.
Какие параметры требуют перезапуск сервера?
Чтобы это выяснить нужно посмотреть все параметры у которых context = postmaster:
postgres@postgres=# SELECT name, setting, unit FROM pg_settings WHERE context = 'postmaster'; name | setting | unit -------------------------------------+---------------------------------------+------ archive_mode | off | autovacuum_freeze_max_age | 200000000 | autovacuum_max_workers | 3 | autovacuum_multixact_freeze_max_age | 400000000 | bonjour | off | bonjour_name | | cluster_name | | config_file | /usr/local/pgsql/data/postgresql.conf | data_directory | /usr/local/pgsql/data | data_sync_retry | off | dynamic_shared_memory_type | posix | event_source | PostgreSQL | external_pid_file | | hba_file | /usr/local/pgsql/data/pg_hba.conf | hot_standby | on | huge_pages | try | ident_file | /usr/local/pgsql/data/pg_ident.conf | ignore_invalid_pages | off | jit_provider | llvmjit | listen_addresses | localhost | logging_collector | off | max_connections | 100 | max_files_per_process | 1000 | max_locks_per_transaction | 64 | max_logical_replication_workers | 4 | max_pred_locks_per_transaction | 64 | max_prepared_transactions | 0 | max_replication_slots | 10 | max_wal_senders | 10 | max_worker_processes | 8 | old_snapshot_threshold | -1 | min port | 5432 | recovery_target | | recovery_target_action | pause | recovery_target_inclusive | on | recovery_target_lsn | | recovery_target_name | | recovery_target_time | | recovery_target_timeline | latest | recovery_target_xid | | restore_command | | shared_buffers | 16384 | 8kB shared_memory_type | mmap | shared_preload_libraries | | superuser_reserved_connections | 3 | track_activity_query_size | 1024 | B track_commit_timestamp | off | unix_socket_directories | /tmp | unix_socket_group | | unix_socket_permissions | 0777 | wal_buffers | 512 | 8kB wal_level | replica | wal_log_hints | off | (53 rows) Time: 0,666 ms
Сводка
Имя статьи
PostgreSQL. Конфигурирование
Описание
Сервер баз данных PostgreSQL имеет очень много параметров с помощью которых его можно настроить под любые нужды. В этой статье мы не будет рассматривать все эти параметры. Здесь мы посмотрим на различные способы настройки этого сервера.
Создаем пользователя репликации
sudo su postgres #В этот момент мы авторизовываемся под пользователем postgres psql postgres=# CREATE USER replica REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD '4UtKbw'; \q
У данного пользователя в postgresql будет пароль 4UtKbw и лимит в 2 одновременных подключения. Помним что если в pg_hba.conf у нас настроено следующим образом:
# Database administrative login by Unix domain socket local all postgres md5
То при вводе команды
система попросит вас ввести пароль вашего пользователя postgres в postgresql. У меня он h4GiQn. Если у вас просит пароль, но вы не помните его, надо изменить md5 на trust, перезапустить постгрес и вас пустит без пароля.
Установка параметров на лету
Для своего сеанса можно изменить параметры с context=user. Для этого используется конструкция:
Например сделаем это для work_mem:
postgres@postgres=# SET work_mem TO '64MB'; SET Time: 0,119 ms postgres@postgres=# SELECT name, setting, unit, boot_val, reset_val, source, sourcefile, sourceline, pending_restart, context FROM pg_settings WHERE name = 'work_mem'\gx ----+--------- name | work_mem setting | 65536 unit | kB boot_val | 4096 reset_val | 10240 source | session sourcefile | sourceline | pending_restart | f context | user Time: 0,651 ms
Как видим, теперь источником является текущая сессия, а параметр равен 64 MB, но если мы перечитаем конфигурацию параметр снова станет равным 10 MB.
Чтобы вернуть все на место нужно просто перезайти в psql. Или выполнить команду :
postgres@postgres=# RESET work_mem; RESET Time: 0,211 ms postgres@postgres=# SELECT name, setting, unit, boot_val, reset_val, source, sourcefile, sourceline, pending_restart, context FROM pg_settings WHERE name = 'work_mem'\gx ----+------------------------------------------- name | work_mem setting | 10240 unit | kB boot_val | 4096 reset_val | 10240 source | configuration file sourcefile | /usr/local/pgsql/data/postgresql.auto.conf sourceline | 3 pending_restart | f context | user Time: 0,632 ms
Тоже самое может проделывать приложение для одной транзакции, и если транзакция откатывается, то и значение параметра откатывается вместе с ней:
postgres@postgres=# BEGIN; BEGIN Time: 0,070 ms postgres@postgres=# SET work_mem TO '64MB'; SET Time: 0,085 ms postgres@postgres=# SHOW work_mem; work_mem ---------- 64MB (1 row) Time: 0,102 ms postgres@postgres=# ROLLBACK; ROLLBACK Time: 0,108 ms postgres@postgres=# SHOW work_mem; work_mem ---------- 10MB (1 row) Time: 0,120 ms
Как вы могли заметить посмотреть текущее значение параметра ещё можно так:
6 ответов
107
предназначен для сведения об осложнениях, чтобы помочь расширениям и клиентским программам скомпилировать и связать с PostgreSQL. Он ничего не знает об активных экземплярах PostgreSQL на машине, только двоичные файлы.
может отображаться во многих других местах в зависимости от того, как был установлен Pg. Стандартное расположение в базы данных (которое может быть в , , , и т. д. и т. д. и т. д.), но пользователи и упаковщики могут помещать их где угодно им нравится. К сожалению.
Единственным допустимым способом найти является запрос исполняемого экземпляра PostgreSQL, где находится , или задать sysadmin, где он есть. Вы даже не можете рассчитывать на то, где находится datadir, и анализировать , потому что скрипт инициализации может передать параметр, например при запуске Pg.
Что вы хотите сделать, это спросить PostgreSQL:
Эта команда должна запускаться в сеансе суперпользователя, поэтому для сценариев оболочки вы можете написать что-то вроде:
и установите переменные среды , и т. д., чтобы убедиться, что соединение правильно.
Да, это несколько проблема с курицей и яйцом, потому что если пользователь не может подключиться (скажем, после прикручивания редактирования ), вы не можете найти pg_hba.conf, чтобы исправить его.
Другой вариант — посмотреть на вывод команды и посмотреть, есть ли там файл каталога данных postmaster , например.
, поскольку будет находиться внутри каталога данных (если вы не используете Debian /Ubuntu или некоторые производные и не используете их).
Если вы ориентируетесь именно на системы Ubuntu с PostgreSQL, установленными из пакетов Debian /Ubuntu, это становится немного проще. Вам не нужно иметь дело с hand-compiled-from-source Pg, для чьего-то ‘da datadir для своего домашнего каталога, или для установки EnterpriseDB Pg в /opt и т. Д. Вы можете задать pg_wrapper, то Debian /Ubuntu многоверсионное Pg менеджер, где PostgreSQL использует команда из .
Если вы не можете подключиться (Pg не работает или вам нужно отредактировать ), вам нужно будет искать систему для . На Mac и Linux что-то вроде будет делать. Затем проверьте файл в том же каталоге, чтобы убедиться, что это правильная версия PostgreSQL, если у вас более одного. (Если находится в /, игнорируйте это, вместо этого это имя родительского каталога). Если у вас несколько каталогов данных для одной и той же версии PostgreSQL, вам нужно посмотреть размер базы данных, проверьте командную строку запущенных postgres из , чтобы увидеть, является ли это каталог данных , где вы редактируете и т. Д.
17
Вот как я это делаю:
Так как путь таков:
2
Я использую следующие для обнаружения файлов конфигурации:
1
Редактирование правильного с помощью визуального редактора по умолчанию (vim, emacs, nano, joe и т. д.) выполняется так же легко, как:
Запросите свою базу данных:
Скопировано из Stackoverflow — https://stackoverflow.com/a/3603162/5677857
-2
Чтобы узнать, где находится файл
просто введите:
6 ответов
Решение
предназначен для информации о комплиментах, чтобы помочь расширениям и клиентским программам компилировать и ссылаться на PostgreSQL. Он ничего не знает об активных экземплярах PostgreSQL на машине, только двоичные файлы.
может появиться во многих других местах в зависимости от того, как был установлен Pg. Стандартное расположение в пределах базы данных (которая может быть в , , , и т. д. и т. д.), но пользователи и упаковщики могут размещать их в любом месте. К несчастью.
Единственные действительные способы найти это спросить работающий экземпляр PostgreSQL, где это или спросите системного администратора, где он находится. Вы даже не можете полагаться на вопрос, где находится датадир, и на синтаксическом анализе. потому что сценарий инициализации может передать параметр как при запуске стр.
Что вы хотите сделать, это спросить PostgreSQL:
Эта команда должна выполняться в сеансе суперпользователя, поэтому для сценариев оболочки вы можете написать что-то вроде:
и установите переменные среды , и т. д., чтобы убедиться в правильности соединения.
Да, это в некоторой степени проблема курицы и яйца в том случае, если пользователь не может подключиться (скажем, после того, как испортил редактирование ) вы не можете найти для того, чтобы это исправить.
Другой вариант — посмотреть на вывод команды и посмотрите, является ли аргумент каталога данных postmaster там видно, например
поскольку будет в каталоге данных (если вы не используете Debian/Ubuntu или какую-либо производную и используете их пакеты).
Если вы нацелены конкретно на системы Ubuntu с PostgreSQL, установленным из пакетов Debian/Ubuntu, это станет немного проще. Вам не нужно иметь дело с Pg, скомпилированным вручную из исходного кода, da dadadir для в их домашнем каталоге, или EnterpriseDB Pg установить в /opt и т. д. Вы можете спросить мульти-версия Pg менеджера Debian/Ubuntu, где PostgreSQL использует команда от ,
Если вы не можете подключиться (Pg не работает, или вам нужно отредактировать подключиться) вам придется искать систему для файлы. На Mac и Linux что-то вроде Сделаю. Затем проверьте файл в том же каталоге, чтобы убедиться, что это правильная версия PostgreSQL, если у вас более одной. (Если в /, игнорируйте это, вместо этого это имя родительского каталога). If you have more than one data directory for the same PostgreSQL version you’ll have to look at database size, check the command line of the running postgres from to see if it’s data directory argument matches where you’re editing, etc.
138
2013-02-16 03:18
Вот как я это делаю:
Так как путь такой:
20
2013-08-29 13:42
Я использую следующее для обнаружения файлов конфигурации:
2
2014-10-10 13:07
Редактирование правильного с вашим визуальным редактором по умолчанию (vim, emacs, nano, joe и т. д.) так же просто, как:
1
2015-04-25 01:30
Задайте свою базу данных:
Скопировано из Stackoverflow — https://stackoverflow.com/a/3603162/5677857
2018-06-04 13:55
Чтобы узнать, где находится файл, просто введите:
-2
2013-10-13 23:53
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.
Качаем Postgres с сайта 1С с патчами
На 1С-овском сайте есть соответствующий раздел, в котором абсолютно открыто лежат нужные нам файлики в количестве целых одна штука. Чтобы не мучиться с сетевыми папками и прочим, давайте скачаем этот файлик прямо из Ubuntu. Для этого в linux есть простой скачивальщик файлов «wget». Так и запишем:
wget http://v8.1c.ru/overview/postgresql_patches/9-4-2/postgresql-9.4_9.4.2-1.1c.deb.zip
Теперь остается распаковать файл и попытаться собрать. Для упрощения жизни давайте установим миднайт-коммандер — замечательный файловый менеджер. Полагаю, Вы уже поняли, как устанавливаются здесь программы: просто набираете «sudo apt-get install имя_программы» и вводите пароль. Если хотите более выдающегося интерфейса, то можете зайти в менеджер пакетов aptitude, но там и потеряться можно — пакетов тысячи. Запускаем mc и видим скаченный нами файл:
Создадим каталог, например postgres-install, в который с помощью mc распакуем наш архив. Собственно, здесь у нас три файла: файл с оригинальным постгресом (он абсолютно идентичен архиву с исходниками с официального сайта Postgres’а, только название изменено), файл с заплатками для сборки пакета под debian (Ubuntu использует инструменты сборки пакетов из debian, так что это то, что нужно) и файл с описанием (.dsc — дескрипшн). Давайте распакуем все это и накатим патчики. Для этого нам нужно выполнить следующую команду:
dpkg-source -x *.dsc
Вот что должно появиться на Вашем экране:
Мы распаковали файлы с исходниками и применили к ним патчи.
Если бы не было ошибки с юнит-тестом XML в данной версии сборки, то мы бы могли написать одну команду, которая собрала бы нам установочные пакеты. Но т.к. при этом запускаются юнит-тесты и на одном из них валится ошибка, то нам придется собирать пакет самостоятельно. И это … хорошо! )))