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

Создание необходимых зависимостей при установке apt-get в Ubuntu

У меня есть сервер Ubuntu 12.04.2, и я хочу установить Postgres 9.2.4. Если бы я хотел построить все зависимости, я бы не смог использовать apt-get build-dep (по крайней мере, без некоторых изысков), потому что только 9.1 доступна для apt-get install. Это оставляет меня в недоумении: «Интересно, какие новые зависимости были добавлены после 9.1». Итак, я решил проверить В любом случае зависимости Postgres 9.1, поэтому я сделал пробный прогон:

me@my-server:~$ sudo apt-get build-dep postgresql-9.1 --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  bison comerr-dev debhelper dh-apparmor docbook docbook-dsssl docbook-xsl flex gettext html2text intltool-debian krb5-multidev libbison-dev libcroco3 libedit-dev libexpat1-dev libfl-dev libgettextpo0
  libgssrpc4 libkadm5clnt-mit8 libkadm5srv-mit8 libkdb5-6 libkrb5-dev libldap2-dev libncurses5-dev libosp5 libossp-uuid-dev libossp-uuid16 libostyle1c2 libpam0g-dev libperl-dev libperl5.14 libpython3.2
  libssl-dev libunistring0 libxml2-dev libxslt1-dev libxslt1.1 m4 openjade opensp po-debconf python-dev python2.7-dev python3 python3-dev python3-minimal python3.2 python3.2-dev python3.2-minimal
  sgml-data tcl8.5 tcl8.5-dev xsltproc
0 upgraded, 54 newly installed, 0 to remove and 0 not upgraded.

... rest omitted

Это говорит мне о том, что существует довольно много зависимостей, которые в настоящее время не установлены. Из-за этого я решил проверить сухой запуск фактической установки Postgres 9.1:

me@my-server:~$ sudo apt-get install postgresql-9.1 --dry-run
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libpq5 postgresql-client-9.1 postgresql-client-common postgresql-common ssl-cert
Suggested packages:
  oidentd ident-server locales-all postgresql-doc-9.1 openssl-blacklist
The following NEW packages will be installed:
  libpq5 postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common ssl-cert
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.

... rest omitted

Мой вопрос связан с тем, что если я просто apt-get install libreadline6-dev libghc-zlib-dev (из учебника, который я прочитал), я могу установить Postgres 9.2.4 нормально. Казалось, все работает отлично, и make check прошло. Итак, это build-dep обычно это хорошая идея в таких случаях, или обычно устанавливается намного больше, чем действительно нужно?

Согласно PostgresSQL установить требования, ему просто нужен GNU make, GCC или аналогичный, tar, GNU Readline и zlib. Однако, в зависимости от ваших параметров сборки, существует множество других необязательных зависимостей, таких как Perl и Python.

Если вам не нужны какие-либо дополнительные функции, вы можете их отключить; вы просто не сможете выбрать их во время сборки. build-dep пытается решить все зависимости от способа, которым сопровождающий пакет Ubuntu построил пакет, который, вероятно, включает в себя многие параметры сборки, так что наибольшее количество людей может его использовать.