Linux как узнать какой менеджер пакетов. Что такое пакетные менеджеры и зачем их использовать. DPKG - система управления пакетами Debian

свободного программного обеспечения . Аббревиатура GNU открывается рекурсивно - GNU"s Not Unix, т. е. то, что принадлежит проекту GNU, не является частью Unix (потому что к тому времени даже само слово UNIX уже было зарегистрированной товарной маркой, т. е. перестало быть свободным). В "Манифесте GNU", который был написан в 1985 г., Р. Столлман в качестве главной движущей силы, которая привела к возникновению FSF и проекта GNU, ставит свое неприятие прав собственности отдельных людей на программное обеспечение.

То, что разрабатываемое в рамках проекта GNU ПО свободно, не означает, что оно распространяется без лицензии и никак не защищено в юридическом смысле. Программы, разрабатываемые в рамках движения Open Source , распространяются на условиях лицензии General Public License(GPL). Если сказать очень кратко, то суть этой лицензии состоит в следующем. Программное обеспечение, распространяемое под этой лицензией, можно как угодно дорабатывать, модифицировать, передавать или продавать другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией copyleft . Последнее условие - самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Говоря словами создателей FSF , лицензия GPL "делает ПО свободным и гарантирует, что оно останется свободным".

Практически все ПО, распространяемое на условиях GPL, является почти бесплатным для пользователей (в большинстве случаев для того, чтобы получить его, Вы должны заплатить только за CD-ROM-диск с ПО или за трафик выхода в Интернет). Это не означает, что программисты перестают получать вознаграждение за свой труд. Основная мысль Р. Столлмана состоит в том, что нужно продавать не программное обеспечение, а труд программиста как такового. Например, источником дохода может быть сопровождение программных продуктов или их установка и конфигурация для внедрения на новых компьютерах и/или в новых условиях, преподавание и т. д. Хорошим вознаграждением может быть и получение автором свободных программ определенной известности, которая позволит ему в последующем получить высокооплачиваемую работу.

В рамках движения Open Source , и в частности проекта GNU, было разработано значительное количество программ, наиболее известными из которых являются редактор Emacs и компилятор GCC (GNU C Compiler) - самый лучший и по сей день компилятор языка C. Открытость исходных кодов программ оказывает очень благотворное влияние на качество программного обеспечения: все лучшее, все новые идеи и решения сразу же широко распространяются, а все ошибки замечаются и быстро устраняются. Начинает работать механизм естественного отбора, который подавлен в том варианте подхода к распространению программ, который практикуется в коммерческом ПО.

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

Р. Столлман, конечно, прав, когда настаивает на том, что операционная система Linux должна называться GNU/Linux. Но так уж сложилось, что название ядра стало служить названием всей операционной системы, и мы в этой книге будем поступать так же.

Основные характеристики ОС Linux

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

Реальная многозадачность

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

Многопользовательский доступ

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

Что такое менеджер пакетов?

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

Зачастую, пакет представляет собой просто отдельную программу. Например, клиент мгновенных сообщений gaim находится в пакете Debian с таким же именем. С другой стороны, для программ вполне нормально состоять из нескольких взаимосвязанных пакетов. Например, графический редактор gimp состоит не только из пакета gimp , но и из пакета gimp-data ; так же доступны необязательные пакеты с дополнениями (содержащими эзотерические данные, документацию и т.д.). Несколько небольших связанных программ могут входить в один пакет, например, пакет fileutils содержит несколько общих команд Unix, таких как ls , cp и т.д.

