Материал из Wiki.X-news.org
Перейти к: навигация, поиск

Использование portupgrade для обновления установленных из портов программ. Рубрика: Работа с ПО | Дата: 27 Апр 2009

Сегодня я хочу рассказать о том, как же во FreeBSD правильно обновить установленные из портов программы. Механизм обновления программ со старой версии на новую прост и логичен. Благодаря его продуманности работать с ПО, которые установлены из системы портов очень легко даже новичкам. В деле обновления нам поможет программа по имени portupgrade.

Я работаю в FreeBSD 7.1

Первым дело нам нужно обновить порты.

Потом устанавливаем portupgrade

cd /usr/ports/ports-mgmt/portupgrade && make install clean

??????????????????????????????????????????????????????????????????????

? Options for portupgrade 2.4.6_2,2  ?

? ?????????????????????????????????????????????????????????????????? ?

? ? [X] BDB4 Use Berkeley DB >=2 as backend  ? ?

? ? [ ] BDB1 Use Berkeley DB 1.85 as backend  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

? ?  ? ?

??????????????????????????????????????????????????????????????????????

? [ OK ] Cancel  ? ??????????????????????????????????????????????????????????????????????опции я оставил по умолчанию

Ставится на современной машине очень быстро.

после установки нам говорят в числе прочего и

Note also, portupgrade knows nothing how to handle ports with different suffixes (E.g. -nox11). So you should explicitly define variables (E.g. WITHOUT_X11=yes) for the ports in /etc/make.conf or pkgtools.conf (MAKE_ARGS section) files.

Так что если вы работаете только с консолью, то добавляем

WITHOUT_X11=yesв

/etc/make.confЕсли работаете в Х среде, это делать не нужно.

Теперь смотрим, какие порты нам можно обновить. Вот что у меня вышло.

pkg_version -v | grep "need"

apache-2.2.11_3 < needs updating (port has 2.2.11_4)

clamav-0.94.2 < needs updating (port has 0.95.1_1)

curl-7.19.2 < needs updating (port has 7.19.4)

freetype2-2.3.7 < needs updating (port has 2.3.9_1)

gamin-0.1.10 < needs updating (port has 0.1.10_1)

gio-fam-backend-2.18.4 < needs updating (port has 2.20.1)

glib-2.18.4 < needs updating (port has 2.20.1)

havp-0.88_1 < needs updating (port has 0.90)

icu-3.8.1_1 < needs updating (port has 3.8.1_2)

libSM-1.1.0,1 < needs updating (port has 1.1.0_1,1)

libX11-1.1.3_1,1 < needs updating (port has 1.2.1,1)

libslang2-2.1.4 < needs updating (port has 2.1.4_1)

m4-1.4.11,1 < needs updating (port has 1.4.12,1)

openldap-client-2.4.13 < needs updating (port has 2.4.16)

pcre-7.8 < needs updating (port has 7.9)

perl-5.8.9 < needs updating (port has 5.8.9_2)

php5-5.2.8 < needs updating (port has 5.2.9)

php5-session-5.2.8 < needs updating (port has 5.2.9)

php5-xml-5.2.8 < needs updating (port has 5.2.9)

php5-xmlrpc-5.2.8 < needs updating (port has 5.2.9)

png-1.2.34 < needs updating (port has 1.2.35)

python25-2.5.2_3 < needs updating (port has 2.5.4_1)

rtgui-0.2.2_2 < needs updating (port has 0.2.7)

rtorrent-devel-0.8.4 < needs updating (port has 0.8.4_1)

ruby-1.8.6.287,1 < needs updating (port has 1.8.7.72_1,1)

ruby18-bdb-0.6.4 < needs updating (port has 0.6.5)

squid-3.0.13 < needs updating (port has 3.0.14)

trafd-3.0.1_2 < needs updating (port has 3.0.2.1)

xmlrpc-c-devel-1.11.00_3 < needs updating (port has 1.18.00)


xproto-7.0.14 < needs updating (port has 7.0.15)И когда только успел столько понаставить .


Обновлять программы просто. Пишем в консоли


portupgrade имя_обновляемого_портаВажно помнить, что во время обновления сервис будет остановлен. Если это ваш домашний компьютер – как правило это допустимо, а если прокси сервер организации и вы задумаете обновить тот же squid – то лучше это делать в нерабочие часы, вдруг что-то пойдет не так, как вы хотели?

ВНИМАНИЕ! Сохраняйте конфигурационные файлы обновляемых программ. Причем это нужно делать перед каждым обновлением, а то рискуете в самый неподходящий момент их потерять.

Как более пароноидальный вариант – перед обновление сделайте пакеты из установленных программ. Откатиться будет еще проще, чем с одними голыми конфигами на руках.

Команда

1

portupgrade -arR 

Позволяет обновить все порты.

-a значит применить ко всем.

-R проверит зависимости для установки -r проверит приложения, которые зависят от порта.

Сочетание этих ключей предотвратит появление в вашей системе устаревших зависимостей и несовместимости программ.

Иногда во время использования portupgrade появляется предложение запустить pkgdb -F. Эта команда обновляет базу данных пакетов. Эта база данных находится в /var/db/pkg/pkgdb.db. Если вы увидели это сообщение, запустите о чем вас просит система.

1

pkgdb  -F 

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

Это делается так

1

pkgdb -fu 

Вот вроде бы и все про обновление программ, которые установлены из портов, при помощи portupgrade.