Установка пакетов через pkg. Зависимости.

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
DuoMorph
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-03 21:07:49

Установка пакетов через pkg. Зависимости.

Непрочитанное сообщение DuoMorph » 2015-09-23 10:50:44

Приветствую коллеги. Относительно недавно в фряхе появился менеджер пакетов pkg, когдато я на него перешел, сконвертил базу ну и некоторый софт ставил через него. И вот сейчас снова залез на свой домашний сервак в попытке установить python35, после чего pkg предложил мне установить питон, установить апач (видимо проапдейтить), а так же снести нахрен пол системы и обновить софт который обновлять нельзя ввиду зависимостей от него другого софта (который pkg, кстати просто предложил удалить :) ).
Думаю многие сталкивались с данной проблемой и возможно решали её (ну либо как я по старинке ставили все из портов :) ).
Сосбвтенно вопрос: Кто как решал эту проблему?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Установка пакетов через pkg. Зависимости.

Непрочитанное сообщение f_andrey » 2015-09-23 11:37:16

Вообще, вопрос для новичков, но пусть уж тема тут будет, так как немного и FreeBSD как таковой касается, вдруг следующий кто найдёт и одумается (да я верю в чудеса).

Всё от того что вы не понимаете что творите.

По решению, если хотите пользоваться всё же пакетами, то надо взять себя в руки и порешать, то что от вас хочет pkg и в дальнейшем пользоваться только им! Это в общем то довольно недурной сейчас вариант. Хотя, в идеале ещё завести свой билд сервер и репозиторий.

Из паршивых и очень паршивых решений, надругаться над логикой и поменять тот пакет, что "горит", для этого есть всякие страшные ключи -f и около того, так же есть механизм

Код: Выделить всё

pkg lock
но всё это не от хорошей жизни и в дальнейшем скорее всего приведёт к тем ещё граблям. Ну или из портов.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

DuoMorph
рядовой
Сообщения: 46
Зарегистрирован: 2010-02-03 21:07:49

Установка пакетов через pkg. Зависимости.

Непрочитанное сообщение DuoMorph » 2015-09-23 12:05:11

вдруг следующий кто найдёт и одумается
Я искал темы по поводу pkg :)
в дальнейшем пользоваться только им!
Понимаю, но он не оставил мне выбора)))
Всё от того что вы не понимаете что творите.
Я то понимаю, что творю, я не понимаю какого pkg лезет в пакеты, которые не относятся к устанавливаемому мной пакету и на ключик -f не реагирует.
Питон я конечно уже проинсталлил из портов, но картина была примерно следующей, до его установки:

Код: Выделить всё

serv:/usr/ports/emulators/virtualbox-ose # pkg install -f python35
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
pkg: glib has a missing dependency: perl5.14
pkg: drupal7 has a missing dependency: php53-session
pkg: suphp has a missing dependency: php53
pkg: pecl-APC has a missing dependency: php53
pkg: phpMyAdmin-suphp has a missing dependency: php53-session
pkg: p5-Locale-gettext has a missing dependency: perl5.14
pkg: help2man has a missing dependency: perl5.14
pkg: gamin has a missing dependency: perl5.14
pkg: gio-fam-backend has a missing dependency: perl5.14
pkg: mc has a missing dependency: perl5.14
pkg: autoconf has a missing dependency: perl5.14
pkg: automake has a missing dependency: perl5.14
pkg: pecl-pdflib has a missing dependency: php53
pkg: oscommerce has a missing dependency: php53-session
pkg: portupgrade has a missing dependency: ruby19-bdb
The following 50 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
        ruby20-2.0.0.645,1
        owncloud-8.0.2
        php5-gd-5.4.39
        graphviz-2.38.0_6
        texlive-base-20140525_6
        ruby20-bdb-0.6.6_4
        tex-dvipsk-5.994_1
        texlive-texmf-20140525_4
        tex-formats-20140525_1
        doxygen-1.8.9.1,2
        rubygem-nokogiri-1.6.3.1_1
        rubygem-savon-0.9.5
        rubygem-wasabi-1.0.0
        rubygem-winrm-1.1.3
        rubygem-gssapi-1.0.2
        rubygem-ffi-1.9.3_1
        php5-mcrypt-5.4.39_1

New packages to be INSTALLED:
        perl5.18: 5.18.4_17
        apache22: 2.2.31
        mysql55-client: 5.5.44_1
        docbook-xml: 5.0_3
        docbook-sgml: 4.5_1
        compat6x-amd64: 6.4.604000.200810_3

