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) создаем свою машину для сборки, со своими опциями и возможно со своими мета-портами
- свой репозиторий для регулярных (раз в месяц или в два или в три) сборок