Компиляция, установка пакетов, управление пакетами, применение пакетов обновлений
Существует несколько способов установить программу или пакет программ в UNIX. Выбор способа зависит от того, в каком виде доступен пакет программ, который вам требуется. Если пакет доступен только в виде набора исполняемых файлов, уже скомпилированных для вашей платформы, то выбор невелик: придется устанавливать то, что имеется.
Например, требуется найти более наглядное средство наблюдения за процессами, чем ps. На http://www.sunfreeware.com/ ищем top и загружаем его на свой компьютер. Если прямо с sunfreeware его получить не удается, набираем имя файла top-3.5-sol9-intel-local.gz в строке поиска Google и получаем достаточное количество ссылок на ftp-серверы, где он лежит. Такое бывает часто: сервер sunfreeware перегружен и не всегда готов принять посетителя.
Теперь распаковываем подарочек...
gunzip top-3.5-sol9-intel-local.gz
и в нашем распоряжении оказывается файл пакета. Надо указать команде pkgadd, что именно отсюда мы будем пакет устанавливать:
pkgadd -d top-3.5-sol9-intel-local The following packages are available: 1 SMCtop top (intel) 3.5 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: y
ERROR: Entry does not match available menu selection. Enter the number of the menu item you wish to select, or the token which is associated with the menu item, or a partial string which uniquely identifies the token for the menu item. Enter ?? to reprint the menu.
Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: all
Ошибка (сообщение ERROR в 6-й строке листинга) вызвана тем, что мы поторопились ввести y в ответ на вопрос: привычка сказывается. Честно напишем all, чтобы установить все программы, которые доступны в пакете. После этого получаем:
Processing package instance <SMCtop> from </export/home/top-3.5-sol9-intel-local>
top (intel) 3.5 William LeFebvre Using </usr/local> as the package base directory. ## Processing package information. ## Processing system information. 4 package pathnames are already properly installed. ## Verifying disk space requirements. ## Checking for conflicts with packages already installed. ## Checking for setuid/setgid programs.
The following files are being installed with setuid and/or setgid permissions: /usr/local/bin/top <setgid sys>
Наконец вопрос, на который как раз следует ответить утвердительно:
Do you want to install these as setuid/setgid files [y,n,?,q] y Installing top as <SMCtop> ## Installing part 1 of 1. /usr/local/bin/top /usr /usr/local/doc/top/Changes /usr/local/doc/top/FAQ /usr/local/doc/top/INSTALL /usr/local/doc/top/Porting /usr/local/doc/top/README /usr/local/doc/top/SYNOPSIS /usr/local/man/man1/top.1 [ verifying class <none> ] Installation of <SMCtop> was successful.
Проверить, удачно ли установился пакет, можно командой
pkginfo | grep top application SMCtop top system SUNWdtcor Solaris Desktop /usr/dt filesystem anchor system SUNWdtdst CDE Desktop Applications system SUNWdtdte Solaris Desktop Login Environment system SUNWdtezt Solaris Desktop Extensions Applications system SUNWdthez Desktop Power Pack Help Volumes system SUNWdtlog System boot for Desktop Login system SUNWdtmaz Desktop Power Pack man pages system SUNWeuodf UTF-8 Core OPENLOOK Desktop Files system SUNWsadmi Solstice Enterprise Agents 1.0.3 Desktop Management Interface
Как видно, пакетов, в названиях которых имеется подстрока top, установлено немало, и тот, которым занимались мы, - на самом первом месте.
Удалить пакет можно командой pkgrm, например, pkgrm SMCtop.
Иногда бывает необходимо не просто установить пакет, который получен в виде набора исполняемых файлов и документации, а собрать его из исходных текстов. В этом случае надо следовать инструкциям по установке, которые обычно находятся в файлах README и INSTALL дистрибутива пакета. В любом случае вам понадобится программа make (поставляется в комплекте с Solaris) и компилятор языка С (не поставляется).
Коммерческая версия компилятора С фирмы Sun не поставляется с бесплатным набором компакт-дисков дистрибутива Solaris. Его надо покупать отдельно, это можно сделать со страницы http://wwws.sun.com/software/sundev/suncc/buy/index.html.
Компания Sun предоставляет возможность использовать ее компилятор С в течение 60 дней бесплатно. Для этого с той же страницы надо загрузить trial-версию. Она является полнофункциональной - просто при установке следует выбрать вариант установки trial, и временный серийный номер продукта будет сгенерирован автоматически.
Кроме коммерческого компилятора можно работать с бесплатной версией GNUC под Solaris. Ее можно получить с http://www.sunfreeware.com/ или найти через центральный портал проекта GNU gnu.org. GNU C можно загрузить в виде пакета gcc.
Загрузим файл gcc_small-3.3.2-sol9-intel-local.gz и установим пакет gcc для того, чтобы иметь возможность компилировать программы из исходных текстов:
pkgadd gcc_small-3.3.2-sol9-intel-local.gz pkgadd: ERROR: no packages were found in </var/spool/pkg>
Ошибка: файл пакета сжат, ему требуется декомпрессия, кроме того, имя файла пакета надо указывать с ключом d:
gunzip gcc_small-3.3.2-sol9-intel-local.gz ls gcc_small-3.3.2-sol9-intel-local pkgadd -d gcc_small-3.3.2-sol9-intel-local The following packages are available: 1 SMCgcc gcc (intel) 3.3.2 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]:
Далее действуем, как в предыдущем примере.
Если необходимо, то можно получить довольно много бесплатного программного обеспечения под Solaris со страницы http://www.sun.com/bigadmin/features/articles/x86_desktop.html.
Затем его можно установить вышеописанным образом.
При установке программ из исходных текстов, следует руководствоваться инструкциями из файлов README и INSTALL, которые присутствуют в дистрибутиве наряду с исходными текстами.