Форматы пакетов для linux

Software packaging formats in Linux

This document summarizes major Linux software packaging formats.

Introduction

This guide is written for Ubuntu users that would like to learn more about common Linux packaging formats. This guide is not all-inclusive, it merely covers common formats likely to be encountered by average users. For information on installing software see the additional resources at the end of the article.

Formats

Debian packages (.deb)

Debian Packages are the most common format you will encounter when installing software in Ubuntu. This is the standard software packaging format used by Debian and Debian derivatives. All of the software in the Ubuntu repositories is packaged in this format. Synaptic Package Manager, Add/Remove Applications, Aptitude, and apt-get handle the transaction with the repository behind the scenes.

Tarballs

Tarballs are a large collection of files assembled into a single archive file. The «tar» command is used to combine many files into a single file for archiving or easy distribution. The «gzip» command is used to compress the size of a file so that it takes up less space. A tarball is very similar to a .zip file on Windows, or a .hqx, .sit, or .dmg file on Macs.

Tarballs have extensions like «.tar.gz», «.tar.bz2» or «TGZ». Most of the time, a tarball contains source files and/or binary files. In the open source community, they are used to distribute source code. If you find any software with a .tar.gz appendix, you will need to uncompress it by double clicking on it before installing the software it contains. To do the same thing from a terminal window, you can also use the tar command like this: tar -xzf name_of_file

Читайте также:  Установить kodi linux mint

Source files

Source files are nothing but raw code which requires compilation to work, while binary files are like .exe files which are ready to install.

Binary files

RPMs

The Red hat Package Manager or .RPM format is specifically designed for easy installation and management of software packages. The format allows you to automatically install, upgrade and remove software packages. It tracks dependencies — situations where one package requires another package in order to work correctly — and will not install software if it depends on another package which is not installed.

To convert RPM packages to Debian’s package format you can use the alien command. A warning for novice users: don’t use the alien method; if there are .deb packages available you should use them, since using a package designed for another distribution might inadvertently damage or destabilize your system.

Additional resources

SoftwarePackagingFormats (последним исправлял пользователь vpn-3206 2011-05-10 21:16:17)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Источник

Пакеты

Система Linux состоит из множества программ и утилит. Каждый компонент системы Linux представлен в виде пакета.

Программные пакеты в Linux

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

Архив файлов

Первой задачей пакетирования является объединение всех файлов, используемых программой (набором утилит), в один файловый архив. Это позволяет не копировать при установке программы все файлы по отдельности, а потом не удалять их таким же способом, а работать со всеми данными программы как с единым целым — устанавливать и удалять один пакет.

Формат пакета

В системе Linux существует несколько форматов пакетов.

Одним из самых распространенных форматов пакетов является rpm, используемый в дистрибутивах Fedora Core, Mandriva, ALT Linux. Пакет в формате rpm представляет собой единый файл со всеми необходимыми данными. Для установки, удаления, обновления и проверки пакетов в формате rpm используется программа-установщик, называемая rpm.

Читайте также:  Linux view all network interfaces

В Debian используется формат deb и утилита-установщик dpkg. В Slackware Linux используется формат tgz и установщик pkgtool, а в CRUX — pkg.tar.gz с утилитой pkgadd, то есть пакеты представляют собой обычные файловые архивы tar, сжатые упаковщиком gzip.

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

Несмотря на некоторые различия, дистрибутивы Linux представляют собой варианты одной и той же системы, поэтому в конечном итоге любую программу, работающую в одном дистрибутиве, можно „приспособить“ к любому другому. Только для этого нужно располагать исходными текстами соответствующей программы, т.е. в данном случае необходим пакет, содержащий исходные тексты программ. Доступность исходных кодов — обязательное условие распространения большей части программного обеспечения для Linux. При отсутствии готового пакета со скомпилированными файлами можно установить исходный пакет и скомпилировать программу самостоятельно. При успешной компиляции из исходного пакета получается соответствующий двоичный, который уже можно установить в системе.

Зависимости

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

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

Читайте также:  Включить bluetooth kali linux

Конфликты файлов пакетов

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

Установщики пакетов

Для выполнения всех операций над пакетами требуется специальная программа — установщик пакетов. В ее задачи входит весь цикл работ с пакетом: от создания пакета (компиляции исходного пакета в двоичный), до его установки, удаления, обновления, а также хранение и вывод по запросу пользователя или системы информации об установленных и неустановленных пакетах, принадлежащих им файлах.

Менеджеры пакетов

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

Наиболее известным и популярным менеджером пакетов является APT (Advanced Package Tool). Первоначально он был разработан в рамках дистрибутива Debian и работал только с установщиком пакетов dpkg, впоследствии для других дистрибутивов была разработана версия, работающая с rpm.

Кроме APT, есть еще несколько менеджеров пакетов. Большинство из них специфичны для определенного дистрибутива, как, например, emerge для Gentoo или YaST для SuSE. Их задачи и возможности примерно совпадают сAPT.

Источник

Оцените статью
Adblock
detector