Note

Пакеты, установка дополнительного софта.

Администрирование программного обеспечения

Для этой цели в ОС Solaris предусмотрен специальный механизм, поддерживаемый с помощью утилит "pkgadd" и "pkgrm", соответственно добавляющих и удаляющих пакеты из системы. Чтобы эти утилиты могли оперировать с пакетами, они должны быть представлены в соответствующем виде, или формате.

К сожалению, далеко не все программные продукты доступны непосредственно в формате, пригодном для "pkgadd", большинство софта для Unix, доступных через Internet, находятся в виде исходных текстов, которые надо откомпилировать и скопировать в нужные места.

Ручная установка

Здесь описана только установка пакета для себя (standalone sysтем), если вам нужно установить пакет в режиме server/dataless/diskless - читайте другие книжки (делать это надотолько с большой тоски).

1. Станьте суперпользователем

2. введите:

/usr/sbin/pkgadd -d имя_директории_где_лежит_пакет имя_пакета

например:

/usr/sbin/pkgadd -d /cdrom/solaris_2_5/s0/Solaris_2.5 SUNWpkgA

можно установить несколько пакетов сразу (укажите их имена через пробелы). Имя пакета можно узнать из инструкции или с помощью команды:

/usr/sbin/pkginfo -d имя_директории_где_лежит_пакет

Внимание: Solaris не плохо отслеживает взаимозависимость между пакетами, так что вы сами должны позаботиться о порядке установки. Многие пакеты любят задавать всякие вопросы во время установки (куда все это поместить, весь ли пакет установить и т.д.), так что будьте готовы. Например, при установке тома AnswerBook спрашивается, что копировать на жесткий диск: описание или весь том. Если вы копируете только описание, то исходный CD-ROM должен быть установлен каждый раз, когда вы запускаете AnswerBook, иначе не найденный том будет помечен как "неживой" и его придется восстанавливать. Кстати, тома разбросаны по 7 дискам!!!

-----------------------------------------------------------------

Проверка установки пакета.

/usr/sbin/pkgchk <имя_пакета>

-----------------------------------------------------------------

Получение информации о пакете:

/usr/bin/pkginfo -l <имя_пакета>

например:

pkginfo -l SUNWcar

PKGINST: SUNWcar

NAME: Core Architecture, (Root)

CATEGORY: system

ARCH: sparc.sun4m

VERSION: 11.5.1,REV=94.07.15.22.10

BASEDIR: /

VENDOR: Sun Microsystems, Inc.

DESC: Core Architecture, (Root)

PSTAMP: fourstar940718191413

INSTDATE: Aug 16 1995 03:39

HOTLINE: Please contact your local service provider

STATUS: completely installed

FILES: 51 installed pathnames

16 shared pathnames

7 directories

29 executables

3794 blocks used (approx)

---------------------------------------------------------------

Удаление пакета:

/usr/sbin/pkgrm <имя_пакета>

---------------------------------------------------------------

Работа с пакетами в графическом интерфейсе

swmtool для 2.4 или admintool для 2.5

1. станьте суперпользователем

2. перейдите в графический режим, если вы еще не перешли в него

3. введите:

/usr/sbin/swmtool &

На экране возникает новое окно, программа долго-долго собирает информацию об уже инсталлированных пакетах, затем переходит в режим установки (режим INSTALL/REMOVE переключается соответствующими кнопочками) и, скорее всего, сообщает вам, что "устройство не готово, поменяйте установки (property)" Дело в том, что swmtool по умолчанию считает, что устанавливаемый пакет лежит на CD-ROM и менеджер томов выключен. Если это действительно так, то вставьте CD-ROM перед запуском swmtool. Иначе нажмите кнопку Props... (установки), возникает бланк, на странице (категории) Source Media которого вам надо задать устройство или директорию, где лежит пакет.

