Как определить какая версия .NIX системы установлена у вас

Как выяснить, что уже установлено в вашей системе, и как получить новое программное обеспечение и инсталлировать его.

В современных операционных системах программное обеспечение разделено на пакеты, которые можно инсталлировать независимо друг от друга. При стандартной установке системы используется группа "стартовых" пакетов, которую можно при необходимости расширить.

Добавочные программные продукты зачастую предоставляются также в виде предварительно скомпилированных пакетов, но далеко не во всех системах. Большая часть программного обеспечения создается независимыми группами разработчиков, выпускающих программы в виде исходных кодов. Репозитории пакетов затем берут исходные коды, компилируют их в соответствии с особенностями конкретной системы и включают в пакеты полученные бинарные файлы. Как правило, намного проще инсталлировать бинарную версию пакета, предназначенную для данной системы, чем искать и компилировать исходный код. Однако нужно учитывать, что иногда создатели пакетов на один-два выпуска отстают от текущей версии системы.

Если в двух системах используется один и тот же формат обработки пакетов, то это еще не означает, что пакеты обеих систем будут взаимозаменяемыми. Например, в системах Red Hat и SUSE применяется формат RPM, однако структура их файловых систем неодинакова. Рекомендуется всегда пользоваться пакетами, созданными для конкретной системы.

В известных Unix-дистрибутивах предусмотрены отлаженные системы управления пакетами, которые включают средства доступа к репозиториям программных продуктов и поиска их в Интернете. Дистрибуторы активно поддерживают эти репозитории от имени сообщества, которое они представляют, поэтому у администраторов Linux-систем редко возникает необходимость выходить за рамки стандартного менеджера пакетов. Другими словами, жизнь прекрасна!

При этом UNIX-системы демонстрируют больше неопределенности по части управления пакетами. Solaris, HP-UX и AIX предоставляют соответствующие программные средства работы с пакетами, которые функционируют на уровне отдельных машин. Однако производители этих систем не поддерживают репозитории продуктов с открытым исходным кодом, и поэтому пользователям, в основном, приходится заниматься самообслуживанием. К сожалению, одним из главных звеньев цепочки, которая связывает систему пакетирования в одно целое, является метод ссылки одних пакетов на другие, позволяющий выразить информацию о взаимной зависимости и совместимости. Без центральной координации вся эта экосистема может быстро развалиться на отдельные части.

Действительность демонстрирует совершенно разные результаты. Дистрибутив Solaris предлагает добавочную систему (pkgutil от blastwave. org), которая предоставляет простую инсталляцию программного обеспечения из интернет-репозитория, во многом подобную системам, содержащимся на Linux-дистрибутивах. Система HP-UX содержит прекрасный интернет-репозиторий в форме HP-UX Porting и Archiving Centre (hpux. connect.org.uk), но пакеты должны быть загружены вручную и по отдельности. Что касается AIX, то пока трудно говорить о возможности использования предварительно скомпонованного программного обеспечения для этой системы.

Администраторы без доступа к предварительно скомпонованным бинарным версиям пакетов должны инсталлировать системы по-старому, т.е. загрузить архив исходного кода tar, а затем вручную сконфигурировать, скомпилировать и инсталлировать систему. Иногда этот процесс проходит гладко, а иногда может превратиться в кошмар: все зависит от используемого программного обеспечения и конкретной операционной системы.

В этой книге мы предполагаем, что дополнительное программное обеспечение уже установлено, и не собираемся мучить вас шаблонными инструкциями по инсталляции каждого пакета. При необходимости мы будем указывать точные названия пакетов для выполнения конкретного проекта. Однако большей частью мы не будем повторять инструкции по инсталляции, поскольку они практически идентичны для всех пакетов.

Определение факта инсталляции программного обеспечения

По ряду причин иногда нелегко определить, какой программный пакет содержит нужный компонент. Для того чтобы выяснить, "прописан" ли важный для вас бинарный файл в строке поиска, лучше использовать команду which (а не действовать на пакетном уровне). Например, следующая команда сообщает о том, что компилятор GNU С инсталлирован на данном компьютере.