Некоторым пакетам для работы требуются другие пакеты. В Debian пакеты могут зависеть от других пакетов, рекомендовать , предлагать , ломать их или конфликтовать с ними.

    Если пакет A зависит от другого пакета B, то B требуется для правильной работы A. Например, пакет gimp зависит от пакета gimp-data , поскольку необходимо гарантировать, что графическому редактору GIMP доступны необходимые файлы данных.

    Если пакет A рекомендует другой пакет B, то пакет B предоставляет важную дополнительную функциональность пакету A, которая желательна в большинстве случаев. Например, пакет mozilla-browser рекомендует пакет mozilla-psm , который добавляет поддержку безопасной передачи данных веб-браузеру Mozilla . В то время как пакет mozilla-psm не строго требуется для работы Mozilla, большинство пользователей хотят, чтобы Mozilla поддерживал безопасную передачу конфиденциальных данных (таких как номера кредитных карт).

    Если пакет A предлагает другой пакет B, то пакет B предоставляет функциональность, которая может улучшить пакет A, но не является необходимой в большинстве случаев. Например, пакет kmail предлагает пакет gnupg , содержащий программу для шифрования, которая может использоваться KMail .

    Если пакет A конфликтует с другим пакетом B, то эти два пакета не могут быть установлены одновременно. Например, пакет fb-music-hi конфликтует с пакетом fb-music-low , поскольку они предоставляют альтернативные наборы музыки для игры Frozen Bubble .

Работа менеджера пакетов заключается в предоставлении интерфейса, который помогает пользователю в управлении набором пакетов, установленных в его или её системе. aptitude предоставляет такой интерфейс на основе системы управления пакетами apt .

Иногда может возникнуть вопрос: чьих этот файл, откуда вообще взялась эта библиотека ? Удобный менеджер пакетов решает очень многие проблемы ОС. Можно с уверенностью сказать, что если вы подружитесь с МП, то подружитесь и с дистрибутивом как таковым. Причем важно освоить именно набор основных команд, и знать где найти дополнительную информацию.


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

Debian и родственные

Популярность и образ дружественного к пользователю Linux дистрибутива сыграли с Ubuntu злую шутку. Некоторым новичкам кажется, что можно на нем делать все, что угодно без помощи командной строки. Это заблуждение и лучше от него поскорее избавиться.


То, что в примерах aptitude не значит, что он правильнее, чем apt-get . Для меня это всего лишь дело привычки.


$ aptitude install package #установить пакет; $ aptitude safe-upgrade package #обновить пакет; $ aptitude update #проверить и установить обновления; $ aptitude remove package #удалить пакет; $ aptitude purge package #удалить пакета с концами, все данные и настройки; $ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает! $ aptitude search package #искать пакет. $ apt-cache depends package #зависимости пакета; $ apt-cache rdepends package #обратные зависимости от пакета.

Некоторые функции доступны с дополнительным МП dpkg .


$ dpkg -l #список установленных программ; $ dpkg -L package #список файлов пакета

Иногда может возникнуть вопрос: чьих этот файл, откуда вообще взялась эта библиотека ? Удобный менеджер пакетов решает очень многие проблемы ОС. Можно с уверенностью сказать, что если вы подружитесь с МП, то подружитесь и с дистрибутивом как таковым. Причем важно освоить именно набор основных команд, и знать где найти дополнительную информацию.


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

Debian и родственные

Популярность и образ дружественного к пользователю Linux дистрибутива сыграли с Ubuntu злую шутку. Некоторым новичкам кажется, что можно на нем делать все, что угодно без помощи командной строки. Это заблуждение и лучше от него поскорее избавиться.


То, что в примерах aptitude не значит, что он правильнее, чем apt-get . Для меня это всего лишь дело привычки.


$ aptitude install package #установить пакет; $ aptitude safe-upgrade package #обновить пакет; $ aptitude update #проверить и установить обновления; $ aptitude remove package #удалить пакет; $ aptitude purge package #удалить пакета с концами, все данные и настройки; $ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает! $ aptitude search package #искать пакет. $ apt-cache depends package #зависимости пакета; $ apt-cache rdepends package #обратные зависимости от пакета.

Некоторые функции доступны с дополнительным МП dpkg .


$ dpkg -l #список установленных программ; $ dpkg -L package #список файлов пакета

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

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

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

