Как собирать пакеты из исходного кода с помощью CheckInstall
Некоторое время назад мы писали об утилите под названием Fpm, которая помогает легко создавать пакеты Linux для нескольких платформ Linux. Сегодня мы обсудим CheckInstall, который также используется для сборки пакетов Linux из исходного кода.
Краткое введение в CheckInstall
Обычно мы устанавливаем пакеты с помощью менеджеров пакетов дистрибутива. Но если приложение, которое вы хотите установить, недоступно в репозиториях вашего дистрибутива, у вас нет другого выбора, кроме как вручную скомпилировать и установить его из исходного кода.
Компиляция и установка приложений из исходного кода может показаться сложной задачей для некоторых людей, особенно для новичков. Здесь на помощь приходят такие программы, как FPM и CheckInstall.
CheckInstall — это программа, которая компилирует программу из исходного кода и создает собственный пакет для вашего дистрибутива Linux. Чтобы вы могли установить пакеты, используя систему управления пакетами вашего дистрибутива (dpkg, rpm или installpkg).
В настоящее время CheckInstall создает собственные пакеты для систем на базе DEB, систем на основе RPM и Slackware. В этом кратком руководстве мы обсудим, как собирать пакеты из исходного кода с помощью программы CheckInstall.
Установите CheckInstall в Linux
CheckInstall доступен в репозиториях по умолчанию большинства дистрибутивов Linux. Итак, вы можете установить его с помощью менеджеров пакетов.
Скажем, например: в системах на базе Debian вы можете установить его с помощью следующей команды:
sudo apt-get install checkinstall
В SUSE/openSUSE:
sudo zypper install checkinstall
В CentOS, RHEL, Fedora:
Загрузите и установите RPM-файл CheckInstall по этой ссылке.
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
Сборка пакетов из исходного кода с помощью CheckInstall
Вот простые шаги по созданию DEB-пакета программы hello
. Я протестировал следующие шаги в Ubuntu 16.04 LTS.
Сначала загрузите архив программы hello.
wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Извлеките архив с помощью команды:
tar -zxvf hello-2.10.tar.gz
Перейдите в каталог, в который вы распаковали архив hello.
cd hello-2.10/
Выполните следующие команды одну за другой, чтобы скомпилировать его.
./configure
make
Теперь вместо того, чтобы вводить команду "make install"
для установки программы, мы вводим следующую команду:
sudo checkinstall --install=no
Эта команда создаст пакет .deb
, но не установит его. Нажмите Y, чтобы создать каталог документации пакета с именем "doc-pak"
.
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y
Preparing package documentation...OK
Please write a description for the package.
End your description with an empty line or EOF.
>> Simple Hello Program ## Type your Program name and hit ENTER key.
>>
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@ubuntuserver ]
1 - Summary: [ Simple Hello Program ]
2 - Name: [ hello ]
3 - Version: [ 2.10 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ hello-2.10 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ hello ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
Enter a number to change any of them or press ENTER to continue: ## Hit ENTER key
[...]
Building file list...OK
Building Debian package...OK
NOTE: The package will not be installed
Erasing temporary files...OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been saved to
/home/sk/hello-2.10/hello_2.10-1_amd64.deb
You can install it in your system anytime using:
dpkg -i hello_2.10-1_amd64.deb
**********************************************************************
Теперь вы можете установить вновь созданный пакет .deb
с помощью менеджера пакетов dpkg
:
sudo dpkg -i hello_2.10-1_amd64.deb
Если вы выполните приведенную выше команду без флага "--install=no"
, она автоматически создаст пакет deb и установит его в вашей системе.
sudo checkinstall
Пример вывода:
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@ubuntuserver ]
1 - Summary: [ Simple Hello Program ]
2 - Name: [ hello ]
3 - Version: [ 2.10 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ hello-2.10 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ hello ]
12 - Conflicts: [ ]
13 - Replaces: [ ]
Enter a number to change any of them or press ENTER to continue: ##Press ENTER
[...]
Installing Debian package...OK
Erasing temporary files...OK
Writing backup package...OK
OK
Deleting temp dir...OK
**********************************************************************
Done. The new package has been installed and saved to
/home/sk/hello-2.10/hello_2.10-1_amd64.deb
You can remove it from your system anytime using:
dpkg -r hello
**********************************************************************
Эта команда создаст файл .deb и автоматически установит его в вашей системе. Вы можете удалить установочный пакет в любое время с помощью команды:
sudo dpkg -r hello
CheckInstall автоматически создаст пакет .rpm
или .deb
, в зависимости от тип вашего текущего дистрибутива Linux, который вы используете. Если вам нужно создать пакет .rpm, просто выполните описанные выше шаги в любой системе на основе RPM. Для пакетов Slackware сделайте это в системе Slackware.
Более подробную информацию можно найти на страницах руководства:
man checkinstall
Или загляните в раздел помощи.
checkinstall --help
Связанное чтение:
- Как конвертировать пакеты Linux с помощью Alien
- Как собрать пакеты Debian из исходного кода
Ресурс:
- Веб-сайт CheckInstall