aix$ which gcc

/opt/pware/bin/gcc

Если команда which не помогла, воспользуйтесь командой whereis, которая ведет поиск в системных каталогах без учета строки поиска. Другой вариант — это чрезвычайно удобная команда locate, которая просматривает предварительно скомпилированный индекс файловой системы в поиске имен файлов, соответствующих заданному Шаблону. Команда locate входит в состав GNU-пакета findutils, который по умолчанию включен в большинство систем Linux, но для UNIX его необходимо инсталлировать вручную.

С помощью команды locate можно искать не только программы или пакеты, но Файлы любых типов. Например, если не известно точно, где искать файл заголовков signal.h (в нем содержатся определения сигналов Linux), попробуйте поступить так.

ubuntu$ locate signal.h

/usr/include/signal .h /usr/include/asm/signal.h /usr/include/asm-generic/signal.h /usr/include/linux/signal.h

База данных команды locate периодически обновляется командой updatedb, которая запускается демоном cron. Следовательно, результаты работы команды locate не всегда отражают последние изменения в системе.

Если известно имя искомого пакета, воспользуйтесь системными утилитами обработки пакетов, которые непосредственно проверят наличие пакета. Например, в системах Red Hat или SUSE следующая команда определяет наличие интерпретатора языка Python (и его инсталлированной версии):

redhat$ rpm -q

python python-2.4.3-21.el5

Добавление новых программ

Если возникнет необходимость инсталлировать дополнительное программное обеспечение, вам, прежде всего, нужно определить каноническое имя соответствующего программного пакета. Например, вам следует преобразовать ваше желание "хочу инсталлировать locate" в версию "нужно инсталлировать пакет  findutils" или перевести намерение "инсталлировать named" в вариант "инсталлировать BIND". В этом вам поможет множество веб-индексов, эффективно работающих при указании конкретной системы, особенно при использовании Google. Например, при введении в поле поиска "команда locate" вас направят точно по адресу. Если вы работаете в системе UNIX, укажите также имя операционной системы.

Если вам известно имя нужной утилиты, можете загрузить и инсталлировать ее. В Linux и Solaris полная установка обычно состоит в использовании одной команды, поскольку в этих системах уже инсталлирована утилита pkgutil. Для HP-UX и AIX вам придется загрузить либо предварительно собранный бинарный пакет, либо исходный код проекта. В последнем случае попробуйте с помощью Google найти официальную веб-страницу проекта и загрузить оттуда его исходный код.

Следующие примеры демонстрируют инсталляцию утилиты wget для каждой системы, взятой в этой книге в качестве примера. Эта GNU-утилита, которая превращает сетевую загрузку файлов (поддерживающую протоколы HTTP и FTP) в элементарную команду, очень полезна для выполнения сценариев. Утилита wget инсталлируется по умолчанию в каждом из рассматриваемых здесь примеров систем Linux; при этом отметим, что представленные ниже команды можно использовать как во время начальной инсталляции, так и при последующих обновлениях системы.

В системе Ubuntu используется программа для установки, обновления и удаления программных пакетов в операционных системах Debian (Advanced Package Tool — APT).

ubuntu# apt-get install wget

Reading package lists… Done

Building dependency tree

Reading state information… Done

wget is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Вот как выглядит версия SUSE.

suse# yast —install wget

<runs in a terminal-based UI>

Вариант инсталляции в системе Red Hat.

redhat# yum install wget

Loaded plugins: fastestmirror

Parsing package install arguments

Package wget-1.10.2-7.el5.i386 is already installed and latest version

Nothing to do

_В системе Solaris инсталляция выполняется с помощью уже установленной SOL3NS утилиты pkutil (для получения инструкций по данной установке см. сайт

blastwave.org).

soiaris#    /opt/csw/bin/pkgutil —install wget

cmultiple pages of output as seven packages are installed>

Для системы HP-UX мы нашли на сайте hpux. connect. org. uk соответствующий бинарный пакет и загрузили его в каталог /trap. Команды распаковки и инсталляции в этом случае выглядят так.

hpux# gunzip /tmp/wget-1.11.4-hppa-ll.31.depot.gz

