Почему PostgreSQL работает в Ubuntu после установки без использования initdb? - PullRequest
7 голосов
/ 26 февраля 2009

Мне любопытно, почему вам не нужно использовать initdb согласно руководству postgresql перед первым запуском psql? (Я установил версию 8.3 на 8.04.1)

Red Hat требует запуска -c postgresql, но не init.db.

Однако в FreeBSD вы должны запустить initdb.

Почему настройки не согласованы? В чем разница между apt-get install, rpm -i и pkg_add?

Ответы [ 5 ]

1 голос
/ 25 февраля 2012

Debian (и, соответственно, Ubuntu) довольно умно обрабатывает PostgreSQL. Посмотрите на postgresql-common пакет для деталей. Вкратце, он поддерживает установку нескольких (основных) версий postgres и запуск нескольких кластеров каждой версии postgres. Чтобы увидеть, какие у вас кластеры, попробуйте pg_lsclusters. Сопровождающий пакетов предполагает, что, если вы устанавливаете пакеты pg-сервера впервые, вам понадобится создать для него кластер initdb. Например, если вы установите postgresql-9.1, вы получите по умолчанию 9.1 / основной кластер initdb'd для вашего использования.

В дистрибутивах Linux не все согласованно, потому что весь смысл дистрибутивов состоит в том, чтобы предлагать лучшие решения проблем, подобных этой. Debian предлагает отличное решение в этом направлении. Однако я предлагаю вам использовать PPA postgresql и получить более свежую версию postgresql, тем более что вы просто устанавливаете вещи.

Я только что понял, что отвечаю на древний вопрос. Boo.

1 голос
/ 04 марта 2009

Это не скрипты запуска, а хуки после установки, указанные в пакете, который вы установили, который делает для вас дополнительные шаги. Независимо от того, используете ли вы формат .deb или .rpm, упаковщики могут настроить выполнение задач после установки всех файлов.

Некоторые дистрибутивы держат вас в руках, когда вы устанавливаете программное обеспечение, некоторые ожидают, что вы бы предпочли сделать что-то самостоятельно ... золотого ответа на вопрос, почему любой упаковщик делает так, как он делает, не существует.

Ubuntu стремится к установке одним щелчком мыши без необходимости когда-либо видеть оболочку. Другие дистрибутивы, созданные специально для системных интеграторов, не держат вас за руку.

Добро пожаловать в 31 (и более) разновидность операционных систем, вращающихся вокруг ядра Linux, или усилия, сосредоточенные на ядре BSD.

Каждый имеет представление о том, как это должно быть сделано. Хорошие дистрибутивы предполагают, что вы знаете, что делаете ... если, конечно, они не хотят ущипнуть рынок настольных компьютеров от Microsoft, и в этом случае они станут хорошими дистрибутивами для настольных компьютеров, которые держат вашу руку.

В основном это вопрос выбора, что делает весь феномен таким классным.

1 голос
/ 26 февраля 2009

Почти наверняка да. Разные варианты Linux и Unix имеют разные подходы к упаковке программного обеспечения; FreeBSD, например, основан на системе портов (где вы компилируете с нуля, хотя для большинства из них предварительно созданы бинарные пакеты), в то время как в распространенных дистрибутивах Linux часто бывает, что вы найдете готовый бинарный пакет для чего-то популярного.

Разные люди, которые поддерживают системы упаковки («упаковщики» и другие, иногда не очень добрые псевдонимы), придерживаются разных подходов к проблеме, часто отражая дух родительского проекта. В качестве альтернативы может оказаться, что один упаковщик решит, что разумно настроить его на стандартную конфигурацию и выполнить некоторые общие шаги инициализации от вашего имени, тогда как более сложный упаковщик предоставит его конечному пользователю, особенно если программное обеспечение в любом случае сложен или требует какого-либо рассмотрения перед развертыванием, например системные службы.

1 голос
/ 26 февраля 2009

Скорее всего, это просто то, что сценарии запуска, которые входят в комплект этих систем, автоматически запускают initdb при первом запуске.

0 голосов
/ 04 марта 2009

Если не ошибаюсь, пакеты PostgreSQL для Ubuntu являются производными от Debian. Возможно, по какой-то причине упаковка Debian имеет такую ​​позицию. Если это так, то Debian и все его производные, такие как Ubuntu, будут отображать то же поведение. Это произойдет, только если вы попытаетесь установить соответствующее программное обеспечение из хранилища. Если вы получите исходный код с сайта PostgreSQL и скомпилируете его, вы получите его, как указано в руководстве. Различные дистрибутивы следуют определенным рекомендациям по упаковке и занимают определенные позиции в отношении упаковки определенных программ. Если вы хотите узнать точные детали, вы можете указать сопровождающему пакета postgresql, чтобы узнать причины.

...