Европейский Университет в Санкт-Петербурге
Опубликован: 19.10.2005 | Доступ: свободный | Студентов: 1763 / 169 | Оценка: 4.31 / 3.82 | Длительность: 18:28:00
Лекция 2:

Настройка ядра ОС, установка программ и обновлений

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

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

Обновления пакетов программ (например, 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 требуется заранее создать роль, отвечающую за управление обновлениями, в каждой из систем вашей сети.

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >