Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> portdowngrade

portdowngrade - откатываем нужный порт до любой ранее версии

Автор: stopka.


Статья не моя, но хотелось чтобы всё было на одном ресурсе, чтобы вдруг чего не мучать бедный гугл.
Автор статьи: DonRumata

И так, буду цитировать со своими поправками, так как его статья уже старовата, думаю автор злиться не будет.
Поехали:

Иногда случается, что обновленный порт отказывается работать или несовместим с уже установленным старым софтом. Вот в этом случае иногда проще вернуть все как было, но как это сделать?

В этом случае весьма полезной оказывается утилита portdowngrade.
Итак, первым делом устанавливаем эту самую утилиту:
# cd /usr/ports/ports-mgmt/portdowngrade
# make DEFAULT_CVS_SERVER="anoncvs@anoncvs1.FreeBSD.org:/home/ncvs" install clean
# rehash

Далее как работает данный софт:

portdowngrade ведет логи на установленном по умолчанию cvs сервере (или определенном опцией -s ) и просматривает все изменения, потом отображает предыдущие версии и обновляет дерево портов (только выбранный порт). То есть если надо откатить большое кол-во портов, придётся откатывать по отдельности.

Например, апгрейд до php 5.2.0 прошел неудачно и остались мы без пхп совсем, хочеться вернуться на версию 5.1.x. Первым делом сообщим утилите portdowngrade(1) вывести результаты о php5.
# portdowngrade lang/php5

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port lang/php5 ...

Found several matches:
1: lang/php5
2: lang/php5-extensions

Please choose one: 1

В данном случае выбрали версию 1. Теперь утилита обратится к CVS и предложит выбрать до какой ветки вернуть порт.
Downgrading port: lang/php5

Step 1: Checking out port from CVS repository
CVS root directory: anoncvs@anoncvs1.FreeBSD.org:/home/ncvs
The authenticity of host 'anoncvs1.freebsd.org (216.38.206.185)' can't be established.
DSA key fingerprint is 4d:59:19:7b:ea:9b:76:0b:ca:ee:da:26:e2:3a:83:b8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys: <space> : next page d : details
p : previous page
<enter> : leave presentation and downdgrade if wanted

Далее пойдет список версий, с комментариями о добавлении/фиксах в продукте
number date portversion comment
1 2006/11/12 19:43:12 5.2.0 Update suhosin patch to 0.9.6.2 release.
2 2006/11/06 17:43:10 5.2.0 Update to 5.2.0 release.
3 2006/10/27 19:11:17 5.1.6 Update suhosin patch to 0.9.6 release.
4 2006/10/16 09:30:58 5.1.6 - fix open_basedir vulnerability in php4 and php5 [1]
5 2006/10/06 17:24:21 5.1.6 Enable suhosin patch by default.
6 2006/10/05 20:59:17 5.1.6 Added safety checks against integer overflow.
7 2006/09/29 19:11:40 5.1.6 Update suhosin patch to 0.9.5 release.
8 2006/09/10 16:37:43 5.1.6 Add support for QDBM.
9 2006/09/09 12:35:33 5.1.6 Update suhosin patch to 0.9.3 release.
10 2006/09/04 07:59:15 5.1.6 - Add experimental suhosin protection system support
11 2006/08/31 14:37:05 5.1.6 Update to 5.1.6 release.
12 2006/08/18 16:41:29 5.1.5 Update to 5.1.5.
13 2006/08/18 16:40:18 5.1.4 Allow php5-ldap to be built with SASL support enabled.
14 2006/07/11 13:21:54 5.1.4 Add databases/php5-oci8:
15 2006/05/23 06:19:19 5.1.4 Try to fix build on 4.X.
16 2006/05/18 22:17:32 5.1.4 - Holy Batman! Chase rerolled distfile.
 Only chance is an addition of a file
17 2006/05/10 14:46:43 5.1.4 Chase gmp library and bump PORTREVISION.
Total lines: 152. Command:

Далее нажимаем Enter, или Пробел для прокрутки списка(не приходилось) и выбираем номер версии до которой нужно откатиться, на пример до версии 5.1.6 - номер 3 в списке.
Enter version number to change port to (0: exit): 3