Installed packages to be UPGRADED:
        libffi: 3.0.9 -> 3.2.1
        libiconv: 1.14_3 -> 1.14_8
        libX11: 1.4.4,1 -> 1.6.2_3,1
        libxcb: 1.7 -> 1.11_1
        libXdmcp: 1.1.0 -> 1.1.2
        libXau: 1.0.6 -> 1.0.8_3
        libXext: 1.3.0_1,1 -> 1.3.3_1,1
        libSM: 1.2.0,1 -> 1.2.2_3,1
        libICE: 1.0.7,1 -> 1.0.9_1,1
        expat: 2.1.0_1 -> 2.1.0_3
        freetype2: 2.4.11 -> 2.6_1
        libXt: 1.1.1,1 -> 1.1.4_3,1
        libpthread-stubs: 0.3_3 -> 0.3_6
        libxml2: 2.7.8_5 -> 2.9.2_3
        glib: 2.28.8_5 -> 2.44.1_1
        tcl86: 8.6.1 -> 8.6.4
        png: 1.5.18 -> 1.6.18
        pcre: 8.34_1 -> 8.37_4
        curl: 7.37.0 -> 7.44.0
        apr: 1.4.6.1.4.1_3 -> 1.5.2.1.5.4
        gdbm: 1.9.1 -> 1.11_2
        libxslt: 1.1.28 -> 1.1.28_7
        libgpg-error: 1.11 -> 1.20
        libgcrypt: 1.5.0_1 -> 1.6.3
        libwww: 5.4.0_4 -> 5.4.0_5
        lzo2: 2.06 -> 2.09

Installed packages to be REINSTALLED:
        python35-3.5.0

The operation will free 1 GiB.
49 MiB to be downloaded.

Proceed with this action? [y/N]:
Из чего видно, что pkg предлагает просто снести owncloud :)
pkg lock это конечно круто, но вот только вспоминать все зависимости с которыми работает owncloud, на данный момент тяжковато, да и как вы верно отметили - это все не от хорошей жизни.
Основной вопрос в следующем, какого он лезет в другие пакеты и как отучить его от этой пагубной привычки?

guest
проходил мимо

Установка пакетов через pkg. Зависимости.

Непрочитанное сообщение guest » 2015-09-23 13:08:50

DuoMorph писал(а):
вдруг следующий кто найдёт и одумается
Я искал темы по поводу pkg :)
в дальнейшем пользоваться только им!
Понимаю, но он не оставил мне выбора)))
Всё от того что вы не понимаете что творите.
Я то понимаю, что творю, я не понимаю какого pkg лезет в пакеты, которые не относятся к устанавливаемому мной пакету и на ключик -f не реагирует.
Питон я конечно уже проинсталлил из портов, но картина была примерно следующей, до его установки:

Код: Выделить всё

serv:/usr/ports/emulators/virtualbox-ose # pkg install -f python35
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
pkg: glib has a missing dependency: perl5.14
pkg: drupal7 has a missing dependency: php53-session
pkg: suphp has a missing dependency: php53
pkg: pecl-APC has a missing dependency: php53
pkg: phpMyAdmin-suphp has a missing dependency: php53-session
pkg: p5-Locale-gettext has a missing dependency: perl5.14
pkg: help2man has a missing dependency: perl5.14
pkg: gamin has a missing dependency: perl5.14
pkg: gio-fam-backend has a missing dependency: perl5.14
pkg: mc has a missing dependency: perl5.14
pkg: autoconf has a missing dependency: perl5.14
pkg: automake has a missing dependency: perl5.14
pkg: pecl-pdflib has a missing dependency: php53
pkg: oscommerce has a missing dependency: php53-session
pkg: portupgrade has a missing dependency: ruby19-bdb
The following 50 package(s) will be affected (of 0 checked):

Installed packages to be REMOVED:
        ruby20-2.0.0.645,1
        owncloud-8.0.2
        php5-gd-5.4.39
        graphviz-2.38.0_6
        texlive-base-20140525_6
        ruby20-bdb-0.6.6_4
        tex-dvipsk-5.994_1
        texlive-texmf-20140525_4
        tex-formats-20140525_1
        doxygen-1.8.9.1,2
        rubygem-nokogiri-1.6.3.1_1
        rubygem-savon-0.9.5
        rubygem-wasabi-1.0.0
        rubygem-winrm-1.1.3
        rubygem-gssapi-1.0.2
        rubygem-ffi-1.9.3_1
        php5-mcrypt-5.4.39_1

New packages to be INSTALLED:
        perl5.18: 5.18.4_17
        apache22: 2.2.31
        mysql55-client: 5.5.44_1
        docbook-xml: 5.0_3
        docbook-sgml: 4.5_1
        compat6x-amd64: 6.4.604000.200810_3

