Portupgrade

Ports/upgrade

Штатно в системе отсутствует. Нужно устанавливать дополнительно.

Написано на Ruby) и служит для обновления установленных программ, состоит из множества утилит. У Лукаса в книге этот инструмент. В прочих источниках тоже его рекомендуют. Другое (старое?) название - pkgtools

sudo make install clean -C /usr/ports/ports-mgmt/portupgrade
 * Установка утилиты

При установке запрашивает, в какой базе хранить данные, предлагая по умолчанию BDB4 Use Berkeley DB >=2 as backend

Обновление всех программ
Обновление всех портов

portsnap fetch update portupgrade -a -v --results-file FILEDATE --batch

Чтобы не спрашивал опции и не останавливался (он же может ставить новые порты, даже если для всех уже стоявших есть конфиги) --batch

Остановил по нескольким ктрл-ц чтобы перезапустить с новой строкой

Результаты работы выводятся на экран и попадают в файл (но сводная информация почему-то не попадает и легенда - только список) [Updating the pkgdb  in /var/db/pkg ... - 682 packages found (-0 +1). done] ---> Upgrade of print/gimp-gutenprint ended at: Mon, 06 Feb 2012 12:52:06 +0300 (consumed 00:00:38) ---> ** Upgrade tasks 246: 241 done, 1 ignored, 4 skipped and 1 failed ---> Listing the results (+:done / -:ignored / *:skipped / !:failed) - net/isc-dhcp31-server (port directory error) + misc/pciids (pciids-20110714) + print/gimp-gutenprint (gimp-gutenprint-5.2.4_2) ---> Packages processed: 241 done, 1 ignored, 4 skipped and 1 failed ---> Saving the results to '/usr/home/leksey/FILEDATE' ---> Session ended at: Mon, 06 Feb 2012 12:52:15 +0300 (consumed 10:17:21)

Надо проанализировать его на предмет ошибок и вручную обновить эти порты. ignored - net/isc-dhcp31-server (port directory error) - Изменилось название директории: вместо net/isc-dhcp31-server оно стало net/isc-dhcp42-server/. Снес и поставил заново. failed ! print/cups-base (cups-base-1.4.6_5)  (linker error) - собрал вручную, изменив опцию, заменив GNUTLS на OpenSSL skipped * print/cups (cups-1.4.6) skipped * print/hplip (hplip-3.11.5) skipped * print/gutenprint-cups (gutenprint-cups-5.2.4_2) skipped * print/gutenprint (gutenprint-5.2.4_2)

Потом запустил portupgrade он предложил достановить stale зависимости.

cups base gimp-2.6.11,2 gutenprint-5.2.4_2 gutenprint-cups-5.2.4_2 hplip-3.11.5

Если делать нечего, то выводится ** None has been installed or upgraded.

Обновление одной программы
portsnap fetch update

Проверка что в портах более новое portversion |grep firefox firefox                    < firefox -v Mozilla Firefox 6.0 grep DISTVERSION /usr/ports/www/firefox/Makefile DISTVERSION=   6.0.2

Есть шанс что остановится и покажет окно с OPTIONS (?) portupgrade -R firefox

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

Но не поставились перечисленные программы из-за того что текущая конфигурация cups-client оказалась нереальной (нужно было отказаться от опции GNUTLS при установке её) ** Listing the failed packages (-:ignored / *:skipped / !:failed) - print/cups-client (marked as IGNORE) * x11-toolkits/gtk20 (gtk-2.22.1_1) * devel/libnotify (libnotify-0.5.2) * www/firefox (firefox-5.0,1)

Надо разбираться. Именно такая версия cups-client уже и стоит в системе. Т.е. показывают информацию с указанием текущего номера версии. pkg_info |grep cups-client-1.4.6 cups-client-1.4.6  Common UNIX Printing System: Library cups

Новее ли программа в портах стоит можно увидеть командой portversion | grep cups-client cups-client                <

Попробовать обновить только его и отобразиться причина по которой он не может быть установлен portupgrade cups-client is marked as broken: gnutls does not support threads yet; disable the GNUTLS - print/cups-client (marked as IGNORE)
 * Port marked as IGNORE: print/cups-client:
 * Listing the failed packages (-:ignored / *:skipped / !:failed)

make showconfig -C /usr/ports/print/cups-client/ ===> The following configuration options are available for cups-client-1.4.8: GNUTLS=on "Build with GNUTLS instead of OpenSSL" make rmconfig -C /usr/ports/print/cups-client/ Установка cups-client и запуск обновления firefox. А можно и сразу повторно запустить portupgrade -R firefox

Обновление всех установленных их портов программ
Может все пересобрать оставив на конец проблемное?

