RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
portdowngrade - откатываем нужный порт до любой ранее версии [2009]
Статья не моя, но хотелось чтобы всё было на одном ресурсе, чтобы вдруг чего не мучать бедный гугл.
Автор статьи: 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 12006/11/1219:43:125.2.0 Update suhosin patch to 0.9.6.2 release. 22006/11/0617:43:105.2.0 Update to 5.2.0 release. 32006/10/2719:11:175.1.6 Update suhosin patch to 0.9.6 release. 42006/10/1609:30:585.1.6 - fix open_basedir vulnerability in php4 and php5 [1] 52006/10/0617:24:215.1.6 Enable suhosin patch by default. 62006/10/0520:59:175.1.6 Added safety checks against integer overflow. 72006/09/2919:11:405.1.6 Update suhosin patch to 0.9.5 release. 82006/09/1016:37:435.1.6 Add support for QDBM. 92006/09/0912:35:335.1.6 Update suhosin patch to 0.9.3 release. 102006/09/0407:59:155.1.6 - Add experimental suhosin protection system support 112006/08/3114:37:055.1.6 Update to 5.1.6 release. 122006/08/1816:41:295.1.5 Update to 5.1.5. 132006/08/1816:40:185.1.4 Allow php5-ldap to be built with SASL support enabled. 142006/07/1113:21:545.1.4 Add databases/php5-oci8: 152006/05/2306:19:195.1.4 Try to fix build on 4.X. 162006/05/1822:17:325.1.4 - Holy Batman! Chase rerolled distfile. Only chance is an addition of a file 172006/05/1014:46:435.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/2719: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 и ниже)