Например, меняем Media Type на Mounted Directory, Directory Name устанавливаем в /cdrom/cdrom0 (установка с CD-ROM при включенном менеджере томов) и нажимаем кнопку Apply. Если в указанной вами директории есть пакеты, то их описания будут перечислены в главном окне swmtool. Для каждого пакета указывается: иконка (один ящик - простой пакет - на такую иконку можно жать два раза, и появляется подробное описание, 3 ящика - составной пакет - на такую иконку можно жать два раза, и она раскрывается в список внутренних пакетов - уровень вложенности не ограничен), описание пакета и его предполагаемый размер. Выбираете необходимые вам пакеты и нажимаете кнопку Begin Installation (начать установку). Далее весь диалог происходит в а/ц режиме как при установке pkgadd. Кстати, бланк установок имеет большое количество кнопочек, менюшек и пр.:есть с чем поиграться...

Для того, чтобы удалить пакет, нажимаете кнопку Remove, выбираете пакет (пакеты), который вы хотите удалить, и нажимаете кнопку Begin Removal.

Изготовление собственного пакета

Чтобы легче администрировать этот разрозненный набор файлов, получающийся после компиляции, их можно привести к формату утилиты "pkgadd" самостоятельно. Легче всего этот вопрос рассмотреть на конкретном примере. Пусть у нас есть пакет, состоящий из 3х программ: "MyProg.bin", "Myprog.lib"

и "MyProg.man", которые должны храниться в каталогах "/usr/local/bin", "/usr/local/lib" и "/usr/local/man" соответственно. Чтобы сделать из них пакет, надо проделать следующие простые шаги:

    • а) Создадим директорию, где будут храниться исходные данные для утилиты "pkgmk", которая и делает собственно пакет. Пусть в нашем примере это будет директория "~/tmp/MyPackage".

    • б) Создадим под ним систему директорий, где должны располагаться файлы пакета, и затем скопируем эти файлы на свои места. т.е. в результате у нас должны получиться файлы:~/tmp/MyPackage/bin/MyProg.bin, ~/tmp/MyPackage/lib/MyProg.lib и ~/tmp/MyPackage/man/MyProg.man

    • в) Затем надо создать файлы "pkginfo" и "prototype". Они должны выглядеть примерно так (более подробную информацию об этих файлах вы можете получить, набрав команды man -s4 pkginfo man -s4 prototype

Файл "prototype":

!PROJDIR=/usr/local

1 i pkginfo=pkginfo

1 d none bin 0755 root other

1 f none bin/MyProg.bin 0644 root other

1 d none lib 0755 poul insects

1 f none lib/MyProg.lib 0644 root other

1 d none man 0755 poul insects

1 f none man/MyProg.man 0644 root other

Файл "pkginfo":

PKG=MyProg

NAME=MyPackage

ARCH=sparc

VERSION=Version 1.0

CATEGORY=application

VENDOR=Pavel K. Klodin

EMAIL=webmaster@reksoft.ru

PSTAMP=Pstamp

BASEDIR=/usr/local

CLASSES=none

    • г) После того, как файлы сделаны, выполним следующие команды:

cd ~/tmp/MyPackage

pkgmk -o -d /tmp -r .

После этого в директории "/tmp" будет создан пакет "MyPackage" в виде структуры файлов и директорий. С ним уже можно оперировать утилитой "pkgadd". д) Теперь, наконец, выполним команды (предварительно став суперпользователем с помощью команды "su -"):

cd /tmp

pkgadd -d .

ПРИМЕЧАНИЕ: Следует помнить, что пакеты могут быть представлены в двух равноправных формах:

    • в виде структуры директорий (как уже было рассмотрено выше);

    • в виде так называемых "потоковых пакетов" (stream packages).

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

Summary of pkg commands:

pkginfo {pkg} - test for presents of package.

pkgadd -d /cdrom/Solaris_2.3 <pkg ...>

- add missing packages

pkgrm {pkg ...} - remove packages.

pkgchk -q {pkg} - test for existance of package

pkgchk {options} [pkg] - check installed packages for

integrity.

Let's say your Solaris2 workstation is called "sol" and the

4.1.x server is called "bertha" and you want the printer name

to be "printer" (imaginative, eh?).

sol# lpsystem -t bsd bertha # says bertha is a bsd system

sol# lpadmin -p printer -s bertha # creates "printer" on "sol"

# to be printed on "bertha"

