Поиск по сайту:

Как собирать пакеты из исходного кода с помощью 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

Статьи по данной тематике