Linux: как инсталлировать программное обеспечение

Как устанавливать программы в LinuxВ дистрибутивах Linux программное обеспечение разделено на пакеты, которые можно инсталлировать независимо друг от друга. При установке системы на новый компьютер пользователь выбирает группу “стартовых” пакетов, копируемых в систему.

Подобный подход упрощает многие аспекты системного конфигурирования и является одним из ключевых преимуществ Linux в сравнении с традиционными разновидностями UNIX. К сожалению, он же усложняет задачу описания дистрибутивов, поскольку не всегда ясно, какие пакеты являются “частью” того или иного дистрибутива. Можно ли считать таковым пакет, если он есть на инсталляционном компакт-диске, но не устанавливается по умолчанию? А если он имеется на дополнительных компакт-дисках, которые прилагаются к “профессиональной” версии дистрибутива?

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

В первую очередь воспользуйтесь командой which, чтобы определить, “прописана” ли нужная утилита в строке поиска (переменная среды PATH). Например, следующая команда сообщает о том, что компилятор GNU C инсталлирован в каталоге /usr/sbin:

$ which gcc

/usr/bin/gcc

Если команда which не помогла, воспользуйтесь командой whereis, которая ведет поиск в системных каталогах без учета строки поиска. Учтите также, что в некоторых системах команда which не отображает файлы, для которых отсутствует право выполнения. Например:

$ which ipppd

/usr/bin/which: no ipppd in (/bin:/usr/bin:/sbin:/usr/sbin)

или:

$ whereis ipppd ipppd: /usr/sbin/ipppd $ ls -l /usr/sbin/ipppd

-rwx----- 1 root root 124924 Aug 3 2000 /usr/sbin/ipppd

Другой вариант — это чрезвычайно удобная команда locate, которая просматривает предварительно скомпилированный индекс файловой системы в поиске имен файлов, соответствующих заданному шаблону.

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

$ locate signal.h

/usr/include/asm/signal.h
/usr/include/linux/signal.h
/usr/include/signal.h
/usr/include/sys/signal.h

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

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

$ rpm -q python python-1.5.2-27

Если нужный пакет не инсталлирован, прежде всего, его следует поискать с помощью системы автоматического управления пакетами данного дистрибутива. Все дистрибутивы поддерживают ту или иную форму системы обновления старых и поиска новых пакетов в Internet. Наиболее распространенными системами являются yum и APT.

Например, в системе Debian, в которой использована APT, для получения и установки последней версии Python можно использовать следующую команду:

$ apt-get install python

Программное обеспечение для Linux создается независимыми группами разработчиков, выпускающих программы в виде исходных кодов. Авторы дистрибутивов затем берут исходные коды, компилируют их в соответствии с особенностями конкретной системы и включают в дистрибутив полученные бинарные файлы. Как правило, намного проще инсталлировать бинарную версию пакета, предназначенную для данного дистрибутива, чем искать и компилировать исходный код. Но нужно учитывать, что иногда авторы дистрибутивов на один-два выпуска отстают от текущей версии пакета.

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

Если поиск не дал результатов, посетите какой-нибудь Web-архив программ, например freshmeat.net, или просто введите имя пакета в поисковой системе Google.

Вас заинтересует / Intresting for you:

Команда man Linux: чтение стра...
Команда man Linux: чтение стра... 1432 просмотров Дэйзи ак-Макарова Sun, 11 Nov 2018, 09:36:51
Основа операционной системы Li...
Основа операционной системы Li... 3031 просмотров Андрей Волков Wed, 09 Jan 2019, 05:36:45
LILO и GRUB - выбираем и настр...
LILO и GRUB - выбираем и настр... 5912 просмотров Андрей Волков Thu, 22 Nov 2018, 15:21:00
Файловая система /proc в Linux
Файловая система /proc в Linux 1625 просмотров Fortan Fri, 22 Feb 2019, 06:05:18
Печать
Войдите чтобы комментировать

Oracle_Admin аватар
Oracle_Admin ответил в теме #9464 4 года 5 мес. назад
Хорошая заметка, - все по делу и предельно ясно)