|
Пакеты (packages)
Введение В Solaris все программное обеспечение поставляется в виде пакетов (packages), включая саму операционную систему. Так же множество свободно распространяемого программного обеспечения доступно в виде пакетов. Подобный подход позволяет самостоятельно определять конфигурацию системы, как бы собирая ее в соответствии с собственными нуждами из кубиков конструктора. В любой момент вы можете добавлять либо удалять необходимые пакеты из системы. Виды пакетов/Что есть пакет Пакеты могут быть либо в виде одного файла (т.н. Package datastream) либо в виде каталога определенной структуры. Рассмотрим пакет SHAgzip, это каталог с именем SHAgzip (на самом деле каталог может называться как угодно) в этом каталоге обязательно есть как минимум два файла pkginfo и pkgmap, а так же каталоги reloc & install. Рассмотрим все это более подробно:
Рекомендуется рапространять пакеты в виде каталогов, на это есть несколько причин:
Преобразование пакетов Пакеты могут быть в любой момент преобразованы из каталога в datastream и наоборот. Для этого используется команда pkgtrans(1). Например у нас есть пакет GNUgcc в виде datastream, преобразуем его в нормальный вид: user$ cd ~/pkg user$ mkdir GNUgcc user$ pkgtrans ~/download/GNUgcc GNUgcc Установка пакета Для установки пакета используется команда pkgadd(1m). При вызове без параметров pkgadd проверяет наличие и выводит на экран список пакетов для установки расположенных в /var/spool/pkg. С помощью ключа -d можно указать другой каталог в котором pkgadd будет искать пакеты, или же вместо каталога можно указать файл в виде datastream. Таким образом установка производится следующим образом: root# gzcat SHAgtar.tgz | tar xvf - root# pkgadd -d .пакеты в виде datastream устанавливаются следующим образом: root# gunzip gcc-2.95.2-i86pc.gz root# pkgadd -d gcc-2.95.2-i86pcК сожалению в составе поставки Solaris нет gunzip. Поэтому это первый пакет который надо установить. Просмотр информации о пакетах Для просмотра информации о установленных пакетах используется команда pkginfo(1). pkginfo вызванный без параметров покажет список всех установленных в системе пакетов с кратким их описанием. pkginfo c именем пакета покажет более подробную информацию о пакете. Для того что бы узнать к какому пакету относится тот или иной файл можно воспользоваться файлом /var/sadm/install/contents. Например мы хотим узнать к какому пакету принадлежит файл /usr/local/bin/gtar, а также хотим узнать какие еще файлы идут в этом пакете. root# grep bin/gtar /var/sadm/install/contents /usr/local/bin/gtar f gtar 0755 root other 123656 3539 924175580 SHAgtar root# grep SHAgtar /var/sadm/install/contents /usr/local/bin d none 0755 root other GNUcatdoc GNUsudo SHAgtar /usr/local/bin/gtar f gtar 0755 root other 123656 3539 924175580 SHAgtar /usr/local/info d none 0755 root other SHAgtar:gtar gnome ....Так же можно просмотреть параметры пакета с помощью команды pkgparam(1). Например просмотрим параметры пакета SHAgtar: root# pkgparam -v SHAgtar CLASSES='gtar' BASEDIR='/usr/local' TZ='Asia/Yekaterinburg' PATH='/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin' OAMBASE='/usr/sadm/sysadm' PKG='SHAgtar' NAME='GNU tar (system tar replacement)' ARCH='i86pc' VERSION='1.12' DESC='GNU tar for Solaris 2.7' VENDOR='NIEE Hacker'"'"'s League' CATEGORY='application' PSTAMP='nic19990415185920' PKGINST='SHAgtar' PKGSAV='/var/sadm/pkg/SHAgtar/save' INSTDATE='Авг 13 1999 16:46' Поиск и установка пакета из дистрибутива Многие при установке системы выбирают End User Install, набор пакетов достаточный для работы офисного пользователя. Предполагается что такому пользователю для выполнения его работы не нужны пакеты необходимые разработчику. Поэтому не обнаружив в системе необходимых файлов/утилит не отчаивайтесь, скорее всего вы их просто не установили. Для того что бы определить в каком пакете находится требуемый файл просто поищите его на дистрибутивном компакт-диске. root# cd /cdrom/cdrom0/Solaris_2.[67]/Product root# grep ccs/bin/make */pkgmap SUNWsprot/pkgmap:1 f none usr/ccs/bin/make 0755 bin bin 252380 \ 49976 893359962Как вы видите make поставляется в пакете SUNWsprot. Посмотрим что еще поставляется в этом пакете: root# more SUNWsprot/pkgmap blah, blah more SUNWsprot/pkgmap : 1 2550 1056 1 i copyright 59 5234 885707484 1 i depend 892 7900 805067308 1 i pkginfo 420 32837 893801804 1 d none usr 0775 root sys 1 d none usr/ccs 0755 bin bin 1 d none usr/ccs/bin 0755 bin bin 1 f none usr/ccs/bin/admin 0755 bin bin 43932 58824 893378688 1 f none usr/ccs/bin/as 0755 bin bin 146248 47339 835025580 1 f none usr/ccs/bin/cdc 0755 bin bin 41092 52869 893378689 1 f none usr/ccs/bin/comb 0755 bin bin 30856 21024 893378690 1 f none usr/ccs/bin/delta 0755 bin bin 57288 21124 893378690 1 f none usr/ccs/bin/get 0755 bin bin 49860 29695 893378691 1 f none usr/ccs/bin/help 0755 bin bin 5112 18170 893378698 1 f none usr/ccs/bin/make 0755 bin bin 252380 49976 893359962 1 f none usr/ccs/bin/prs 0755 bin bin 34144 24980 893378692 1 f none usr/ccs/bin/prt 0755 bin bin 17804 64262 893378692 1 f none usr/ccs/bin/rmdel 0755 bin bin 41092 52869 893378693 1 f none usr/ccs/bin/sact 0755 bin bin 25384 23012 893378693 1 f none usr/ccs/bin/sccs 0755 bin bin 35716 38810 893378694 1 f none usr/ccs/bin/sccsdiff 0755 bin bin 2196 21177 893378696 1 f none usr/ccs/bin/unget 0755 bin bin 25384 23012 893378694 1 f none usr/ccs/bin/val 0755 bin bin 14084 36880 893378695 1 f none usr/ccs/bin/vc 0755 bin bin 13392 58056 893378695 1 f none usr/ccs/bin/what 0755 bin bin 8272 15086 893378696 ...Похоже тут куча полезных программ, тогда установим этот пакет: root# pkgadd -d . SUNWsprot Удаление пакетов Как говорится -- ломать не строить ;) Удаление пакетов крайне просто. Для этого используется команда pkgrm(1m). root# pkgrm PKGcrap
|
Украинская Баннерная Сеть
|