Building binary deb packages: a practical guide
Содержание:
- Установка Anydesk Linux — Debian
- Установка программ с помощью apt
- Установка MariaDB с dpkg
- Install deb file in Ubuntu using apt Package Manager
- Установка Wine 6.0 на Debian, Ubuntu и Linux Mint
- Installing DEB packages on Ubuntu and Linux Mint
- Понимание управления пакетами Debian
- Как установить программное обеспечение / пакет
- Список установленных пакетов
- Удалить установленные пакеты
- Список содержимого пакета
- Проверьте, установлен ли пакет или нет
- Одновременная установка нескольких пакетов
- Распаковать пакет deb
- Переконфигурировать пакет Unpacked deb
- Нужна дополнительная информация о командах dpkg?
- Используйте инструмент командной строки ‘dpkg’ в дистрибутиве Linux на основе Debian
- Сборка пакета
- Настройки BIOS перед установкой системы
- Установка через файлы сценариев
- Дебианизация
- Создание deb пакетов
- How to remove .deb package
- Taking care of external dependencies
Установка Anydesk Linux — Debian
Чтобы установить Anydesk в Debian Linux, вам необходимо загрузить пакет DEB с официального сайта. Чтобы начать загрузку, запустите окно терминала. Вы можете запустить окно терминала в Debian Linux, нажав Ctrl + Alt + T или выполнив поиск «Терминал» в меню приложения.
В открытом окне терминала используйте следующие wget Загрузите команду, чтобы получить последний пакет Anydesk DEB для вашего ПК с Debian Linux.
Примечание: не заинтересован в использовании wget загрузить команду, чтобы получить последнюю версию пакета Anydesk? Перейдите в Официальная страница загрузки AnyDesk вместо.
wget https://download.anydesk.com/linux/anydesk_6.0.1-1_amd64.deb -O ~/Downloads/anydesk_6.0.1-1_amd64.deb
После загрузки пакета Anydesk DEB на свой компьютер с Debian Linux запустите установку с помощью компакт диск команду для перехода в каталог «Загрузки».
cd ~/Downloads/
Попав в каталог «Загрузки», используйте dpkg команда для установки пакета Anydesk DEB на ваш компьютер с Debian Linux.
sudo dpkg -i anydesk_6.0.1-1_amd64.deb
После установки пакета в Debian вам нужно будет исправить любые проблемы с зависимостями, которые могли возникнуть, с помощью apt-get install -f команда.
sudo apt-get install -f
Установка программ с помощью apt
Перед тем как говорить непосредственно про Debian, нужно рассмотреть apt. Этот пакетный менеджер был специально разработан для Debian и потом стал использоваться в других основанных на нем дистрибутивах. Синтаксис для работы с утилитой такой:
$ sudo apt опции команда имя_пакета
Вот основные команды apt, которые вы можете использовать для управления пакетами:
- download — скачать пакет, но не устанавливать;
- update — используется для обновления информации о списках пакетов в репозиториях;
- upgrade — обновление системы без удаления пакетов;
- full-upgrade — полное обновление системы с удалением конфликтующих зависимостей;
- install — установка пакета;
- remove — удаление пакета без удаления конфигурационных файлов;
- purge — полное удаление пакета;
- autoremove — автоматическое ненужных удаление пакетов;
- search — поиск пакета в локальной базе данных;
- show — посмотреть информацию о пакете.
Кроме того, утилите можно передать некоторые опции, основные:
- -c — сторонний конфигурационный файл;
- -o — строка конфигурации;
- -t — версия релиза для которой устанавливать пакет;
- -f — выполнить операцию принудительно.
Таким образом, для установки пакета из репозиториев достаточно набрать:
А для удаления пакета наберите:
Вы можете искать пакеты с помощью команды search:
Но куда более интересны политики управления репозиториями и установка отдельных пакетов из определенных хранилищ. Особенно это актуально для Debian, чтобы не добавлять нестабильный репозиторий полностью, а устанавливать из него только отдельные пакеты. Для решения таких задач существует настройка политики управления репозиториями.
С помощью политик вы можете настроить из каких репозиториев будет выполняться установка deb пакетов в debian в первую очередь. Мы рассматривали репозитории Debian и как их добавлять в отдельной статье. Допустим, вы добавили backports, testing и unstable. Теперь, чтобы настроить для них приоритеты откройте конфигурационный файл /etc/apt/preferences и добавьте в него строки:
Package: *
Pin: release a=stretch-backports
Pin-Priority: 650
Package: *
Pin: release a=testing
Pin-Priority: 600
Package: *
Pin: release a=unstable
Pin-Priority: 100
Чем выше значение Priority, тем выше приоритет. Сначала мы указываем с помощью инструкции Package имя пакета, а затем репозиторий и его приоритет. В нашем примере самый высокий приоритет имеет репозиторий stable, если там пакета нет, он будет установлен из backports, и только потом из testing и из unstable. Теперь добавление нестабильных репозиториев не будет ломать систему. А если вы захотите установить пакет из нестабильного репозитория, то просто укажите его с помощью опции -t. Например, для testing:
Очень удобно и не ломает систему.
Установка MariaDB с dpkg
Хотя это не рекомендуется, можно загрузить и установить пакеты вручную. Однако обычно рекомендуется использовать менеджер пакетов, например .
Архив, содержащий пакеты , можно загрузить по следующему URL-адресу:
https://downloads.mariadb.com
Например, чтобы установить пакеты MariaDB 10.4.8 в Ubuntu 18.04 LTS (Bionic), вы можете выполнить следующее:
sudo apt-get update sudo apt-get install libdbi-perl libdbd-mysql-perl psmisc libaio1 socat wget https://downloads.mariadb.com/MariaDB/mariadb-10.4.8/repo/ubuntu/mariadb-10.4.8-ubuntu-bionic-amd64-debs.tar tar -xvf mariadb-10.4.8-ubuntu-bionic-amd64-debs.tar cd mariadb-10.4.8-ubuntu-bionic-amd64-debs/ sudo dpkg --install ./mariadb-common*.deb \ ./mysql-common*.deb \ ./mariadb-client*.deb \ ./libmariadb3*.deb \ ./libmysqlclient18*.deb sudo dpkg --install ./mariadb-server*.deb \ ./mariadb-backup*.deb \ ./galera-4*.deb
Install deb file in Ubuntu using apt Package Manager
If you come to installing .deb packages on you Debian based distribution then you have another option for it. you can use the apt package manager to install .deb package. Yes, you install the package locally on your system instead of the web.
Before go running the apt command for installing the new package use the apt update command to update the database.
$sudo apt update
As I have told you previously, apt has the advantage to resolve dependency error automatically. So you would not worry about the dependencies when using apt command.
If you have faced any problem-related dependency error then Please use apt command to install .deb file in ubuntu. See in the command below to install the same package as the previous example.
In the above example, you can see there are multiple dependencies required for TeamViewer software. the apt tool didn’t install Teamviewer in the previous example and asked for installing dependency first.
You can use apt command followed by –fix-broken install for installing package and dependencies as well.
Command will be the following:
Choose Y and hit enter, After some, you will that Teamviewer has been installed on your system.
Установка Wine 6.0 на Debian, Ubuntu и Linux Mint
Если вы хотите иметь самую последнюю версию Wine 6.0, вам нужно использовать новый репозиторий Wine repository PPA. Кстати в этом репозитории есть версии разработки, и стабильные версии Wine для Debian, Ubuntu и Linux Mint.
Установка Wine на Ubuntu и Linux Mint
Чтобы установить Wine 6.0 на Ubuntu и Linux Mint, откройте терминал, нажав горячите клавиши Выполните следующие команды для установки репозитория Wine:
Если у вас появится сообщение об ошибке «winehq-stable: Dependents: wine-stable (= 6.0.0~bionic)«. Тогда при установке wine необходимо добавить следующий репозиторий PPA для исправления ошибки.
Установка Wine на Debian
Чтобы установить Wine на Debian выполните следующие команды:
Затем добавьте следующий репозиторий в /etc/apt /sources.list или создайте *.list в разделе/etc/apt/sources.list.d / со следующим содержимым.
Теперь обновите базу данных репозитория пакетов и установите Wine, как показано на рисунке.
Установка Wine с использованием исходного кода на Debian, Ubuntu и Mint
Еще один способ получить самую последнюю стабильную версию Wine 6.0 — это построить wine из исходного кода tarball, используя следующие команды.
Как использовать Wine для запуска приложений и игр Windows
Чтобы продемонстрировать, как можно запустить программу Windows с помощью Wine. Мы загрузили файл Rufus с официальной страницы.
Чтобы запустить на Linux исполняемый файл Rufus.EXE который предназначен для Windows, выполните команду:
Запуск программы Windows в Ubuntu
Как только вы запустите программу, Wine создаст конфигурационный файл в домашнем каталоге пользователя. В моем случае, Это показано на рисунке.
Конфигурация Wine
Во время настройки, Wine попросит установить .NET, нажмите кнопку «Установить«.
Wine Mono Installer
Ожидайте начала и завершения загрузки .NET
Загрузка Установщика Wine Mono
Кроме того, он также попросит вас установить пакет Gecko, который требуется для приложений, встраивающих HTML.
Установка Gecko для Wine
Выберите, хотите ли вы время от времени проверять наличие обновлений приложений.
Как установить Wine 6.0 на Debian, Ubuntu и Linux Mint
И последние Rufus у вас отобразится на экране.
Программа Rufus работает на Ubuntu при помощи Wine
Вот и все мы успешно установили Wine на Debian, Ubuntu и Linux Mint. А так же показали вам как вы можете запускать приложения Windows в среде Linux.
Удаление Wine в Debian, Ubuntu и Linux Mint
Если вы недовольны программой Wine и вы хотите полностью удалить его. Это можно реализовать с помощью следующей команды.
Надеюсь, что вы успешно установили Wine на Debian, Ubuntu и Linux Mint. А так же у вас получилось запустить приложение Windows через Wine.
Installing DEB packages on Ubuntu and Linux Mint
During this tutorial, we are going to show you step by step how to install a Debian package on Ubuntu. We shall discuss two basic methods:
- Installing Debian Packages via Command-Line (Terminal)
- Installing Debian Packages via Graphical User Interface (Software Center Application and GDebi Application)
But before we start our guide let’s first ensure that you have an updated Ubuntu system using the following two commands:
sudo apt update sudo apt upgrade
Method I: Installing the Debian Packages via Command-line
In the command line method, we are going to use the terminal to install a Debian package. Basically, you can use the terminal using one of the two methods:
- via dpkg command
- via GDebi command
dpkg
In general, if you are using the dpkg command you can use the following command format:
sudo dpkg -i "path_to_Debian_Package"
Where you need to replace the “path_to_Debian_Package” with the path of your Debian package. Therefore, for example, to install ASC Music Debian package you would use a command like the below one:
sudo dpkg -i Downloads/asc-music_1.3-4_all.deb
dpkg Command
GDebi
Our second command-line method is to use the GDebi command. In case you have not installed the GDebi on your system then use the following command to install it:
sudo apt install gdebi
Install Gdebi Package
Next, let’s use the GDebi command to install a Debian package by using the following command:
sudo gdebi Downloads/asc-music_1.3-4_all.deb
GDebi Command
When the installation completes successfully you should get a message like the below one:
Asc Music Package Installed
Method 2: Installing Debian Packages via Graphical User Interface
The easiest method to install a Debian package is to use the graphical user interface way. Again, you can choose between one of the two methods:
- Using Software Center
- Using GDebi Application
Installing the Debian Package using Software Center
During this method, we will be using the default Software Center that comes with Ubuntu. Luckily, there are not many steps, you just double-click on the package you need to install. Then install it via Software Center application. Let’s have a closer look at the steps as following:
Step 1. Check the Debian package in your Downloads directory.
Asc Music Debian Package
Double click on the Debian package.
Step 2. As you can notice the Software Center will open. Now you can press the Install button to start the installation.
Install Asc Music Debian Package Using Software Installer
Step 3. You may be required to provide the sudo password for authentication. As you can see, the installation of the Debian package is in progress.
Installation Progress
When the installation completes successfully you can get a screen like the below one with a Remove button instead. The Remove button can be used to uninstall the Debian package from your system.
Asc Installed
Now you should have installed the Debian package successfully.
Installing Debian Package Using GDebi Application
In the second graphical method, we can use the GDebi application. In this method, you should have the GDebi package installed. If it is not installed then you can use the following command to install it:
sudo apt install gdebi
Now let’s use the GDebi application.
Step 1. First, move to the directory where the Debian package is located. Then right-click on the Debian package and choose “Open with Another Application”.
Context Menu
Step 2. From the recommended applications menu choose the GDebi Package Installer. Then click the “Select” button.
GDebi Package Installer
Step 3. The GDebi application will open and load the Debian package.
Asc Music Package Loading in GDebi
Step 4. After the Debian package loads, you can click the Install Package to start the installation.
Asc Music Package Installed
Step 5. As you can notice, the installation bar at the below of the GDebi installer.
Asc Music Package Installed
Step 6. After the installation finishes successfully you should get a message like the below one.
Asc Music Package Installed Successfully Via GDebi
Congratulations, you have just learned multiple methods for installation the Debian package on your Ubuntu Linux system. The tutorial should work on Ubuntu-based Linux distributions including Linux Mint, elementary OS, Pop!_OS, and more.
Понимание управления пакетами Debian
В управлении пакетами Debian используется несколько разнообразных инструментов управления пакетами, таких как apt-get, aptitude, dpkg, apt-file, dselect, taskses и gdebi. программного обеспечения в системе. Эти инструменты известны как менеджеры пакетов. Некоторые, если не все, из этих инструментов используют низкоуровневый инструмент dpkg для обеспечения высокоуровневой функциональности.Команда dpkg позволяет вам легко устанавливать и удалять программное обеспечение, а также управлять и обновлять программное обеспечение в бесшовной форме.
Как установить программное обеспечение / пакет
Вы можете использовать dpkg для установки программного обеспечения с помощью следующей команды. Эта команда также может обновить пакет, если он уже установлен.
dpkg -i package_name.debВышеупомянутая команда требует, чтобы на вашем компьютере был физический файл .deb .
Список установленных пакетов
Чтобы перечислить или отобразить установленные пакеты в дистрибутиве Debian, вы можете использовать следующие команды:
dpkg -l search_pattern
Если вы хотите перечислить все установленные пакеты, просто опустите .
dpkg -l
Удалить установленные пакеты
Если вы уже установили пакет, но больше не используете его, вы можете использовать следующую команду для его удаления. Эта команда удаляет весь пакет, кроме файлов конфигурации.
dpkg -r package_name.deb
Список содержимого пакета
Вы можете использовать приведенные ниже команды для отображения содержимого пакета на вашем компьютере Linux:
dpkg —contents package_name.debВы также можете использовать -cвместо —contents.
dpkg -c package_name.deb
Проверьте, установлен ли пакет или нет
Предполагая, что вы хотите проверить, установлен ли на вашем компьютере определенный пакет, используйте следующую команду для проверки.
dpkg -s package_name.deb
Одновременная установка нескольких пакетов
Если у вас есть несколько файлов deb, которые вы хотите установить, вы можете запустить следующую команду, чтобы установить их все за один раз
Обратите внимание, что для этого вам нужно поместить все файлы .deb в одну и ту же папку.
dpkg -R —install /deb-files-location /
Распаковать пакет deb
Иногда вам может понадобиться распаковать пакет deb, чтобы вы могли вносить изменения в свои файлы. Используйте эту команду для распаковки файла deb.
dpkg —unpack package_name.deb
Переконфигурировать пакет Unpacked deb
После внесения изменений в файлы используйте эту команду, чтобы настроить и переупаковать его в файл deb для установки.
dpkg —configure pacakge_name
Нужна дополнительная информация о командах dpkg?
Если вы хотите узнать больше о командах dpkg, вы можете использовать приведенную ниже команду. Он отображает подробную информацию о командах и параметрах dpkg.
Используйте инструмент командной строки ‘dpkg’ в дистрибутиве Linux на основе Debian
Каждый дистрибутив Linux, основанный на Debian, использует пакеты Debian в качестве метода установки и удаления программного обеспечения. Пакеты Debian идентифицируются по расширению файла .deb. Их можно устанавливать и удалять с помощью графических инструментов и командной строки.
Зачем устанавливать файл .deb вручную
Большую часть времени вы используете менеджер пакетов, такой как Ubuntu Software Center, Synaptic или Muon, для установки программного обеспечения в дистрибутивах на основе Debian. Если вы предпочитаете использовать командную строку, вы, вероятно, будете использовать apt-get.
Некоторые приложения недоступны в репозиториях и должны быть загружены с веб-сайтов поставщиков. Будьте внимательны при загрузке и установке пакетов Debian из источников, которых нет в репозиториях дистрибутива.
Некоторые из крупнейших приложений поставляются в этом формате, в том числе веб-браузер Google Chrome
По этой причине важно знать, как устанавливать пакеты вручную.
Где взять файл .deb
Для демонстрации вам понадобится файл .deb для установки.
В этом примере используется файл .deb для создателя QR-кода. QR-код – это один из тех забавных символов, которые вы видите повсюду. Когда вы концентрируетесь на QR-коде на своем мобильном устройстве, вы переходите на веб-страницу, почти как гиперссылка.
На странице QR Code Creator есть файл .deb. Нажав на ссылку, вы загрузите файл .deb в вашу папку загрузок.
Как установить .deb пакеты
Инструмент, используемый для установки и удаления пакетов Debian, называется «dpkg». Это инструмент командной строки. С помощью переключателей вы можете делать с ним много разных вещей.
Первое, что вы хотите сделать, это установить пакет. Введите в командной строке следующее:
sudo dpkg -i
Например, чтобы установить QR Code Creator, команда выглядит следующим образом:
sudo dpkg -i qr-code-creator_1.0_all.deb
Если вы предпочитаете, вы также можете использовать – install вместо -i следующим образом:
sudo dpkg - установить qr-code-creator_1.0_all.deb
Что находится в файле .deb?
Если вы когда-нибудь задумывались, из чего состоит пакет .deb, вы можете запустить следующую команду, чтобы извлечь файлы из пакета без его установки.
dpkg-deb -x qr-code-creator_1.0_all.deb ~/qrcodecreator
Эта команда извлекает содержимое пакета qr-code-creator в папку с именем qrcodecreator, расположенную в домашней папке (/ home/qrcodecreator). Папка назначения qrcodecreator уже должна существовать.
В случае создателя кода qr содержимое выглядит следующим образом:
- USR
- usr -> bin
- usr -> bin -> qr-code-creator
- usr -> поделиться
- usr -> поделиться -> приложения
- usr -> поделиться -> приложения -> qr-code-creator.desktop
- usr -> поделиться -> doc
- usr -> share -> doc -> qr-code-creator
- usr -> share -> doc -> qr-code-creator -> changelog.gz
- usr -> share -> doc -> qr-code-creator -> авторские права
- usr -> поделиться -> человек
- usr -> поделиться -> man -> man1
- usr -> поделиться -> man -> man1 -> qr-code-creator.1.gz
- usr -> поделиться -> pixmaps
- usr -> share -> pixmaps -> qr-code-creator.png
- usr -> поделиться -> qr-code-creator
Удаление пакетов .deb
Удалите пакет Debian, используя следующую команду:
sudo dpkg -r
Если вы также хотите удалить файлы конфигурации, используйте следующую команду:
sudo dpkg -P
Примечание . Если вы используете дистрибутив на основе Ubuntu, просто дважды щелкните файл .deb, и он загрузится в Центр программного обеспечения. Затем нажмите установить.
Сборка пакета
Простая сборка
Итак, все что необходимо нам для сборки, установлено. Осталось, собственно, собрать пакет. Для этого нам понадобится утилитка fakeroot, установите ее, если она у Вас еще не установлена.
Переходим в каталог с распакованным src-пакетом и даем команду:
$ dch -i
Это приведет к тому что будет вызван редактор changelog-файла пакета. Куда вы должны вписать что-то о ваших действиях. Если, например, Вы понизили версионную зависимость, то напишите об этом. Этот шаг можно, конечно, пропустить, однако лучше все же указать, кем собран пакет и зачем. Это может пригодиться в случае, если Вы, например, захотите с кем-то поделиться результатами своего труда, а так же, если вдруг решите сообщить о каком-то баге: измененный номер версии пакета будет фигурировать в письме, написанном при помощи reportbug.
Отдельно надо рассмотреть вопрос о том, какую версию указывать в changelog.
- Это не должна быть версия, встречающаяся в официальном репозитории (чтобы не создавать путаницы)
-
Если вы делаете просто бэкпорт, то версия должна быть младше той версии, на основе которой собран пакет (чтобы не возникло проблем, когда этот пакет попадет в testing, затем в stable и вы попробуете сделать dist-upgrade). Добавьте строку ~backports1 к номеру версии в таком случае. Позже, если в репозитариях окажется пакет с таким же номером версии, то ваша система произведет его обновление. Цифра 1 в данном случае может означать номер Вашей сборки, а слово backports может быть заменено на любое другое, которое будет более информативным.
Исходя из этого, правильным будет добавить к версии -какаятострока1, если вы что-то существенно дорабатывали, или ~какаятострока1, если делали бэкпорт.
$ fakeroot ./debian/rules binary или $ dpkg-buildpackage -rfakeroot или #debuild
В результате будет в родительском каталоге собран двоичный пакет, ради которого затевалась вся катавасия.
Проблемы на этом шаге могли возникнуть только в двух случаях:
- Вы что-то не (так) сделали на предыдущих шагах (например, понизили зависимость, а реально этого делать было нельзя);
-
Вы наткнулись на ошибку в src-пакете. Такое тоже иногда случается. Бывает, что пакеты не собираются, например, из за «неверно» установленного umask. Вообще, сборка пакетов от umask зависеть не должна, но этот баг почему-то довольно часто встречается в Debian.
Вернитесь на несколько шагов назад и повторите попытку.
Если есть только архив с исходниками
Итак, у нас есть только fluxbox-0.9.15.tar.bz2. Обычно выполняюncz следующие действия: Предварительно подготавливаю рабочую директорию:
mkdir ~/src/fluxbox mkdir ~/src/fluxbox/0.9.15 cd ~/src/fluxbox/0.9.15 wget "http://<путь до файла>" (можно конечно и просто через браузер скачать но обычно так быстрее)
Получаем файл fluxbox-0.9.15.tar.bz2. Немного забегая вперёд, обработаем файл программой gzip.
bunzip2 fluxbox-0.9.15.tar.bz2 gzip fluxbox-0.9.15.tar
Получим fluxbox-0.9.15.tar.gz, переименуем:
mv fluxbox-0.9.15.tar.gz fluxbox_0.9.15.orig.tar.gz
(т.е. разделили имя и версию подчёркиванием и после версии добавили слово orig: fluxbox_0.9.15.orig.tar.gz) Теперь распаковываем его (но ни в коем случае не удаляем!):
tar zxvf ./fluxbox_0.9.15.orig.tar.gz cd fluxbox-0.9.15
Для корректной сборки нужно, чтобы корневая директория содержала не только название, но и версию! Ниже будем считать директорию ~/src/fluxbox/0.9.15/fluxbox-0.9.15 корневой директорией исходников. Далее выполняем «черновую» сборку. Т.е. делаем, как обычно
./configure --prefix=/usr && make
(но не устанавливаем!) Если конфигурируется со всеми нужными опциями и собирается в бинарный файл, значит осталось только дебианизировать.
Если есть только deb-пакет
Распаковываем пакет в папку /tmp/program/
$ dpkg -x program*.deb /tmp/program
Чтобы распаковать информацию о пакете, нужно выполнить:
mkdir /tmp/program/DEBIAN $ dpkg -e program*.deb /tmp/program/DEBIAN
Теперь можно делать изменения. Чтобы снова собрать пакет, делаем следующее:
$ dpkg - b /tmp/program program-new*.deb
Настройки BIOS перед установкой системы
Для входа в BIOS или UEFI нажмите клавишу или комбинацию клавиш. В различных моделях настольных компьютеров и ноутбуков чаще всего применяются:
- «Delete» («Del»)
- «F2»
- «F10»
Возможны и другие варианты. Подсказка будет показана в нижней части экрана перед загрузкой ПК.
Интерфейсы UEFI или BIOS разных моделей отличаются друг от друга. Необходим пункт «Boot» (или тот, название которого подобно по смыслу).
Определите приоритеты загрузки с дисков так, чтобы на первом месте был загрузочный накопитель Debian. «F10» на клавиатуре — для подтверждения изменений.
Далее:
- Кнопка «ОК».
- «Enter» на физической клавиатуре.
Установка через файлы сценариев
Установка программы представляет собой распаковку архива, копирование файлов программы в системные директории и, при необходимости, внесение изменений в системные конфигурационные файлы. Все эти действия могут быть внесены в исполняемый файл сценария и выполнены при его запуске. Сейчас достаточно редко встречается подобный метод установки программы, но, тем не менее, некоторые разработчики его используют. Если возникла необходимость в установке такого пакета, необходимо скачать архив (обычно это файл с расширением .tgz или .tar.gz), распаковать его в отдельную директорию на сервере, изучить распакованные файлы, а также прочитать файл readme, если он имеется. Установка программы запускается, обычно, сценарием install.sh, поэтому нужно включить атрибут исполняемого файла командой:
после чего запустить непосредственно сценарий:
220140
Минск
ул. Домбровская, д. 9
+375 (173) 88-72-49
700
300
ООО «ИТГЛОБАЛКОМ БЕЛ»
700
300
Дебианизация
Cмысл всей этой процедуры — создать директорию debian в корне исходников, с нужными файлами конфигурации и скриптом(ами). Для этого, в корне исходных текстов (~/src/fluxbox/0.9.15/fluxbox-0.9.15), выполним:
dh_make Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] s Maintainer name : Frank Email-Address : youmail@domen.com Date : Wen, 20 Mai 2011 12:40:33 +0200 Package Name : fluxbox Version : 0.9.15 License : GPLv3 Type of Package : Single Hit <enter> to confirm:
Здесь мы указываем сформировать пакет для одиночного бинарного файла. Если бы мы не переименовали архив, то получили бы следующее сообщение:
Could not find fluxbox_0.9.15.orig.tar.gz Either specify an alternate file to use with -f, or add --createorig to create one.
В таком случае советую прервать dh_make (Ctrl+C) и переименовать архив, как описано выше. Но мы с вами молодцы и всё у нас прошло без ошибок — появился каталог debian в корне исходников, посмотрев его содержимое, Вы увидите кучу файлов (расширение .ex) с примерами на все случаи жизни. Будем считать, что программа у нас простая, обычно ни один из этих файлов не нужен. Первым делом нужно добавить описание программы в файле debian/control:
Description: <insert up to 60 chars description> <insert long description, indented with spaces>
Вместо <insert up to 60 chars description> и <insert long description, indented with spaces> (без угловых кавычек) нужно вписать описание,что это за программа. Именно эти сведения увидит пользователь, когда посмотрит описание пакета в synaptic’е. Второй момент — это поправить файл debian/rules в секции binary-arch: нужно раскомментировать(т.е. убрать # в начале строки)
dh_install
без этого мы получим пустой пакет. Обычно этих настроек достаточно для сборки пакета с одной программой, которая не содержит разделяемых библиотек, т.е. только бинарник в /usr/bin и данные в /usr/share. Теперь, соберём пакет:
dpkg-buildpackage -rfakeroot
в директории выше, т.е. в ~/src/fluxbox/0.9.15, мы получим файлы:
cd .. ls -1 fluxbox_0.9.15-1.diff.gz fluxbox_0.9.15-1_i386.changes fluxbox_0.9.15-1_i386.deb fluxbox_0.9.15.orig.tar.gz
Создание deb пакетов
Шаг 1. Подготовка
Давайте создадим для этого примера небольшую программу на Си. Она будет называться hellolosst и будет выводить на экран строку Hello from losst.ru в терминал при запуске. Сначала создайте папку hellolosst и перейдите в неё:
Затем поместите в неё файл с исходным кодом:
Для компиляции программы выполните такую команду:
Затем вы можете её выполнить:
Таким образом, теперь у нас есть программа, которую надо упаковать в deb пакет.
2. Создание манифеста
В каждом deb пакете содержаться не только файлы самой программы, но и файл манифеста, в котором описан пакет, его зависимости и параметры. Этот файл имеет название control и должен находится в папке DEBIAN. Для сборки пакета будем использовать папку package, чтобы файлы программы не путались с исходными файлами и те не попали в пакет. Создайте эти папку:
Прежде чем вы сможете создать этот файл надо узнать несколько вещей. Первым делом надо посмотреть размер файлов программы, поскольку в данном случае файл один, достаточно посмотреть его размер:
Если файлов несколько, то можно удалить исходники и посмотреть общий размер папки с файлами программы. Дальше надо понять от каких пакетов будет зависеть ваша программа. Для этого воспользуйтесь командой objdump:
В данном случае программе необходима только libc. Чтобы посмотреть в каком пакете она находится выполните:
Пакет называется libc6. Затем создайте файл манифеста со следующим содержимым:
Это минимальный набор параметров в файле манифеста. Вот их значение:
Package — имя пакета;
Version — версия программы в пакете, будет использована при обновлении пакета;
Section — категория пакета, позволяет определить зачем он нужен;
Priority — важность пакета, для новых пакетов, которые ни с чем не конфликтуют обычно прописывают optional, кроме того доступны значения required, important или standard;
Depends — от каких пакетов зависит ваш пакет, он не может быть установлен, пока не установлены эти пакеты;
Recommends — необязательные пакеты, но тем не менее они обычно устанавливаются по умолчанию в apt;
Conflicts — пакет не будет установлен, пока в системе присутствуют перечисленные здесь пакеты;
Architecture — архитектура системы, в которой можно установить этот пакет, доступные значения: i386, amd64, all, последнее означает, что архитектура не имеет значения;
Installed-Size — общий размер программы после установки;
Maintainer — указывает кто собрал этот пакет и кто отвечает за его поддержку;
Description — краткое описание пакета.
3. Расположение файлов
Манифест готов. Теперь в папке пакета надо создать структуру папок, аналог того, что есть в корневой файловой системе. В данном случае надо создать папку usr/bin и поместить туда исполняемый файл:
4. Скрипты установки
Несмотря на то, что система установки пакетов очень мощная и позволяет делать многое, некоторые вещи всё же сделать нельзя. Для решения этой проблемы была предусмотрена возможность выполнять скрипты перед установкой пакета и после. Аналогично это работает для удаления пакета — перед и после. Эти скрипты называются preinst, postinst, prerm и postrm. Каждый файл просто содержит набор скриптов, которые надо выполнить. Например:
Разработчики Debian не рекомендуют использовать эти скрипты без крайней надобности, поскольку они дают вам полный контроль над системой пользователя и вы можете случайно что-то повредить. Обычно эти скрипты используются для того чтобы задавать пользователям вопросы и на основе этого генерировать конфигурационные файлы.
5. Сборка и проверка пакета
Осталось собрать настроенный пакет. Для этого используйте такую команду:
Теперь вы знаете как как собрать deb пакет. После завершения сборки можете установить его с помощью apt:
После этого исполняемый файл программы появится в /usr/bin, а сообщение из postinst будет выведено после установки.
How to remove .deb package
You can use the following command to remove/uninstall the package
If you want to remove a package along with configuration file then run the following command
When you uninstall the package it will remove the only package and dependency will remain in your computer so run the following command to remove unused dependency packages in your system.
If you want to remove package as well as its dependency then use the apt command followed by remove option and package name.
See the example below:
You can use GUI to uninstall the package follow the steps:
Step 1: Open software center in ubuntu
Step 2: Click on an Installed tab inside the ubuntu software center application
Step 3: Find the package name and Click on “Remove”.
Taking care of external dependencies
You can generate them automatically with . It will parse your binary and look for external symbols. At the time of writing, that tool doesn’t seem to work out of the box. For some unknown (to me) reasons it wants the file to be present in the working directory – that’s for source packages, remember? The workaround here is to create it, then move into the working folder and run:
The flag will print dependencies on the standard output. Copy the output and paste it in the section of your file. You can get rid of the file once done. I’m pretty sure there are better ways for this, though: I will update the article once I get additional information on this step.