Формат deb что это
DEB – Пакет программного обеспечения Debian (Debian Software Package)
Расширение DEB
Чем открыть файл DEB
В Windows: 7-Zip, WinArchiver, ZipZag, PeaZip
В Linux: Debian package management system, Synaptic Package Manager, Adept, GDebi, Alien
В Apple iOS (iPhone, iPad, iPod): Cydia, Jailbreak
Описание расширения DEB
Популярность:
Раздел: Архивы
— debian-binary – версия формата deb файла. Для нового формата стоит «2.0»
— control.tar.gz – информация о пакете
— data.tar.gz или data.tar или data.tar.lzma или data.tar.bz2 – устанавливаемые файлы
DEB – это сокращение от Debian, что в свою очередь произошло от Debra – это имя подруги и от его собственного имени Ian (Ян Мердок).
Файл DEB используется в операционной системе Debian Linux и ее производных (Ubuntu, Edubuntu, Kubuntu, PCLinuxOS) в качестве основного источника инсталляционных пакетов.
Используйте терминал или инструмент управления программами в Linux, чтобы открыть или устанавить программу из пакета DEB. Чтобы установить *.DEB необходимо использовать терминал Linux и написать следующую команду:
Файлы DEB могут быть извлечены некоторыми архиваторами, такими как 7-Zip или конвертированы в другой пакет установки с помощью специализированных программ Linux, например, таких как alien. Создать файл deb можно с помощью утилит dpkg или dpkg-buildpackage.
iPhone Jailbreak (iOS Jailbreak) – это программа, которая удаляет официальное ограничение на IOS устройствах. Одним из таких ограничений является установка новых приложений только через Apple App Store.
Cydia использует собственный репозиторий приложений, которые содержат оба типа приложений – и бесплатные, и платные. Приложения в репозиториях Cydia не хранятся в виде файла приложения IPA, который использует App Store, а хранится в DEB-пакетах. Пакет прикладных программ DEB использует аналогичный формат файла как и пакеты DEB Debian.
Файлы приложения DEB так же установлены на Jailbreak iPhone (или другие устройства JB IOS) из Cydia через консоль SSH.
Создание deb пакетов
В этой статье мы рассмотрим как собрать deb пакет для своей программы без использования каких-либо сторонних инструментов. Мы не будем рассматривать подпись пакетов для репозиториев, потому что для каждого вида репозиториев команды будут отличаться.
Создание deb пакетов
Шаг 1. Подготовка
Давайте создадим для этого примера небольшую программу на Си. Она будет называться hellolosst и будет выводить на экран строку Hello from losst.ru в терминал при запуске. Сначала создайте папку hellolosst и перейдите в неё:
mkdir hellolosst
cd hellolosst
Затем поместите в неё файл с исходным кодом:
#include
int main() <
printf(«Hello from losst.ru\n»);
>
Для компиляции программы выполните такую команду:
Затем вы можете её выполнить:
Таким образом, теперь у нас есть программа, которую надо упаковать в deb пакет.
2. Создание манифеста
В каждом deb пакете содержаться не только файлы самой программы, но и файл манифеста, в котором описан пакет, его зависимости и параметры. Этот файл имеет название control и должен находится в папке DEBIAN. Для сборки пакета будем использовать папку package, чтобы файлы программы не путались с исходными файлами и те не попали в пакет. Создайте эти папку:
Прежде чем вы сможете создать этот файл надо узнать несколько вещей. Первым делом надо посмотреть размер файлов программы, поскольку в данном случае файл один, достаточно посмотреть его размер:
Если файлов несколько, то можно удалить исходники и посмотреть общий размер папки с файлами программы. Дальше надо понять от каких пакетов будет зависеть ваша программа. Для этого воспользуйтесь командой objdump:
В данном случае программе необходима только libc. Чтобы посмотреть в каком пакете она находится выполните:
Пакет называется libc6. Затем создайте файл манифеста со следующим содержимым:
Это минимальный набор параметров в файле манифеста. Вот их значение:
3. Расположение файлов
Манифест готов. Теперь в папке пакета надо создать структуру папок, аналог того, что есть в корневой файловой системе. В данном случае надо создать папку usr/bin и поместить туда исполняемый файл:
4. Скрипты установки
#!/bin/bash
echo «Hello from losst installed»
Разработчики Debian не рекомендуют использовать эти скрипты без крайней надобности, поскольку они дают вам полный контроль над системой пользователя и вы можете случайно что-то повредить. Обычно эти скрипты используются для того чтобы задавать пользователям вопросы и на основе этого генерировать конфигурационные файлы.
5. Сборка и проверка пакета
Осталось собрать настроенный пакет. Для этого используйте такую команду:
Теперь вы знаете как как собрать deb пакет. После завершения сборки можете установить его с помощью apt:
После этого исполняемый файл программы появится в /usr/bin, а сообщение из postinst будет выведено после установки.
Выводы
В этой небольшой статье мы рассмотрели как выполняется создание deb пакета с помощью инструмента dpkg-deb. Как видите, всё очень просто. Вам достаточно написать манифест и расположить файлы там, где они должны быть. Мы рассмотрели здесь только самые основы. На самом деле создание пакетов намного сложнее. Существует целый набор утилит debhelpers, которые используются на различных этапах сборки и установки deb пакетов, подробнее обо всём этом вы можете прочитать в официальной документации.
3 способа установить deb файлы на Ubuntu Linux
В этой статье для начинающих объясняется, как устанавливать deb-пакеты в Ubuntu. Также показано, как впоследствии удалить эти пакеты deb.
Это еще одна статья в серии новичков Ubuntu. Если вы абсолютно новичок в Ubuntu, вы можете поинтересоваться, как устанавливать приложения. Самый простой способ — использовать Ubuntu Software Center. Найдите приложение по его имени и установите его оттуда.
Жизнь была бы слишком простой, если бы вы могли найти все приложения в Центре программного обеспечения. Но этого не происходит, к сожалению.
Вы можете найти эти пакеты DEB в разделе загрузки на сайте поставщика программного обеспечения. Например, если вы хотите установить Google Chrome в Ubuntu, вы можете загрузить пакет DEB для Chrome со своего веб-сайта.
Теперь возникает вопрос, как установить файлы deb? Существует несколько способов установки пакетов DEB в Ubuntu. Я покажу их вам один за другим в этом уроке.
Вы можете выбрать инструмент GUI или инструмент командной строки для установки пакета deb. Выбор за вами.
Давайте посмотрим, как установить deb файлы.
Способ 1: использование программного центра по умолчанию
Откроется центр программного обеспечения, и вы должны увидеть возможность установки программного обеспечения. Все, что вам нужно сделать, это нажать кнопку установки и ввести свой пароль для входа.
Способ 2. Использование приложения Gdebi для установки пакетов deb с зависимостями.
Опять же, жизнь была бы намного проще, если бы все прошло гладко. Но это не жизнь, как мы ее знаем.
Что происходит, так это то, что программа может зависеть от другого программного обеспечения (библиотек). Когда разработчик готовит пакет DEB для вас, он / она может предположить, что ваша система уже имеет эту часть программного обеспечения в вашей системе.
Но если это не так, и ваша система не имеет необходимых компонентов программного обеспечения, вы столкнетесь с печально известной «ошибкой зависимости».
Центр программного обеспечения не может самостоятельно обрабатывать такие ошибки, поэтому вам придется использовать другой инструмент под названием gdebi.
gdebi — это легкое приложение с графическим интерфейсом, единственная цель которого — установить пакеты deb.
Лично я предпочитаю gdebi центру программного обеспечения для установки файлов deb. Это легкое приложение, поэтому установка кажется быстрее. Вы можете прочитать подробно об использовании gDebi и сделать его по умолчанию для установки пакетов DEB.
Вы можете установить gdebi из центра программного обеспечения или используя команду ниже:
Способ 3: установить deb файлы в командной строке с помощью dpkg
Если вы хотите установить deb файлы в команде lime, вы можете использовать команду apt или dpkg. Команда Apt на самом деле использует команду dpkg, но apt более популярна и проста в использовании.
Если вы хотите использовать команду apt для файлов deb, используйте ее следующим образом, где /path/to/file.deb — путь до вашего deb-файла:
Если вы хотите использовать команду dpkg для установки пакетов deb, вот как это сделать:
Если при установке пакетов deb вы получили ошибку зависимости, вы можете использовать следующую команду для устранения проблем зависимости:
Как удалить пакеты deb
Удаление пакета deb не имеет большого значения. И нет, вам не нужен оригинальный файл deb, который вы использовали для установки программы.
Способ 1: удаление пакетов deb с помощью команд apt
Все, что вам нужно, это имя программы, которую вы установили, и затем вы можете использовать apt или dpkg, чтобы удалить эту программу. Для этого введите вот эту команду, где program_name название программы, которую вы хотите удалить.
Теперь возникает вопрос, как найти точное имя программы, которое нужно использовать в команде удаления? У команды apt есть решение и для этого.
Команда grep удалит из вывода все строки, в которых нет слова grid и мы получим только то, что нас интересует. То есть в данном случае вместо большого списка будет только та строка, которая интересует. Это намного проще, чем искать глазами, правда?
Как видите, установлена программа appgrid. Теперь вы можете использовать это имя программы с командой apt remove.
Способ 2: удалить пакеты deb с помощью команд dpkg
Вы также можете использовать dpkg, чтобы найти имя установленной программы:
Вывод выдаст все установленные пакеты, которые содержат слово grid:
ii в приведенной выше команде вывод означает, что пакет был правильно установлен.
Теперь, когда у вас есть имя программы, вы можете использовать команду dpkg, чтобы удалить ее:
Я надеюсь, что это руководство для начинающих помогло вам установить deb файлы в Ubuntu. Я добавил часть удаления, чтобы вы могли лучше контролировать установленные вами программы.
Более подробно о deb-пакетах вы можете почитать на официальном сайте Debian тут.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Системное администрирование и мониторинг Linux/Windows серверов и видео CDN
Статьи по настройке и администрированию Windows/Linux систем
Создание и редактирование deb пакетов
Хотел бы навести маленькую статью заметку о том, как можно редактировать (вносить изменения) deb пакеты. Рано или поздно каждый администратор сталкивается с нуждой сборки или редактирования установочных пакетов. К примеру, мы используем pound в роли фронт-енда для https. По умолчанию, он пишет все логи в syslog.log, и для того, чтобы он писал в свой собственный файл, нужно внести изменения не только в pound, но и в syslog конфигурацию. Плюс нужно добавить ротейт логов. Чтобы каждый раз не проделывать все изменения после установки, мы можем добавить все нужные файлы конфигураций и папки в deb-пакет pound-а, и уже устанавливать его вместо репозиторного.
Будем редактировать pound под дистрибутивом Ubuntu 16.04.
Для того, чтобы загрузить пакет из репозитория без установки можно использовать следующею команду.
После этого, у нас в рабочей директории появиться пакет pound.
Посмотрим из каких файлов состоит этот пакет.
Мы хотим, чтобы pound писал логи в папку /var/log/pound. Также нужно сразу добавить logrotate для этой папки, чтобы лог-файлы не росли до заоблачных размеров.
Следовательно, нам нужно добавить в deb пакет папку с логфайлом, конфигурацию для logrotat-а и конфигурацию для syslog.
Распакуем deb пакет.
Теперь переходим в новосозданную папку и добавляем все нужных папки и конфигурации.
Для начала добавляем папку для логов
Далее добавляем конфигурацию для logrotate.
Теперь добавим конфигурацию для syslog (чтобы pound писал в свой файлик).
Осталось только подправить конфигурация самого pound-а.
На этом приготовления завершены. Теперь нужно добавить описание для нашего пакета (control-information есть обязательным для всех deb пакетов). Его можно извлечь из скаченного пакета и обязательно поместить в нашу с именем DEBIAN.
Также, извлечь информацию о пакете и дерево файлов можно было одной командой:
Теперь редактируем DEBIAN/control файл.
Также добавим m5sum каждого добавленного файла.
Теперь осталось собрать новый пакет (название пакета я изменил просто для примера).
Посмотрим какие файлы в нашем новом пакете.
Как видим, все наши файлы есть в сборке.
Теперь можно установить новый пакет.
Теперь внесем пару изменений и стартуем pound
Проверяем 443 порт.
Как видим, pound не настроен, поэтому выдал ошибку и залогировал ее в свой лог файл.
Осталось проверить logrotate.
Все отлично, лог заротейтился, потом мы проверили или пишется лог в новый файл – все ок.
На этом все. Как создавать пакет с новым названием для поддержки мультиверсионности можно почитать здесь
Как собрать бинарный deb пакет: подробное HowTo
Сегодня я расскажу на абстрактном примере как правильно создать *.deb пакет для Ubuntu/Debian. Пакет мы будем делать бинарный. Пакеты, компилирующие бинарники из исходников здесь не рассматриваются: осилив изложенные ниже знания, в дальнейшем по готовым примерам можно понять суть и действовать по аналогии 🙂
В статье не будет никакой лишней возни «вручную»: формат пакета эволюционировал в достаточно простую, а главное — логичную структуру, и всё делается буквально на коленке, с применением пары специализированных утилит.
В качестве бонуса в конце статьи будет пример быстрого создания собственного локального репозитория: установка пакетов из репозитория позволяет автоматически отслеживать зависимости, и конечно же! — устанавливать всё одной консольной командой на нескольких машинах 🙂
Для тех, кто не хочет вдаваться в мощную систему установки софта в Linux, рекомендую посетить сайт проги CheckInstall: она автоматически создаёт deb-пакет из команды «make install» 😉 А мы вместе с любопытными —
Источники
Подготовка
Зачем это всё?
Что потребуется
Конечно, для создания полноценного пакета хватит архиваторов tar, gz, ar, но можно исключить лишнюю возню, и воспользоваться инструментами, созданными для облегчения жизни 🙂
Ставим:
$ sudo apt-get install dpkg debconf debhelper lintian
Что мы будем делать
Для примера будет рассмотрен некий скрипт /usr/bin/super.sh. Не важно что внутри, главное — как он появится на правильном месте 🙂
Подготовка папки
/supersh/usr/bin # путь к скрипту
cp super.sh
/supersh/usr/bin/ # копируем наш скрипт в нужное место
В итоге имеем:
supersh/DEBIAN/
supersh/usr/
supersh/usr/bin/
supersh/usr/bin/super.sh
Создание пакета: DEBIAN/*
Как я уже сказал, папка DEBIAN содержит файлы, используемые при установке. Здесь я опишу (с примерами) каждый файл.
Для создания полноценного пакета достаточно контрольного файла «control», все остальные используются либо для прикрепления текстовой информации (changelog, лицензия), либо для управления расширенными возможностями установки приложений.
Из описанных ниже файлов в папке DEBIAN/* выбираем необходимые, и заполняем согласно инструкции 🙂
В наше примере реально используется только обязательный DEBIAN/control.
DEBIAN/control: Основная информация
control — центральный файл пакета, описывающего все основные свойства. Файл — текстовый, состоящий из пар «Атрибут: значение». Можно использовать комментарии: символ «#» в начале строки (возможность была добавлена в версии dpkg >= 1.10.11, надеяться на комментарии не стоит :).
В таблице приведены все поля, определённые для контрольного файла. Обязательные поля выделены жирным: без них пакет не будет считаться составленным верно.
Атрибут | Описание | Примеры |
---|---|---|
— основные — | ||
Package: | Имя пакета: [a-zA-Z0-9-] — только латиница, цифры, и дефис. Имя используется при установке: apt-get installDEBIAN/copyright: © / лицензияТекст лицензии. Файл не обязателен, но лучше подчеркнуть своё авторство 😉 DEBIAN/changelog: история измененийChangelog в специальном формате: используется dpkg для получения номера версии, ревизии, дистрибутива и важности пакета. Лучше посмотреть в официальной документации 😉 а я лишь приведу пример: — o_O Tync Sun, 13 Dec 2009 00:11:46 +0300 DEBIAN/rules: правила компиляцииИспользуется для управления компиляцией пакета: это когда Architeture: source 🙂 DEBIAN/conffiles: список файлов конфигурацииОбычно пакеты содержат болванки конфигурационных файлов, например, размещаемых в /etc. Очевидно, что если конфиг в пакете обновляется, пользователь потеряет свой отредактированный конфиг. Эта проблема легко решается использованием папок типа «config.d», содержимое которых включается в основной конфиг, заменяя собой повторяющиеся опции. DEBIAN/dirs: список папок для создания«Список абсолютных путей к папкам, которые требуются программе, но по каким-либо причинам не создаются.» — гласит официальная документация. На практике – здесь перечисляются все папки, так или иначе используемые программой: и где лежат бинарники, и которые используются программой. DEBIAN/menu: создание пунктов менюUPD: Правильный способ добавления пункта менюDEBIAN/md5sums: контрольные суммы файловDEBIAN/watch: мониторинг сайта, откуда была скачана прогаФункция полезна, если Вы мэйнтейните от нескольких десятков пакетов, и уследить за всеми обновлениями сложно. И ещё пример для uscan(1): Лучше почитайте официальную документацию, такие мощные вещи нечастно требуются простым смертным 🙂 DEBIAN/cron.d: инсталляция заданий cronDEBIAN/inid.d: init-скриптВ этот файл пишется содержимое init-скрипта. О написании init-скриптов в инете можно найти СкриптингМы подошли к самому интересному: встраиванию скриптов в deb пакеты. Скрипты позволяют управлять установкой, переустановкой и удалением пакета, выполняя действия, которые нельзя сделать простым копированием файлов в правильные места. Это может быть скачивание дополнительных файлов (как это делает flash-installer), изменение существующих, а также — вывод интерактивных (GUI или ncurses) диалогов, позволяющих пользователю сконфигурировать пакет под себя: например, mysql спрашивает какой установить пароль для root. DEBIAN/(preinst|postinst|prerm|postrm): скрипты установкиexit 0 WARNING: болванка пока не тестировалась широко, проверьте лишний раз! На невозможность отладки наткнулся совсем недавно 🙂 DEBIAN/templates: шаблоны для диалоговКак уже было сказано, в скрипте DEBIAN/config можно задавать пользователю вопросы: ввести строку, выбрать один из вариантов, поставить галочку,… Этим занимается «библиотека» bash функций debhelper пакета debconf, умеющая кроме этого ещё массу полезных вещей. Здесь их не рассматриваю 🙂 Template — уникальный (в пределах одного пакета) идентификатор шаблона. Если в скрипте нужно вызвать определённый диалог — используется именно это имя. Основы использования debconf и debhelper# Подключение команд debconf Собираем пакет! 🙂Автоматическая проверка пакетаСуществует утилита lintian, позволяющая проверить пакет и выявить типичные ошибки в его структуре. Делается это так: Установка пакетаСоздаём собственный репозиторий пакетовТеперь у нас есть собственный пакет. Когда их будет несколько, и тем более — с зависимостями, окажется, что намного удобнее быстренько поднять собственный локальный микро-репозиторий, и включить его в список источников менеджера пакетов 🙂 Здесь я опишу быстрый HowTo «как создать свой репозиторий». Идею будет легко развить, почитывая соответствующую документацию 🙂 Описание будущего репозиторияЦентр репозитория — его описание. Главное в нём — список компонент репозитория. Мы создадим компоненты «soft» и «games». В нашем деле создания простого репозитория все поля не играют принципиальной роли, и используются лишь для визуального определения «что есть что» 🙂 Создание репозиторияРепозиторий описан! Теперь сгенерируем болванку на основе описания. Команды выполняются в корне репозитория: Управление пакетами в репозиторииФинишUPD: @ICD2 подсказывает, что есть GUIшная прога для создания пакетов: GiftWrap.
|