Linux: способы поиска и установки программного обеспечения

Как установить ПО в Линуксе?

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



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

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

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

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

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

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

Определение того, установлено ли уже программное обеспечение

По разным причинам может быть немного сложно определить, какой пакет содержит программное обеспечение, которое вам действительно нужно. Вместо того, чтобы начинать с уровня пакета, проще использоватькакая команда, чтобы узнать, есть ли соответствующий двоичный файл в вашемпуть поиска. Например, следующая команда показывает, что компилятор GNU C уже установлен на этой машине:

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

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

FreeBSD включаетнайти как часть базовой системы. В Linux текущая реализация locate находится в пакете mlocate. В Red Hat и CentOS установите пакет mlocate с помощью yum; см. эту страницу .

locate может найти любой тип файла; это не относится к командам или пакетам. Например, если вы не знали, где найти включаемый файл signal.h, вы можете попробовать

база данных locate периодически обновляетсяupdateb (в FreeBSD — locate.updatedb), которая периодически запускается из cron. Поэтому результаты поиска не всегда отражают последние изменения в файловой системе.

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

Вы также можете узнать, к какому пакету принадлежит тот или иной файл:

Добавление нового программного обеспечения

Если вам необходимо установить дополнительное программное обеспечение, сначала необходимо определить каноническое имя соответствующего программного пакета. Например, вам нужно будет перевести «Я хочу установить locate» на «Мне нужно установить пакет mlocate» или перевести «Мне нужно named» на «Мне нужно установить BIND». В этом могут помочь различные системные индексы в Интернете, но Google обычно не менее эффективен. Например, поиск по запросу «locate command» приведет вас сразу к нескольким релевантным обсуждениям.

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

Debian и Ubuntu используют APT, инструмент Debian Advanced Package Tool:

Версия Red Hat и CentOS

Менеджер пакетов для FreeBSD называется pkg.

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

В качестве иллюстрации, вот как вы создаете версию tcpdump из исходного кода.

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

Источник tcpdump остается включеннымГитхаб. Клонируйте репозиторий в каталоге /tmp, создайте ветку помеченной версии, которую вы хотите собрать, затем распакуйте, настройте, соберите и установите ее:

Эта последовательность configure/make/make install является общей для большинства программ, написанных на C, и работает во всех системах UNIX и Linux. Всегда полезно проверить подробности в файле INSTALL или README пакета. У вас должна быть установлена ​​среда разработки и все необходимые компоненты для пакетов. (В случае tcpdump обязательными условиями являются libpcap и его библиотеки.)

Вам часто нужно настроить конфигурацию сборки, поэтому используйте ./configure --help, чтобы увидеть параметры, доступные для каждого конкретного пакета. Другой полезный параметр конфигурации — --prefix=directory, который позволяет скомпилировать программное обеспечение для установки в другое место, кроме /usr/local, которое обычно используется по умолчанию.

Установка из веб-скрипта

Пакеты межплатформенного программного обеспечения все чаще предлагают ускоренный процесс установки, управляемый сценарием оболочки, который вы загружаете из Интернета с помощьюзавиток,принести илиwget. Все это простые HTTP-клиенты, которые загружают содержимое URL-адреса в локальный файл или, при необходимости, выводят содержимое на стандартный вывод. Например, чтобы настроить машину в качестве клиента Salt, вы можете запустить следующие команды:

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

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

Будьте очень подозрительны, если URL-адрес загрузочного скрипта не является безопасным (то есть он не начинается с https:). Незащищенный HTTP легко взломать, а установочные URL-адреса представляют особый интерес для хакеров, потому что они знают, что вы, скорее всего, запустите от имени пользователя root любой возвращаемый код. Напротив, HTTPS проверяет подлинность сервера через криптографическую цепочку доверия. Не безотказный, но достаточно надежный.

Несколько поставщиков публикуют URL-адрес установки HTTP, который автоматически перенаправляет на версию HTTPS. Это глупо и на самом деле не более безопасно, чем обычный HTTP. Нет ничего, что могло бы предотвратить перехват начального HTTP-обмена, поэтому вы можете никогда не достичь перенаправления поставщика. Однако наличие таких перенаправлений означает, что стоит попробовать собственную замену https на http в небезопасных URL-адресах. Чаще всего это работает просто отлично.

Оболочка принимает текст сценария на свой стандартный ввод, и эта функция обеспечивает аккуратные однострочные процедуры установки, такие как следующие:

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

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

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

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

Сигналы в Linux: назначение и ...
Сигналы в Linux: назначение и ... 1741 просмотров Fortan Fri, 05 Nov 2021, 07:58:01
Основа операционной системы Li...
Основа операционной системы Li... 2231 просмотров Андрей Волков Wed, 09 Jan 2019, 05:36:45
Процессы Linux
Процессы Linux 3736 просмотров Doctor Wed, 23 Jan 2019, 16:47:24
Краткая история Linux
Краткая история Linux 2214 просмотров Андрей Волков Wed, 09 Jan 2019, 02:46:59
Войдите чтобы комментировать

VaaPa аватар
VaaPa ответил в теме #10869 3 нед. 20 ч. назад
Хорошие рекомендации. Благодарю!