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

04.01.2010 20:41 Администратор
Печать

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



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

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

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

В этом случае весьма полезной оказывается утилита portdowngrade.
Итак, первым делом устанавливаем эту самую утилиту:# cd /usr/ports/ports-mgmt/portdowngrade
# make DEFAULT_CVS_SERVER=" Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :/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: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript :/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 и ниже)

Обновлено 28.05.2010 13:42