Операционная система Solaris 11 появилась уже очень давно, однако, все еще возникают вопросы по особенностям ее администрирования, особенно тех подсистем, которые "в корне" поменялись по сравнению с предыдущими версиями Solaris. Возможно, с этим связаны относительные различия с подходами администрирования, применяемых в других системах семейства *nix, а также довольно "громоздкая" документация разработчика ОС.
Хотелось бы начать с пакетной системы IPS, которая пришла на смену SVR4-системы. Перечислю наиболее частые задачи, которые возникают при работе с IPS.
Создание локального репозитория :
I. Конфигурация локального репозитория (локальный доступ с возможностью совместного использования другими хостами по NFS)
1. При помощи образа репозитория (загруженного, например, с http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html)
2. Монтируем образ :
# mount -F hsfs /iso_dir/sol-11_1-repo-full.iso /mnt
3. Конфигурация доступа клиента
# pkg set-publisher -G ‘*’ -g file:///mnt/repo solaris
II. Конфигурация репозитория при помощи http-сервиса
1. Создаем (опционально) отдельную файловую систему с компрессией для хранения файлов репозитория
# zfs create -o compression=on fs_for_IPS
2. Монтируем образ :
# mount -F hsfs /var/tmp/sol-11_1-repo-full.iso /mnt
3. Копируем содержимое образа на созданную файловую систему :
# rsync -aP /mnt/repo /path_to_IPS_dir (для этих целей также подходят tar, cpio)
4. Конфигурируем SMF-сервис svc:/application/pkg/server
Указываем путь к файловой системе (по умолчанию /var/pkgrepo) :
# svccfg -s application/pkg/server setprop pkg/inst_root=path_to_IPS_dir/repo
Обновляем конфигурацию, запускаем, проверяем исправность сервиса
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
# svcs application/pkg/server
Конфигурация доступа к репозиторию на "клиенте" :
Удаляем все ранее сконфигурированные URL (ключ -G ‘*) и указываем новый путь
# pkg set-publisher -G ‘*’ -g http://my_ips_server.mydomain.com/ solaris
При конфигурации доступа к support-репозиторию Oracle по ключу и сертификату, необходимо дополнительно указать "-k" и "-c" с указанием путей их расположения, соответсвенно.
Работа с пакетами IPS локального образа системы
Поиск пакета/групп пакетов
# pkg search query
где query - простое, к примеру "wireshark", или структурированное выражение (вида "pkg_name:action_name:index:token" ), к примеру "info.classification:X11" используемое для поиска пакета/группы пакетов. Поддерживаются ' или " кавычки, символы "*" и "?".
Ключи "-l" или "-r" задают область поиска - локальный образ или репозиторий, соответсвенно.
Листинг устанавливаемого "содержимого" пакета :
# pkg contents pkg_name
Установка/обновление пакета
# pkg install pkg_name
Полезные ключи :
-nv : "имитация" установки пакета/группы, оценка возможных изменений в системе
--backup-be-name name : создать именованную резервную копию загрузочного окружения (BE) перед установкой пакета/группы
--be-name name: установка пакета/группы в указанное окружение (BE)
-g : позволяет указать принудительно путь или URI репозитория, с которого будет установлен пакет
Обновление системы :
Уточнение версии текущего IPS-образа системы (а также версии установленного Support Repository Update (SRU))
# pkg info entire
Список доступных обновлений для пакетов
# pkg list -u
Список всех доступных версий пакетов, включая те, что не могут быть установлены в данной версии образа по разным причинам.
# pkg list -af
Установка обновления пакета/группы/всего образа
# pkg update [pkg_name] (или pkg install pkg_name)
Запуск "pkg update" без указания имени пакета/группы приводит к обновлению всего образа.
Ключи, связанные с BE, аналогичны имеющимся у install (см.выше)
Откат содержимого файлов к исходному состоянию (на момент установки)
# pkg revert path_to_file
Работа с загрузочными окружениями (BE)
Листинг доступных окружений
# beadm list
Флаги в столбце "Active"
N -текущее активное окружение
R -окружение станет активным после перезагрузки
Ключ "-a" дополняет вывод списком снэпшотов для имеющихся загрузочных окружений
Создание нового окружения (последовательное создание снэпшота текущего окружения и создание нового на его основе) :
# beadm create newbe_name
Создание снэпшота для окружения
# beadm create be_name@snapshot_name
Создание окружения на основе снэпшота
# beadm create -e be_name@snapshot_name newbe_name
Монтирование неактивного окружения
# beadm mount newbe_name /path
"Размонтирование" неактивного окружения
# beadm unmount newbe_name
Активация окружения (будет активным после перезагрузки)
# beadm activate newbe_name
Удаление окружения
# beadm destroy be_name
Продолжение следует...