Installed packages to be UPGRADED:
        libffi: 3.0.9 -> 3.2.1
        libiconv: 1.14_3 -> 1.14_8
        libX11: 1.4.4,1 -> 1.6.2_3,1
        libxcb: 1.7 -> 1.11_1
        libXdmcp: 1.1.0 -> 1.1.2
        libXau: 1.0.6 -> 1.0.8_3
        libXext: 1.3.0_1,1 -> 1.3.3_1,1
        libSM: 1.2.0,1 -> 1.2.2_3,1
        libICE: 1.0.7,1 -> 1.0.9_1,1
        expat: 2.1.0_1 -> 2.1.0_3
        freetype2: 2.4.11 -> 2.6_1
        libXt: 1.1.1,1 -> 1.1.4_3,1
        libpthread-stubs: 0.3_3 -> 0.3_6
        libxml2: 2.7.8_5 -> 2.9.2_3
        glib: 2.28.8_5 -> 2.44.1_1
        tcl86: 8.6.1 -> 8.6.4
        png: 1.5.18 -> 1.6.18
        pcre: 8.34_1 -> 8.37_4
        curl: 7.37.0 -> 7.44.0
        apr: 1.4.6.1.4.1_3 -> 1.5.2.1.5.4
        gdbm: 1.9.1 -> 1.11_2
        libxslt: 1.1.28 -> 1.1.28_7
        libgpg-error: 1.11 -> 1.20
        libgcrypt: 1.5.0_1 -> 1.6.3
        libwww: 5.4.0_4 -> 5.4.0_5
        lzo2: 2.06 -> 2.09

Installed packages to be REINSTALLED:
        python35-3.5.0

The operation will free 1 GiB.
49 MiB to be downloaded.

Proceed with this action? [y/N]:
Из чего видно, что pkg предлагает просто снести owncloud :)
pkg lock это конечно круто, но вот только вспоминать все зависимости с которыми работает owncloud, на данный момент тяжковато, да и как вы верно отметили - это все не от хорошей жизни.
Основной вопрос в следующем, какого он лезет в другие пакеты и как отучить его от этой пагубной привычки?
никак, действия пакетного менеджера логичны, обоснованы и справедливы.

1) пакетный менеджер работает с репозиторием
2) репозиторий обновляется по кварталам, сейчас, возможно чаще
3) готовые пакеты - собираются из ОБНОВЛЕННОГО дерева портов - регулярно.
соответственно, если порт A-версия10 зависит от B-версия3,C-версия7,D-версия5 ...
то пакет A-версия10 и будет подтягивать ТЕ ЗАИВИСМОСТИ, с котороыми он собран.
Что тут сложного или непонятного?!

Вы используете в работе ПАКЕТЫ, и если Вам потребовалось обновить A-версия5 до A-версия10,
а по run-depends A-версия5 у Вас еще в наличии: B-версия1, С-версия4, D-версия3 - то
что по Вашему должен сделать пакетный менеджер?

Правильно, обновить сперва run-depends:
B-версия1, С-версия4, D-версия3 -- до --> B-версия3,C-версия7,D-версия5
и потом установить A-версия10.

Ну вот что тут сложного и непонятного? Это копейки, потому как мы не рассмотрели
что какой-то другой, установленный у нас пакет X-версия3, в свою очередь зависит от
B и от D, последние зависят от K,L,M...

Можно объяснить иначе:

- соберите нужные пакеты из свежих портов в месяце A (сохраните их в своем репозитории
или в /usr/ports/packages/All -> man pkg + man ports
- обновите порты и снова соберите тот же набор пакетов в месяце A+1 (сохраните в новом
репозиторее...)

теперь попробуйте обновить свои пакеты из своего репозитория или из локального хранилища,
ну и посмотрите физику, если не понимаете логику.

- затем те же шаги через два или три месяца.

Есть три глобальных подхода:
1) используете только пакеты и обновление из пакетов;
2) на чистую систему ставим только те пакеты, которые не требуют НУЖНЫХ НАМ ДОП.ОПЦИЙ СБОРКИ,
после этого ставим из ПОРТОВ то что нам нужно со СВОИМИ ОПЦИЯМИ
Далее, обновляемся только из портов, про пакеты - забыли!
3) создаем свою машину для сборки, со своими опциями и возможно со своими мета-портами
- свой репозиторий для регулярных (раз в месяц или в два или в три) сборок

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Установка пакетов через pkg. Зависимости.

Непрочитанное сообщение Alex Keda » 2015-09-23 17:48:07

ну, кстати, опции многих портов допинали до приличного состояния, и порты полезные появились ,которые раньше были просто опциями (тот же mod_php)

пару веб-серверов уже перевёл чисто на пакеты, из родного репозитория.
(правда, тока те где устраивает php5.6 mysql5.6 и апач 2.4)

поэтому да, решите, если решитесь - то очень удобно в последствии
Убей их всех! Бог потом рассортирует...