Переход к предыдущей публикации CVSup - обновление портов Завелось! Переход к следущей публикации

Обновление ПО во FreeBSD

Среда, 28 ноября, 2007 06:10:42 EET

Исправления от 23 марта, 2009 09:43:28

BSD Daemon Как известно, программное обеспечение во FreeBSD можно установить двумя путями. Первый: скачав необходимый пакет с одного из FTP серверов (зеркал) FreeBSD и установить с помощью команды pkg_add. Другой способ: самостоятельно скомпилировав нужную программу, скачав ее исходные коды с того же FTP сервера (зеркала). Каждый способ имеет свои достоинства и недостатки. В первом случае мы выигрываем во времени и экономим процессорное время своего компьютера, во втором случае, компилируя программное обеспечение (пакет) из портов мы получаем самую последнюю версию программы.

Однако, любое уже установленое программное обеспечение когда-нибудь понадобится обновлять (зачем обновлять ПО, думаю, пояснять не следует). И для этого в коллекции портов есть замечательный набор утилит под общим названием portupgrade.

Ищем:

# cd /usr/ports/
# make search name="portupgrade"

Port:   portupgrade-2.3.1,2
Path:   /usr/ports/ports-mgmt/portupgrade
Info:   FreeBSD ports/packages administration and management tool suite
Maint:  sem@FreeBSD.org B-deps: ruby-1.8.6_2,1
R-deps: db41-4.1.25_4 perl-5.8.8 ruby-1.8.6_2,1 ruby18-bdb-0.6.2
WWW:    http://wiki.freebsd.org/portupgrade

Port:   portupgrade-devel-2.3.1
Path:   /usr/ports/ports-mgmt/portupgrade-devel
Info:   FreeBSD ports/packages administration and management tool suite (devel version)
Maint:  sem@FreeBSD.org B-deps: ruby-1.8.6_2,1
R-deps: db41-4.1.25_4 perl-5.8.8 ruby-1.8.6_2,1 ruby18-bdb-0.6.2
WWW:    http://wiki.freebsd.org/portupgrade

Port:   sysutils/portupgrade
Moved:  ports-mgmt/portupgrade
Date:   2007-02-05
Reason: Moved to a new category

Port:   sysutils/portupgrade-devel
Moved:  ports-mgmt/portupgrade-devel
Date:   2007-02-05
Reason: Moved to a new category

Видим, что в портах есть то, что нам надо, к тому же в двух исполнениях. Первое: версия для “повседневного использования”, второе: версия, которая находится в стадии разработки. Я пробовал и ту и другую. Разницы не заметил. Но ставить будем portupgrade-2.3.1,2

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

Вылезет синее диалоговое окно с вопросом о том, какой тип базы данных использовать.

Portupgrade Screen Dialog

Можно ничего не менять и нажимать OK. В процессе установки “portupgrade-2.3.1,2″ также установит в системе пакеты “db41-4.1.25_4″, “ruby-1.8.6_2,1″, “ruby18-bdb-0.6.2″, и, если у Вас еще не установлен Perl, то и perl-5.8.8 После установки пакета мы получаем целый арсенал для аудита и обновления программного обеспечения на Вашем роутере. Из пакета portupgrade я использую следущие программы:

  • portupgrade - непосредственно обновляет коллекцию портов.
  • portinstall - прекрасно может заменить установку портов посредством make install clean
  • portcvsweb - дает прямую возможность просмотреть историю изменений в портах через CVSweb
  • portversion - отлично заменяет стандартную FreeBSD команду pkg_version(1), которая обычно дает посмотреть какие программы в системе требуют обновлений, а также взаимодействует с portupgrade(1), давая тем самым возможность оперативно производить обновления. При этом, portversion работает гораздо быстрее, чем pkg_version(1).
  • portsclean - очень полезная утилитка. Позволяет автоматически и быстро очищать каталоги /usr/ports/*/*/work (workdirs), удалять неактуальные версии пакетов с исходными кодами (distfiles), неактуальные библиотеки (libs) и пакеты (packages).
  • portsdb - создает двоичную базу данных портов из INDEX’ного файла.
  • pkg_deinstall - заменяет pkg_delete(1) и добавляет новые возможности.
  • pkg_fetch - загружает пакеты с FTP серверов.
  • pkg_which - проверяет, к какому пакету относится тот или иной файл в системе.
  • pkgdb - управляет и проверяет базу пакетов.

А теперь рассмотрим каждую утилиту и приемы работы с ней по отдельности.

portupgrade

Полный путь к исполняемому файлу:/usr/local/sbin/portupgrade

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • portupgrade –all –noexecute - для того чтобы увидеть, какие пакеты требуют обновления.
  • portupgrade –all - для того, чтобы обновить все пакеты, которые требуют обновления.
  • portupgrade <имя пакета> - для того, чтобы обновить какой-то конкретный пакет.
  • portupgrade –force <имя пакета> - для того, чтобы принудительно обновить пакет, независимо от того, поменялась ли актуальная версия данного ПО или нет. Помогает, если нужно просто переустановить (пересобрать) какой-нибудь пакет.

