Ошибка обновления perl5

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

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 9:46:04

Попробовал так:
portupgrade -rR apache24
В ходе выполнения apr просил у меня какой то патч, я пропустил этот момент...
В итоге обновление apache опять провалилась
Вывод:

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

Относительно патча
===>  Patching for apr-1.7.0.1.6.1_1
===>  Applying FreeBSD patches for apr-1.7.0.1.6.1_1 from /usr/ports/devel/apr1/files
File to patch:

No file found--skip this patch? [y]

Итог обновления apache
--->  Skipping 'www/apache24' (apache24-2.4.41) because a requisite package 'libnghttp2-1.39.2' (www/libnghttp2) failed (specify -k to force)
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! textproc/libxml2 (libxml2-2.9.9)      (uninstall error)
        ! www/libnghttp2 (libnghttp2-1.39.2)    (uninstall error)
        ! devel/apr1 (apr-1.7.0.1.6.1)  (patch error)
        ! devel/gettext-tools (gettext-tools-0.20.1_1)  (uninstall error)
        * www/apache24 (apache24-2.4.41)
Что сможете подсказать? Как думаете почему ошибка установки библиотек, наверное опять perl?

Хостинговая компания 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/

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

Ошибка обновления perl5

Непрочитанное сообщение guest » 2020-08-28 10:03:08

Sorry, но у Вас каша в голове и потому в системе.
В этом случае, лучше сохранить конфиги софта, сделать список
и установить заново. Опс, при каше, список лучше не делать.

И да, почему не из пакетов? Ибо в портах, отмечать все в их конфигурации,
не очень правильно.

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 10:09:04

С кашей в голове согласен, не получается нифига обновить perl вот и нагородил в системе непонять что...
Попробую поудалять пакеты, из ошибок и поставить заново пакетами...

Когда я только начинал изучение FreeBSD мне сказали, что если софт изначально собран из портов, то и обновлять нужно через portupgrade или portmaster, но не пакетами. Наверное это ошибочное мнение...

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 10:34:13

Если использовать pkg то допустим libnghttp2 получилось переустановить
После удалил squid, при повторной установке через пакеты, пытается perl28 поставить
Почему система не видит perl32

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

New packages to be INSTALLED:
        perl5.28: 5.28.3
        squid: 4.12

Походу я вообще систему запорол. Надо наверное взять паузу и внимательно провести работу над ошибками...

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Ошибка обновления perl5

Непрочитанное сообщение Demis » 2020-08-28 11:31:27

Reken писал(а):
2020-08-28 10:34:13
вообще систему запорол
Еще нет, просто немного удлинился путь исправления...
Reken писал(а):
2020-08-28 10:34:13
наверное взять паузу и внимательно провести работу над ошибками
Угу.
Про
Reken писал(а):
2020-08-28 9:26:29
Я сам немогу понять откуда perl28 вылез...Специально я его не ставил, после portupgrade появился.
скажу примерно так: все просто, у Вас был "системный" старый перл, плюс не до конца или с ошибками поставлен из портов новый. При этом перевод всех портов "на использование" нового перла не сделан до конца или сделан не верно. Поэтому софт помнит "привязку к старой версии". И при работе "вяжется" опять на старую... Очень рекомендую перед заменой перла гарантированно погасить все демоны из rc.conf и поставить им _enable="NO", тот-же сквид при определенных настройках может "его" дергать и библиотеки будут "заняты", что помешает обновлению. Посмотрел свои записи, т.к. когда-то сам проходил через это и вроде все получилось нормально, понятно, что записи древние (2015 год), но может натолкнет на путь как именно это было сделано (в тексте есть обращения, это самому к себе).

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

Так вот что на самом деле нужно сделать чтобы обновить Perl5.12 или Perl5.14 до следующей версии, в моем случае - 5.16.
Сначала по доке:

pkgdb -Ff
--->  Checking the package registry database

А потом <финт ушами>:
portupgrade -o lang/perl5.16 -f perl5.14\*
** Detected a package name change: perl5.14 (lang/perl5.14) -> 'perl5' (lang/perl5.16)
--->  Upgrading 'perl5.14-5.14.4_5' to 'perl5-5.16.3_7' (lang/perl5.16)
--->  Building '/usr/ports/lang/perl5.16' with make flags: -DDISABLE_CONFLICTS
===>  Cleaning for perl5-5.16.3_7
............длинный вывод всяких букавок...............
http://www.perl.org/
===>  Cleaning for perl5-5.16.3_7
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 105 packages found (-0 +1) . done]
You have new mail in /var/mail/root

