Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Portdowngrade

Требования
1. Локальный доступ с правами root или su.
2. Клиент SSH, например putty или SecureCRT
3. Наличие дерева портов. Если дерево портов не установлено, вы может установить его с помощью sysnstall
(либо используя portsnap).
 
Установка
Установка позволяет непосредственно сконфигурировать сервер CVS используемый по умолчанию
 # cd /usr/ports/sysutils/portdowngrade
# make DEFAULT_CVS_SERVER=" Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. :/home/ncvs" install clean
 
Использование
Принцип работы portdowngrade состоит в ведении журнала логов сервера CVS используемого по умолчанию (либо одного из тех, которые определяются с флагом -s) и фиксации процессов  обновления. Затем отображается результат о предыдущих версиях на ваш выбор и обновляет дерево портов этой информацией (только для выбранного порта). Например, вы обновили PHP до версии 5.2.0. и  обнаружили, что некоторые из ваших PHP приложений перестали работать или работают некорректно. Вам необходимо вернуться к версии 5.1.x. Первым шагом необходимо заставить portdowngrade (1) выдать результат  по php5.
Примечание:
Если указать php5 только как имя порта, вам будет предоставлен список всех портов в имени которых присутствует 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: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен 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: : next page d : details
p : previous page
: 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. в этом списке и нажмём Enter. Нам предложат ввести номер соответствующий версии,которая требуется в дереве портов.
Enter version number to change port to (0: exit): 3
Теперь вам необходимо подтвердить свой выбор:
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
После подтверждения, lang/php5 установлен в версию 5.1.6. и вы готовы к проведению даунгрэйда порта.
Предварительно рекомендуется выполнить следующую команду, чтобы увидеть изменения в дереве портов:
# portsdb-Uu
После её завершения, фактически наступает время для выполнения даунгрэйда. Поскольку мы выполняем даунгрэйд php5, требуется убедиться, что так же производится даунгрэйд и всех его  расширений. Для этого можно использовать шаблон *.
# portupgrade-е php5 *
После завершения процесса portupgrade вы получите требуемую версию порта. В этом можно убедиться используя следующую команду:
# pkg_info | GREP php5