sol# accept printer # allow queuing

sol# enable printer # allow printing

sol# lpstat -t # check the status

sol# lpadmin -d printer # default

To get transparent mode, try this:

lpadmin -I any -p printer

iostat

iostat - сообщает об использовании ЦП и статистику ввода/вывода дисков. iostat собирает данные из файловой системы ргос, выдавая по одной строке для каждого физического устройства.

Параметры запуска iostat:

-N - выводить информативные имена томов, соответствующие выводу утилиты df -h

-dx - вывод в расширенном виде, можно указать для отдельного диска, например iostat -dx /dev/dm-11

-t - добавляет время запроса в вывод

Первый отчет команды iostat содержит информацию, накопленную с момента загрузки системы до вызова команды iostat. В каждом следующем наборе выдается информация, собранная за предшествующий интервал времени (в данном случае - за 5 секунд).

# iostat 5 2 -N

Linux 2.6.34.9-69.fc13.x86_64 16.02.2012 _x86_64_ (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

5,29 0,00 9,92 3,52 0,00 81,26

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 12,48 65,26 154,84 62569282 148460024

sdb 11,25 0,00 154,84 1928 148460024

sdc 12,00 65,12 152,34 62433810 146061320

sdd 11,07 0,00 152,34 1928 146061320

isw_ccbhicjbef_sys0-0 27,51 65,26 154,84 62567354 148460024

isw_ccbhicjbef_sys0-1 27,18 65,12 152,34 62431882 146061320

isw_ccbhicjbef_sys0 54,69 130,37 307,19 124997288 294521344

isw_ccbhicjbef_sys0p1 0,00 0,00 0,00 3202 16

isw_ccbhicjbef_sys0p2 0,09 0,34 0,41 326224 397320

isw_ccbhicjbef_sys0p3 0,07 0,40 0,13 384306 128896

isw_ccbhicjbef_sys0p4 0,00 0,00 0,00 202 0

isw_ccbhicjbef_sys0p5 0,00 0,02 0,00 16434 2128

isw_ccbhicjbef_sys0p6 4,73 10,43 27,41 9997978 26281080

isw_ccbhicjbef_sys0p7 1,36 0,40 10,45 384746 10022792

isw_ccbhicjbef_sys0p8 0,00 0,00 0,03 4186 25240

isw_ccbhicjbef_sys0p9 48,44 118,78 268,74 113878074 257663872

avg-cpu: %user %nice %system %iowait %steal %idle

0,47 0,00 0,40 0,85 0,00 98,28

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

sda 5,00 0,00 65,60 0 328

sdb 5,20 0,00 65,60 0 328

sdc 17,20 0,00 152,00 0 760

sdd 17,20 0,00 152,00 0 760

isw_ccbhicjbef_sys0-0 8,20 0,00 65,60 0 328

isw_ccbhicjbef_sys0-1 19,00 0,00 152,00 0 760

isw_ccbhicjbef_sys0 27,20 0,00 217,60 0 1088

isw_ccbhicjbef_sys0p1 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p2 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p3 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p4 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p5 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p6 2,60 0,00 20,80 0 104

isw_ccbhicjbef_sys0p7 4,60 0,00 36,80 0 184

isw_ccbhicjbef_sys0p8 0,00 0,00 0,00 0 0

isw_ccbhicjbef_sys0p9 20,00 0,00 160,00 0 800

В столбцах с информацией о CPU (%user, %system, %idle, %iowait) указывается распределение времени процессора. В выводе команды vmstat эта информация выводится в столбцах us, sy, id и wa.

tps. Количество операций ввода/вывода в секунду (количество переданных данных в секунду). Частота операций передачи данных между диском и системой, в операциях в секунду. Операция передачи - это запрос на ввод-вывод, переданный физическому диску через драйвер устройства. Несколько логических запросов при передаче устройству могут быть объединены в один. Объем данных, передаваемых за одну операцию, не ограничен.

Количество операций блочного чтения и блочной записи в секунду (Blk_read/s и Blk_write/s), общий объем прочитанных (Blk_read) и записанных (Blk_wrtn) блоков.