К основному контенту

LINUX. Как устанавливать программы?


Пришедшие в Linux бывшие пользователи ОС Windows пытаются использовать свои старые привычки. В том числе, и в установке программного обеспечения. Часто новички задаются вопрос о том, как запустить в Linux .exe файл, чтобы установить любимый Photoshop. Между тем, установка ПО в операционных системах семейства *nix достаточно сильно отличается. Поговорим об этом.
В *nix-системах программное обеспечение распространяется в так называемых пакетах, которые могут быть установлены отдельно друг от друга. Инсталлируя на компьютер новую ОС, пользователь обладает возможностью выбора групп пакетов, которые с самого начала будут установлены в системе.

Подобный подход упрощает администрирование и является одним их конкурентных преимуществ систем *nix не только перед Microsoft Windows, но и перед рядом систем UNIX-семейства.
Этот же подход порождает неразбериху в деле описания дистрибутивов. В данном случае, совершенно непонятно, что считать, а что не считать частью той или иной операционной системы. Например, пакет java присутствует на установочном диске, но не ставится по умолчанию. Входит ли он в дистрибутив? А если этот пакет можно скачать после установки из репозитария?
Оговоримся, что мы будем рассматривать тот или иной дистрибутив в его стандартной инсталляции. Но если мы будем говорить, что такой-то пакет не устанавливается по умолчанию, это не значит, что его вообще нет.
Для того чтобы узнать, есть ли необходимый пакет в системе, в первую очередь, следует использовать команду which, которая помогает выяснить, указана ли нужная команда в переменной среды PATH.

Пример.

Пакет установлен:

[ilya@localhost ~]$ which firefox
/usr/bin/firefox

Пакет не установлен:

[ilya@localhost ~]$ which flick
which: no flick in (/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/usr/bin:/opt/kde3/bin:/home/ilya/bin)

Если данная команда which не нашла утилиты, это еще не означает, что ее вообще нет в системе. Можно воспользоваться командой whereis, которая ищет нужные файлы во всех системных каталогах. В ряде дистрибутивов эта команда не находит файлы, не помеченные как исполняемые.

[ilya@localhost ~]$ whereis ppp
ppp: /etc/ppp
[ilya@localhost ~]$ whereis pptp
pptp: /usr/sbin/pptp /etc/pptp.d

Можно воспользоваться не менее эффективной командой locate, которая проводит поиск в специально собранном файле-индексе файловой системы в соответствии с маской, заданной пользователем дистрибутива. Она способна проводить поиск не только утилит или пакетов, но и файлы практически любых других типов, находящихся в системе.
Например, вы хотите узнать, где находится файл rc.local, но не хотите перебирать все папки в системном разделе. Тогда команда будет выглядеть так:

[ilya@localhost ~]$ locate rc.local
/etc/rc.local
/etc/rc.d/rc.local

Как видите, система нашла целых два файла с таким названием.
Недостаток команды locate вытекает из ее достоинства: она проводит поиск по базе, которая пересоздается ночью командой updatdb, приводимую в действие демоном cron. Поэтому новые файлы не могут быть найдены, пока база не будет пересоздана. Если вы точно знаете, что файлы в системе есть — ничто не мешает вам регенерировать базу командой udatedb вручную. Команда должна запускаться от имени суперпользователя (root).
Если имя искомого пакета известна, вы можете воспользоваться инструментами более высокого уровня: системами управления пакетами. В дистрибутивах, основанных на rpm (Red Hat, Fedora, OpenSuSE, Mandriva, CentOS и других), наличие пакета можно проверить одноименной командой:

[ilya@localhost ~]$ rpm -q kppp
kppp-4.1.3-1.1mdv2009.0
[ilya@localhost ~]$ rpm -q java
пакет java не установлен

Если пакет не установлен, его можно найти в репозитарии дистрибутива. Для этого необходимо воспользоваться системой управления пакетами. Все разработанные системы могут установить и обновить пакеты из репозитария дистрибутива, но наиболее распространенными и развитыми являются три системы: yum, APT и urpmi.
Для того чтобы установить java в дистрибутиве Debian GNU/Linux, необходимо в консоли под root набрать следующую команду:

[root@localhost ~]# apt-get install java

В Mandriva аналогом APT является urpmi:

[root@localhost ilya]# urpmi java

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

Если вам крайне необходим функционал, отсутствующий в версии, находящейся в репозитарии, придется самостоятельно собирать программное обеспечение из исходных кодов. Такая необходимость возникает достаточно редко, но вероятность ее возникновения отлична от нуля, а значит, научиться собирать пакеты необходимо.

Процесс сборки пакетов будет описан в следующих статьях цикла.
Стоит сделать еще одно замечание: даже если разные дистрибутивы используют пакеты rpm, это не означает, что пакеты из одной системы подойдут к другой. Инсталлируя пакеты, к примеру, принадлежащие OpenSuSE в Mandriva, вы рискуете получить неработоспособную систему, потому что иерархия их файловых систем неодинакова и зависимости пакетов различаются.
Пакеты, отсутствующие в репозитариях, можно попробовать поискать в различных интернет-хранилищах. Таких, например, как rpmfind.net, или воспользоваться сервисом Google для поиска информации, связанной с Linux: http://www.google.com/linux.

Образовательный портал WebTeach.Ru

Комментарии

Популярные сообщения из этого блога

Три типа мышления - мифологическое, религиозное, научное

Оригинальное название: Различные типы мышления (мифологическое, религиозное, научное) и их влияние на базовые космологические понятия в культуре и в онтогенезе, на педагогический и воспитательный процессы. Нами выделяется три типа мышления: мифологическое, религиозное и научное - в процессе развития, как социальных сообществ, так и развития ребенка. При этом, когда говорится о первенстве того или иного типа мышления, подразумевается его преобладание над двумя другими в том или ином социальном сообществе или у конкретного человека в тот или иной возрастной период. Как отмечал еще знаменитый отечественный физиолог Павлов, различные участки коры головного мозга усиливают свою деятельность в разных возрастах. Под мифологическим типом мышления мы понимаем преобладание мышления, связанного с цельным космогоническим мировоззрением, оценкой ситуаций в целом и рассмотрение мироздания как некого целостного организма. При развитии данного типа мышления преобладает решение стратегических

Синхронизация "Дни рождения контактов" Android с Google Calendar

Дни рождения в календаре Android или как сделать так, чтобы в календаре отображались дни рождения контактов.  Суть проблемы: отсутствие таких очевидных вещей, как отображение дней рождений контактов в календаре и соответственно не получаете уведомлений об их наступлении.. Способов решения масса, иногда поморгает синхронизация с Outlook (контакты и календарь), но можно и воспользоваться Google Calendar - для этого необходима учётная запись Google (Gmail). 

Ричард Бах. Письмо от богобоязненного человека

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