---> ** Upgrade tasks 2: 2 done, 0 ignored, 0 skipped and 0 failed ---> Listing the results (+:done / -:ignored / *:skipped / !:failed) + databases/sqlite3 (sqlite3-3.7.7) + sysutils/hal (hal-0.5.14_15) ---> Packages processed: 2 done, 0 ignored, 0 skipped and 0 failed ---> Saving the results to '/usr/home/lke/FILE03072011' ---> Session ended at: Sun, 03 Jul 2011 02:23:22 +0400 (consumed 00:04:21)

Покажет конфигурирование для всех, даже тех которые уже имеют конфиг и вот покажет его состояние и позволит изменить набор portupgrade -v -a --force-config --results-file FILE

Проверяет все зависимости и не выводит ничего (conditional) portupgrade -v -a --config --results-file FILE

В файл попадает лишь краткий результат. portupgrade --force installed help2man

portupgrade -a Stale dependency: ImageMagick-6.7.0.2 --> perl-5.12.3 -- manually run 'pkgdb -F' to fix, or specify -O to force.

pkgdb -F

Удалил вручную p5-Locale-gettext-1.05_3 с -F и результат - portupgrade не хочет запускаться без исправления pkgdb -F ---> Checking the package registry database Stale dependency: help2man-1.40.2 -> p5-Locale-gettext-1.05_3 (devel/p5-Locale-gettext): p5-XML-Parser-2.40 (score:17%) ? ([y]es/[n]o/[a]ll) [no] all Fixed. (-> p5-XML-Parser-2.40)

portupgrade v4l_compat  [Rebuilding the pkgdb  in /var/db/pkg ... - 427 packages found (-0 +427) ....................................................................................................100....................................................................................................200....................................................................................................300....................................................................................................400........................... done] [Updating the portsdb  in /usr/ports ... - 22642 port entries found .........1000.........2000.........3000.........4000.........5000.........6000.........7000.........8000.........9000.........10000.........11000.........12000.........13000.........14000.........15000.........16000.........17000.........18000.........19000.........20000.........21000.........22000...... ..... done] ---> Upgrading 'v4l_compat-1.0.20101027_1' to 'v4l_compat-1.0.20110603' (multimedia/v4l_compat) ---> Building '/usr/ports/multimedia/v4l_compat' ===> Cleaning for v4l_compat-1.0.20110603 ===> Vulnerability check disabled, database not found ===> License check disabled, port has not defined LICENSE => v4l_compat-1.0.20110603.tar.gz doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/kwm/v4l_compat-1.0.20110603.tar.gz v4l_compat-1.0.20110603.tar.gz               100% of   55 kB   56 kBps ===> Extracting for v4l_compat-1.0.20110603 => SHA256 Checksum OK for v4l_compat-1.0.20110603.tar.gz. ===> Patching for v4l_compat-1.0.20110603 ===> Configuring for v4l_compat-1.0.20110603 ---> Backing up the old version ---> Uninstalling the old version ---> Deinstalling 'v4l_compat-1.0.20101027_1' [Updating the pkgdb  in /var/db/pkg ... - 426 packages found (-1 +0) (...) done] ---> Installing the new version via the port ===> Installing for v4l_compat-1.0.20110603 ===>  Generating temporary packing list ===> Checking if multimedia/v4l_compat already installed /bin/mkdir -p /usr/local/include/linux/dvb skipped build messages ===>  Registering installation for v4l_compat-1.0.20110603 ===> Cleaning for v4l_compat-1.0.20110603 ---> Cleaning out obsolete shared libraries [Updating the pkgdb  in /var/db/pkg ... - 427 packages found (-0 +1). done] 

Обновление
Не получилось добиться чтобы установила новый php (5.3 в данном случае) и модули к нему. portupgrade -Rv php52-5.2.17_1

portupgrade -v php5\*

А также ключ -f Не помогли.

Установка нового ПО
portupgrade -v --new openvpn

Установив последнюю версию, сто раз спросив опции, зачем-то решил поставить старую ===> openvpn-2.0.9_1 conflicts with installed package(s): openvpn-2.2.0

но при этом предложил Ctrl+C чтобы немного подождать, но потом все же сам начал ставить

Если не ставится
Но установка из ports может окончиться безуспешно

Нигде, в том числе на ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/ не оказалось pkgtools-2.3.1.tar.bz2

Там присутствовали только  pkgtools-2.4.4.tar.bz2 	112 KB  07/01/08  	00:00:00 pkgtools-2.4.6.tar.bz2 	113 KB 	07/11/08 	00:00:00 pkgtools-2.4.7.tar.bz2 	113 KB 	11/08/10 	04:45:00 pkgtools-20091029.tar.bz2 	113 KB 	10/29/09 	00:00:00 pkgtools-20091221_1.tar.bz2 	113 KB 	12/22/09 	00:00:00 pkgtools-20101108.tar.bz2 	113 KB 	11/08/10 	22:51:00 

Есть ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/ но там все линки на последние версии, похоже.