И уже после этого необходимо обновить весь софт связанный зависимостями с Perl:

root@srv3:~# portupgrade -fr perl5
Ну и вот результат успешного обновления:

root@srv3:~# perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for amd64-freebsd-thread-multi

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
root@srv3:~#
по релинку

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

Варианты:
1. Ставь новый перл заново.
./Configure -Dprefix=/usr

2. Залинкуй новый на место старого
> cd /usr/bin
> mv perl perl.old
> ln -s /usr/local/bin/perl perl

Вроде как не рекомендуется т.к. могут быть проблемы с библиотеками.
Встают по пути /usr/bin/perl а не туда, куда надо...

Удаляем линк:
rm /usr/bin/perl


http://www.freebsd.org.ru/porters-handbook/using-perl.html
По смене ориджина:

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

  # pkg delete -f ruby ruby-iconv portupgrade
  # make -C /usr/ports/ports-mgmt/portupgrade install clean

Change origin:
  # pkg set -o lang/ruby19:lang/ruby20
  # portupgrade -x ruby-2.0.\* -fr lang/ruby20

pkg set -o www/apache22:www/apache24
pkg set -o lang/php5:lang/php55
pkg set -o lang/perl5.16:lang/perl5.18
Это не значит, что нужно бросаться и делать как именно написано в цитатах, но прочитать советую.
Конечно можно бросить все и переустановить с нуля, но можно и разобраться и составить себе записи. Тогда будет понятен путь как разбираться с этим в будущем. Хотя, как показывает опыт, будущее всегда разное... Тут решать Вам.

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 11:52:48

В любом случае всем спасибо за помощь и советы.
Сейчас восстанавливаю систему из dumpa
А в понедельник на "свежую" голову, попробую в очередной раз обновить perl
Может что дельное вспомню, или пойму. Сейчас уже только одни косяки делаю в системе, нужно взять паузу...

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 12:07:17

И всё таки вопрос мучает. Я за всё время работы с FreeBSD, использовал только порты, никогда пакеты...
Ведь нельзя же обновлять программы через pkg, если они собраны из портов?
И не получится ли каша в системе, если что то установлено через pkg а что то через make install clean? Ведь там зависимости же всякие и т.д.

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Ошибка обновления perl5

Непрочитанное сообщение Demis » 2020-08-28 13:03:32

Reken писал(а):
2020-08-28 9:46:04
! devel/apr1 (apr-1.7.0.1.6.1) (patch error)
Тут могу сказать так: apr1 (или apr2) очень часто сопротивляется при пакетном обновлении апача.
Обычно делаю ручками, когда возникает эта ошибка:

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

cd /usr/ports/devel/apr1
make deinstall
make clean
make install
(НЕ reinstall)
Reken писал(а):
2020-08-28 12:07:17
И не получится ли каша в системе, если что то установлено через pkg а что то через make install clean?
Мягко говоря, получится. Тут есть такой момент не очень красящий FreeBSD, каждый из способов обновления портов опирается на свою базу. И это очень сбивает с толку. Может приводить к неоднозначностям, когда "pkg version -v" показывает "ой порт требуется срочно обновить до новой версии 5.8.8.8", а реально в системе уже стоит (через маке инсталл) более новая версия 6.9.9.9 (номера привел условные). Еще, при этом, можно напороться на временной лаг, пакеты для pkg кажется раз в четыре месяца делаются, т.е. возникает разница между опубликованным портом и выпущенным пакаджем для пкг. В какой-то момент просто принимаешь решение "а вот теперь делаю только так-то". Потом, по прошествии времени про решение "как всегда забываешь" и начинаются траблы, т.к. реально видишь "и так не получается, и так тоже вроде не получается". А нужно просто придерживаться одного пути, если это возможно (сталкивался с тем, что фича в некоем порте уже сделана, а в пкг еще не попала и это жутко мешало). Но если делать "по старинке", как это изначально построено во FreeBSD и работает до сих пор, то получается вполне достойно.

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Ошибка обновления perl5

Непрочитанное сообщение snorlov » 2020-08-28 13:49:19

лучше снова пересобери перл через portupgrade с ключами -f(даже если не требует обновления) -rR(пересобрать все от чего зависит перл и все, что зависит от перла)

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Ошибка обновления perl5