portinstall

Полный путь к исполняемому файлу: /usr/local/sbin/portinstall

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • portinstall xorg - установить порт с именем “xorg”. Версию указывать не нужно. Программа установит последнюю версию из портов.
  • portinstall –use-packages xorg - тоже самое что и в первом примере, но только при установке “xorg” будет запрошен готовый пакет данного ПО, и если последней версии, которая описана в портах, в виде пакета не окажется, программа начнет собирать данный пакет из исходников.
  • portinstall –use-packages-only xorg - тоже самое что и в первом примере, но только при установке “xorg” будет запрошен готовый пакет данного ПО, и если последней версии, которая описана в портах, в виде пакета не окажется, программа выдаст сообщение об ошибке и пакет установлен не будет.

portcvsweb

Полный путь к исполняемому файлу: /usr/local/sbin/portcvsweb

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • Наберите в консоли portcvsweb -F и результат увидите сами. :)

portversion

Полный путь к исполняемому файлу: /usr/local/sbin/portversion

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • portversion -v - выведет на экран список всех установленных в системе пакетов, их версии, а также актуальность версий.

portsclean

Полный путь к исполняемому файлу: /usr/local/sbin/portsclean

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • portsclean -vCDLP - удалит work каталоги в коллекции портов, удалит неактуальные дистфайлы, удалит неактуальные библиотеки, а также неактуальные версии пакаджей в /usr/ports/packages/All

Небольшое замечание касательно portsclean -L Дело в том, что в выводе команды можно увидеть “ругань” на повторяющиеся библиотеки в каталогах /usr/local/lib/ и /usr/X11R6/lib/. Я не знаю, почему portsclean не в курсе того, что /usr/X11R6 есть символическая ссылка на /usr/local потому просто игнорирую эти сообщения.

portsdb

Полный путь к исполняемому файлу: /usr/local/sbin/portsdb

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • portsdb -U - обновление INDEX файла коллекции портов.

pkg_deinstall

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_deinstall

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • pkg_deinstall mc-4.6.1_6 - удалит пакет mc-4.6.1_6 из системы.

pkg_fetch

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_fetch

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • pkg_fetch firefox - загрузит с FTP сервера пакет firefox (последней версии) и сохранит его под именем firefox-X.X.X.X (номер версии) в каталог /usr/ports/packages/All

pkg_which

Полный путь к исполняемому файлу: /usr/local/sbin/pkg_which

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • pkg_which mc - покажет версию пакета Midnight Commander, если он установлен в системе.

pkgdb

Полный путь к исполняемому файлу: /usr/local/sbin/pkgdb

Использование:


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].

Практические примеры использования этой утилиты:

  • pkgdb -F - проверить и внести исправления в базу пакетов, если это требуется.

Похожие публикации

Комментариев 7

DenisBY 24 января, 2010 13:15:06 EET .:. ID #24395 .:.

# portsclean -vCDLP
portsclean: no version found in package CDLP

Plastilin 11 января, 2010 19:41:35 EET .:. ID #24021 .:.

Правильно будет:

portupgrade –all –noexecute

Dmitriy 19 декабря, 2009 17:31:55 EET .:. ID #23245 .:.

#.~ cd /usr/ports/ports-mgmt/portupgrade
#.ports-mgmt/portupgrade make install clean
===> Vulnerability check disabled, database not found
===> Found saved configuration for portupgrade-2.3.1,2
===> Extracting for portupgrade-2.3.1,2
=> MD5 Checksum OK for pkgtools-2.3.1.tar.bz2.
=> SHA256 Checksum OK for pkgtools-2.3.1.tar.bz2.
===> portupgrade-2.3.1,2 depends on file: /usr/local/bin/ruby18 - found
mkdir: /usr/ports/ports-mgmt/portupgrade/work: Permission denied
*** Error code 1

Stop in /usr/ports/ports-mgmt/portupgrade.
*** Error code 1

Stop in /usr/ports/ports-mgmt/portupgrade.

Daemony 13 декабря, 2008 13:16:53 EET .:. ID #1067 .:.

Сам полностью переводил.
В том то и был смысл статьи - перевод на русский язык инструкции по работе с portupgrade.

rednikov 13 декабря, 2008 13:11:57 EET .:. ID #1066 .:.

Здоровская статейка…
Спасибо..
А МАН у тя на русском.. Эт ты сам перевёл или в системе так??

Андрей 6 ноября, 2008 16:23:26 EET .:. ID #1015 .:.

пипец какой то…. зщкегзпкфву кривой гад, слов просто нет, запустил portupgrade -all хотел порты обновить, а он мне программы пообновлял уже установленные…все слетело……

Daemony 18 января, 2008 06:37:31 EET .:. ID #252 .:.

Ну вот, сегодня эта писанина самому же и пригодилась ;)

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)