Администрирование ОС Solaris

       

Установка обновлений


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

Для работы с обновлениями и заплатками в Solaris предусмотрен ряд программ: patch, gpatch, patchadd, patchrm, smpatch.

Можно также устанавливать обновления системы с помощью Solaris Management Console. Это делается через пункт "Patches" (подробности см. в лекции 16).

Для того чтобы узнать точно версию вашей системы Solaris и получить информацию обо всех установленных обновлениях системы, следует использовать команду showrev:

showrev -a Hostname: sola Hostid: 284521a Release: 5.9 Kernel architecture: i86pc Aplication architecture: i386 Hardware provider: Domain: Kernel version: SunOS 5.9 Generic_112234-03 November 2002

OpenWindows version: Solaris X11 Version 6.6.1 16 October 2002 No patches are installed

Для изменения текстовых файлов (например, исходных текстов программ или файлов конфигураций) можно применять программу patch. Для ее работы нужно два файла: исходный текстовый файл, подлежащий изменению, и файл заплатки (patch-файл). Файл заплатки обычно имеет формат вывода программы diff, но patch понимает также формат скрипта редактора ed или контекстный вывод diff. Контекстным называется формат вывода, когда в файле различий, создаваемом diff, приводятся не только те строки файлов, которые отличаются друг от друга, но и контекст, в котором они появились (по три строки сверху и снизу от них). Типичный файл заплатки для исходного текста или файла конфигурации выглядит так:

cat system.patch --- system Mon May 17 02:15:34 2004 +++ system.new Tue Jun 22 10:50:48 2004 @@ -76,6 +76,6 @@ * * set test_module:debug = 0x13 -set semsys:seminfo_semmni=100 +set semsys:seminfo_semmni=110 set semsys:seminfo_semopm=100

Этот файл заплатки system.patch можно "приложить" к старому файлу system для того, чтобы внести в него изменения; предполагается, что старый файл имеет имя, совпадающее с именем в первой строке файла заплатки (то, что написано после ---):

patch -i system.patch system

Кроме программы patch в Solаris имеется программа gpatch (GNU Patch), которая, в отличие от традиционной команды patch, строго соответствует стандарту POSIX и несколько по-другому интерпретирует ключи и обрабатывает полные имена файлов в файлах заплаток. Применяйте ту программу, которая требуется согласно описанию заплатки; в трудных случаях имеет смысл изучить раздел Compatibility issues в man gpatch.

Программы patch и gpatch не предназначены для установки обновлений Solaris, которые Sun Microsystems регулярно выпускает по мере обнаружения ошибок в существующем коде или для усовершенствования тех или иных системных программ. Для установки обновлений системы (а это наборы двоичных файлов) используются программы patchadd. Для удаления обновления и возвращения системы в состояние, в котором она пребывала до обновления, используйте patchrm. Программы patchadd и patchrm работают с Solaris версий 2.x и новее.

С помощью команды smpatch можно установить обновления системы на несколько машин сразу, удалить их с нескольких машин и выяснить текущее состояние систем в сети с точки зрения установленных обновлений. Для работы с командой smpatch требуется заранее создать роль, отвечающую за управление обновлениями, в каждой из систем вашей сети.

НАЗАД ВПЕРЕД

<

Содержание раздела