Непрочитанное сообщение snorlov » 2020-08-28 14:15:13

Reken писал(а):
2020-08-28 12:07:17
И всё таки вопрос мучает. Я за всё время работы с FreeBSD, использовал только порты, никогда пакеты...
Ведь нельзя же обновлять программы через pkg, если они собраны из портов?
И не получится ли каша в системе, если что то установлено через pkg а что то через make install clean? Ведь там зависимости же всякие и т.д.
Тут все просто, пакеты отстают по времени от портов это первое, т.е. срез пакетов и срез портов не синхронизированы по времени, пакеты отстают, второе пакеты собираются из портов с опциями по умолчанию, т.е. если базовый перл в них версии 5.26, то и модули p5-*, да и остальной софт будут собраны под использование с perl5.26, с чем вы собственно говоря и столкнулись
Что использовать? а что хотите,
1. если вашим задачам достаточны текущие стабильные пакеты с опциями по умолчанию, то юзайте их, проще обновляться...
2. если хотите иметь последнее, нужны другие опции, хотите как то оптимизировать под ваш проц, то вперед к портам

P.S. если хотите ставить софт из портов, то добавив в make.conf строчку BATCH="YES", у вас будет задействованы опции по умолчанию и ничего не будет спрашиваться...

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-28 16:00:48

Наверное все же буду и дальше использовать порты. Так как изначально с ними работаю. К тому же за время работы с FreeBSD не раз было, что стандартные опции пакета не подходили (допустим когда ставил samba,exim и т.д.)
snorlov писал(а):
2020-08-28 14:15:13
добавив в make.conf строчку BATCH="YES", у вас будет задействованы опции по умолчанию и ничего не будет спрашиваться
В этом варианте есть и минусы, можно лишний хлам в систему поставить. Много лет назад, я так неосознанно ИКСЫ поставил на FreeBSD, мало того что ставились пол дня, так и мороки потом с ними было (т.к. тогда только начинал в FreeBSD)

Когда в понедельник начну заново обновлять perl (после восстановления системы из dumpa), мне кажется опять косяки полезут. Обновлять буду через portupgrade
Я вот думаю, может у меня изначально система кривая, и поэтому стабильно обновиться не может? Ведь вроде бы делаю всё правильно...Вот повторю шаги по которым делаю:

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

1) Восстанавливаюсь из dupma
2) # make -C /usr/ports/lang/perl5.32 showconfig | grep -i gdbm
GDBM=off: GDBM_File extension
3) переустонавливаю из портов gdbm (make reinstall clean) или make deinstall и make install
4) В make.conf пишу: DEFAULT_VERSION+= perl5=5.32
5) portupgrade -o lang/perl5.32 -f lang/perl5.26
6) portupgrade-f `pkg shlib -qR libperl.so.5.26`
7) По идее должна быть пересборка софта, зависящего от perl...

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Ошибка обновления perl5

Непрочитанное сообщение snorlov » 2020-08-28 16:14:29

Я бы вместо 6 сделал бы

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

portupgrade -frR perl5 

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Ошибка обновления perl5

Непрочитанное сообщение Demis » 2020-08-28 16:45:13

Мысль интересная...
snorlov писал(а):
2020-08-28 16:14:29
Я бы вместо 6 сделал бы
IMHO лучше без "R"
Demis писал(а):
2020-08-28 11:31:27
root@srv3:~# portupgrade -fr perl5
Ну и вот результат успешного обновления

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

Ошибка обновления perl5

Непрочитанное сообщение guest » 2020-08-28 17:51:33

Reken » 2020-08-28 16:00:48
Наверное все же буду и дальше использовать порты. Так как изначально с ними работаю. К тому же за время работы с FreeBSD не раз было, что стандартные опции пакета не подходили (допустим когда ставил samba,exim и т.д.)
Признаться, надоело расписывать прописные истины, столько раз уже излагал:

- на чистой системе те порты, где Вас устраивают default'ные опции, можно установить
из пакетов, а вот далее собирать необходимые порты с нужными параметрами.
У Вас же, масса ненужных параметров включены там где они нафик не нужны! Это увеличивает проблемы.

Пример:
- установили все возможное из пакетов
- перешли к установке из портов, установили
-------- черта - граница -----------
- с этого момента АПГРЕЙД только через порты на выбор:
a) вручную
b) portupgrade
c) portmaster