Далее подтверждаем выбор нажатием Enter и ждём :)
Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: lang/php5
at : 2006/10/27 19:11:17
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes

Подтверждаем физический откат порта, пишем "yes", что нам и нужно.
Если мы хотим посмотреть изменения, без физического отката, пишем "no"

Вот собственно и произошел откат порта.
Добиваем наше дело до конца:
# portupgrade -f php5*

Ну и проверяем какая картина получилась:
# pkg_info | grep php5

Вот собственно и всё, очень полезная утилита, выручила при откате erlang(ejabberd не совместим с erlang-r13*, только с ветками r12 и ниже)



размещено: 2009-07-01,
последнее обновление: 2009-07-08,
автор: stopka


abigor, 2009-07-03 в 3:22:05

Может и оффтом. Оно конечно хорошо, что есть такой инструмент, но, перед тем как обновлять порты советую все же курнуть ман по pkg_create, мне кажет эта вещь избавит от многих проблем :)

luckyredhot, 2009-07-30 в 11:19:44

для совмести ejabberd с erlang-r13 есть патч
к тому же, уже вышла обновленная версия ejabberd, где проблем с совместимостью не должно быть

Sasha, 2009-08-07 в 15:33:11

Spasibo tha stattu :) Interesno :)!

Sasha, 2009-08-07 в 15:33:12

Spasibo tha stattu :) Interesno :)!

Qtronix, 2009-09-08 в 10:39:22

abigor
Маны конечно курить надо но я сейчас талкнулся с проблеммой
при установке пакета вывалилась ошибка
MySQL versions mismatch: mysql54-client is installed and wanted version is mysql50-client.
так что статья полезная имхо

Qtronix, 2009-09-08 в 10:42:16

Вот кстати что хотел спросить
с зависимостями как дело обстоит ??
при даунгрейде все зависимые пакеты тоже будут даунгрейдится ?? или нет ??

100pka, 2009-09-08 в 12:23:20

Нет, даунгрейдиться только тот порт который вы указали.
Если надо пересобрать все порты зависимые от даунгрейденного порта, то идём:
# cd /usr/ports/ports-mgmt/portmaster
# make install clean
# rehash
# portmaster -dRrf даунгрейденый_порт

100pka, 2009-09-08 в 12:24:26

И пересоберутся все порты зависимые от даунгреденного порта.

Qtronix, 2009-09-08 в 16:32:17

ок спасибо
выручили

tf7, 2009-09-30 в 11:46:45

cvs сервер из статьи не захотел у меня работать. сработало только на этом
portdowngrade -s :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs lang/erlang

izitu, 2010-04-16 в 12:33:59

portupgrade -f \"php5*\"
в кавычки

Aleks, 2010-05-03 в 20:59:06

Из статьи не понятно - должен ли этот portdowngrade стоять ДО обновления какго-либо порта, чтобы потом с его помощью можно было бы вернуться к предыдущей версии...
Я вот нарвался - сдуру обновил PHP до 5.2.3 - отвалилось многое сразу... Откатиться бы обратно до 5.2.12

Alex Keda, 2010-05-03 в 21:34:23

Порты обновите
я для кого рисовал lang/php52?

Aleks, 2010-05-04 в 10:27:19

# portmaster -dRrf php5-extensions

выдает следующее:
===>>> The argument to -r must match only one port
===>>> Aborting update

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

Кто подскажет как быть?


bronk_kvis, 2010-09-02 в 9:44:48

С делай так :
# cd /usr/ports/ports-mgmt/portupgrade
# make install

#portupgrade -rf  php52

future3000, 2011-06-03 в 14:05:51

а если используется не cvs а portsnap, portdowngrade будет работать?

slater, 2012-07-01 в 9:56:22

make DEFAULT_CVS_SERVER="anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs" install clean

иначе требует пароль, на тему пароля можно почитать здесь:
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/anoncvs.html



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0407 секунд
Из них PHP: 28%; SQL: 72%; Число SQL-запросов: 77 шт.
Исходный размер: 37084; Сжатая: 8535