Главная цель, предоставить основную информацию об этих пакетных менеджерах, но об их использовании будет сказано только несколько слов.

1. DPKG - система управления пакетами Debian

Dpkg - это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о.deb пакетах.

Это инструмент низкого уровня и есть дополнительные утилиты, которые помогают пользователям устанавливать пакеты из репозиториев, разрешать зависимости и искать пакеты по названию. Это такие программы, как:

APT (Advanced Packaging Tool)

Очень популярный, мощный инструмент командной строки с открытым исходным кодом для управления пакетами, который намного увеличивает возможности dpkg. Эта утилита используется в Debian и его производных, таких как Ubuntu, Linux Mint.

Aptitude Package Manager

Это еще одна популярная утилита командной строки для управления пакетами в Debian. Она работает аналогично Apt, но между ними есть некоторые различия. Первоначально он был разработан для Debian, но сейчас может применяться и в Red Hat дистрибутивах.

Synaptic Package Manager

Synaptic - это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.

2. RPM (Red Hat Package Manager)

Это базовый формат и система управления пакетами, созданная в компании Red Hat. Так же как и dpkg, это низкоуровневый инструмент, для которого существует несколько утилит, это такие пакетные менеджеры linux:

YUM (Yellowdog Updater, Modified)

Это популярный менеджер пакетов linux с открытым исходным кодом для командной строки. Он используется для управления пакетами в дистрибутиве Red Hat. Если сравнивать с инструментом apt, то здесь есть все те же функциональные возможности, правда, работает немного медленнее. Написан на Python 2. Немного больше об отличиях формата пакетов можно прочитать в отдельной статье.

DNF – Улучшенный Yum

Это пакетный менеджер linux, используемый в дистрибутиве Fedora начиная с версии 18. Он представляет из себя следующее поколение YUM.

Сначала он был создан только для экспериментов, но начиная с Fedora 22 он используется как пакетный менеджер по умолчанию. Он работает почти также как и YUM, для разрешения зависимостей используется библиотека libsolv и hawkey, но отличие от YUM, написан на Python 3. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.

3. Pacman - менеджер пакетов Arch Linux

Этот менеджер пакетов linux разработан командой программистов для дистрибутива ArchLinux. Сейчас, кроме ArchLinux, он используется в Manjaro и еще нескольких малоизвестных дистрибутивах, основанных на ArchLinux.

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

Программа специально спроектирована для удобной работы с пакетами в Arch Linux. А поскольку это система с режимом выпуска в виде роллинг релизов, то этот пакетный менеджер подходит наилучшим образом. Pacman поддерживает систему в актуальном состоянии синхронизируя списки пакетов из основного сервера. Причем существует только одна версия системы - текущая.

Программа написана на Си, а в качестве пакетов используются файлы формата tar.xz, которые на самом деле являются обычными архивами, внутри которых находятся файлы программы и файл описания установки PKGBUILD.

4. Zypper - пакетный менеджер OpenSUSE

Это пакетный менеджер linux для командной строки в дистрибутиве OpenSUSE и SUSE Linux. Разработан специально для этого дистрибутива и использует библиотеку libzypp, в которой реализованы такие общие возможности, как доступ к репозиторию, установка пакетов, разрешение зависимостей, работа с репозториями и многое другое.

Zypper написан на Си и работает намного быстрее чем Yum. Поддерживает различные форматы репозиториев, а также расширения репозиториев. Поддерживается как обычное обновление, так и обновление патчами, во время которого только накладываются патчи на установленные пакеты для исправления проблем с безопасностью.

5. Portage - пакетный менеджер Gentoo

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

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

Выводы

Как я уже говорил, основная цель статьи - обзор пакетных менеджеров linux, познакомить пользователей с лучшими пакетными менеджерами, а также показать отличия между ними. Конечно, пользователям определенного дистрибутива придется изучать свой менеджер пакетов более детально. Если я упустил важный момент, об одной из программ, напишите в комментариях!