hpux# swinstall -s /tmp/wget-1.11.4-hppa-ll.31.depot wget

=======    05/27/09 13:01:31 EDT   BEGIN swinstall SESSION

(non-interactive)   (jobid=hpuxl1-0030)

  • Session started for user "rootQhpuxll".

Beginning Selection

Target connection succeeded for "hpuxll:/".

Source:        /tmp/wget-1.11.4-hppa-ll.31.depot

Targets:  hpuxll:/

Software selections:

wget.wget-RUN,r=l.11.4,a=HP-UX_B./800

  • Selection succeeded.

Beginning Analysis and Execution

Analysis and Execution succeeded.

Пакет depot (в строке с командой swinstall) должен быть задан как полный путь, начинающийся косой чертой "/"; в противном случае команда swinstall попытается найти нужный файл в сети. Утилита wget при завершении инсталляции сообщает команде swinstall, какой пакет надо загрузить из файла depot.

К сожалению, этот процесс инсталляции в действительности не так прост, как может показаться на первый взгляд. Инсталлируемая версия утилиты wget на самом деле не будет работать, поскольку некоторые библиотеки, от которых она зависит, не инсталлированы.

hpux$ wget http:// samba.org/samba/docs/Samba3-HOWTO.pdf

/usr/lib/dld.si: Can't open shared   library:  /usr/local/lib/libcrypto.si /usr/lib/dld.si: No such file or directory

[HP ARIES32]: Core file for 32 bit РА-RISC application

[HP ARIES32]: /usr/local/bin/wget saved to /tmp/соге.wget.

Утилита swinstall обладает встроенным механизмом управления зависимостями, но его возможности, к сожалению, не распространяются на интернет-репозитории. Прочитайте "паспортные данные" утилиты swinstall и инсталлируйте все необходимые для нее пакеты (в данном случае — еще шесть).

Сборка программного обеспечения из исходного кода

Фактически существует, по крайней мере, один бинарный пакет wget, доступный для AIX в формате RPM. Поиск в Google при заданной строке "aix wget rpm" вполне оправдает ваши надежды. После загрузки вам останется выполнить совсем простую команду инсталляции.

aix#    rpm —install wget-1.11.4-l.aix5.1.ppc.rpm

В целях иллюстрации построим AIX-версию пакета wget на основе оригинального исходного кода.

Прежде всего, нам нужно найти этот код, но это не проблема: первый же результат, предложенный системой Google для заданной строки поиска "wget", направит нас прямо на страницу GNU-проекта, которая содержит нужные ссылки. После загрузки текущей версии в каталог /tmp мы распаковываем ее, задаем конфигурацию, компонуем и инсталлируем.

aix# cd /tmp; gunzip wget-1.11.4.tar.gz

aix# tar xfp wget-1.11.4. tar

aix# cd wget-1.11.4

aix# ./configure —disable-ssl —disable-nls # См. комментарии ниже

configure: configuring for GNU Wget 1.11.4

checking build system type… rs6000-ibm-aix

config.status: creating src/config.h

config.status: executing default commands

generating po/POTFILES from ./ро/POTFILES.in

creating po/Makefile

aix# make

<несколько страниц компиляционных сообщений>

aix# make install

<o странице выходных сообщений>

Приведенную последовательность команд инсталляции configure/make/make? install обычно применяют для большинства UNIX- и Linux-утилит во всех системах, но, безусловно, при наличии инсталлированной среды разработки и программ, составляющих заданный пакет. При этом будет не лишним прочитать файлы INSTALL или README, сопровождающие данный пакет.

В данном случае использование ключей —disable-ssl и —disable-nls в команде configure позволяет опустить некоторые wget-функции, входящие в состав библиотек, которые не были инсталлированы (при обслуживании реальной системы вам** возможно, захочется включить в инсталляцию опущенные здесь части пакета). Чтобы узнать все опции процесса конфигурации, используйте команду configure help. Обратите внимание на полезную опцию --prefiх=каталог команды configure, которая позволит вам поместить программное обеспечение не в каталог /usr/local, а в более подходящий для вас каталог.

 

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.