Другой вариант: создать и использовать собственный репозиторий со своими собрками.

Чесно говоря, сейчас уже практически хватает возможности пакетов, есть конечно уродские пустышки,
например: clamav и clamav-milter раздельно, списался с maintainer'ом - обсудили и он
согласился оставить ОДИН порт "clamav который сразу собирается с milter' - чтобы
не было противоречий в зависимостях, кто не использует, тому clamav-milter не помешает.
И такие есть и не мало...

Если сидеть ровно и ничего не делать, само не изменится, для этого и созданы
списки рассылки.

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-31 8:09:50

Я вот сейчас обратил внимание.
1) Восстановил систему из dump
2) Выполнил portsnap fetch update
3) portversion -v | grep need
И вижу следующее относительно perl:

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

perl5-5.26.3 < needs updating (port has 5.28.3) (=> 'lang/perl5.28')
Почему система предлагает мне обновиться до 5.28, ведь в портах 32-ая версия теперь по умолчанию? Может из-за этого проблема при обновлении perl...

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-08-31 8:30:17

Прочитал в этой теме (создавал эту тему, тоже я)
viewtopic.php?f=20&t=44463&p=382093#p382093
В итоге в 2016 году я выполнил обновление perl следующим образом:

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

pkg set -o lang/perl5.20:lang/perl5.24
portupgrade -rf perl5.20
Скорее всего до perl26 я обновился так же...

Может из-за этого portversion предлагает обновиться лишь до 5.28. Вы же говорите что пакеты обновляют до последней версии позже чем порты...

Наверное в моем случае perl нужно обновить так:?

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

В make.conf пишу: DEFAULT_VERSION+= perl5=5.28
pkg set -o lang/perl5.26:lang/perl5.28
portupgrade -rf perl5.26

Аватара пользователя
novik
мл. сержант
Сообщения: 146
Зарегистрирован: 2018-07-26 23:52:57

Ошибка обновления perl5

Непрочитанное сообщение novik » 2020-09-01 2:09:17

Reken писал(а):
2020-08-31 8:09:50
2) Выполнил portsnap fetch update
3) portversion -v | grep need
Почему система предлагает мне обновиться до 5.28, ведь в портах…
portsdb -Uu?
«О сколько нам открытий чудных готовит просвещения дух...»™

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Ошибка обновления perl5

Непрочитанное сообщение Reken » 2020-09-01 14:39:16

Ещё раз спасибо всем кто подсказывал по обновлению.
Кажется получилось всё обновить...

Как я писал выше, вначале сделал так:

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

В make.conf пишу: DEFAULT_VERSION+= perl5=5.28
pkg set -o lang/perl5.26:lang/perl5.28
portupgrade -rf perl5.26
После чего perl опять наругался, что не получается обновить зависимый софт...
Попытки вручную обновить софт, стопарились всё на тех же ошибках, которые обсуждались выше.
После чего я сделал следующее:

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

Удалил папку /usr/ports/* после выполнил portsnap fetch extract
Почистил(убрал) поломанные симлинки из /usr/local/lib/compat/pkg/
После этих действий, весь софт обновился и работает

P.S. Только вот пока что не могу понять, почему система не предлагает обновить perl до 32 версии...

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Ошибка обновления perl5

Непрочитанное сообщение snorlov » 2020-09-01 16:53:47

Посмотрите сколько перлов в портах, может сделаете вывод...

Аватара пользователя
novik
мл. сержант
Сообщения: 146
Зарегистрирован: 2018-07-26 23:52:57

Ошибка обновления perl5

Непрочитанное сообщение novik » 2020-09-01 18:13:03

Reken писал(а):
2020-09-01 14:39:16
почему система не предлагает обновить perl до 32 версии...
У вас же DEFAULT_VERSION+= perl5=5.28 в make.conf указан. Да и вообще lang/perl5.28, lang/perl5.30 и lang/perl5.32 это разные порты, а не версия одно и того же. Мне она к примеру net/samba410 тоже не предлагает обновить до net/samba411, но в этом же нет ничего странного.
«О сколько нам открытий чудных готовит просвещения дух...»™

Аватара пользователя
Neus
капитан
Сообщения: 1980
Зарегистрирован: 2008-09-08 21:59:56

Ошибка обновления perl5

Непрочитанное сообщение Neus » 2020-09-01 19:31:20

В портах много перлов, хороших и разных…
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!