Настройка сервера Linux и Windows
ITShaman - Сайт для АЙТИшников!
"Машины должны работать. Люди должны думать."
(девиз компании IBM)

Создание DEB / RPM пакета из исходников или как использовать checkinstall

Очень часто нужные программы, которые удается найти на просторах Интернета, не имеют готовых DEB или RPM пакетов. В репозиториях дистрибутивов так же не всегда находится актуальная версия программы. Поэтому установка программы из исходного кода бывает единственным выходом.

Так как здесь рассматриваются пакетные дистрибутивы Linux, то собирать из исходников мы будем в DEB и RPM пакеты. Такие пакеты в последующем легко устанавливаются и удаляются в ОС.

Ниже приведен список команд, которые помогают создавать DEB и RPM пакеты из исходников. Еще ниже каждая команда будет более подробно расписана.

Создание DEB-пакетов из исходного кода:


Подробное описание каждого шага


Установка программы checkinstall

Установка пакета checkinstall не должна вызвать особых сложностей. В операционных системах, использующих DEB пакеты, установка производится командой:

# sudo apt-get install checkinstall

В операционной системе, использующей RPM пакеты, установка пакета checkinstall выполняется командой:

# sudo rpm -i checkinstall

Если такой пакет в Вашей ОС не обнаружен, то Вам следует посетить домашнюю страницу проекта и скачать требуемую версию для Вашего дистрибутива:

http://checkinstall.izto.org/download.php

Переход в директорию с исходным кодом программы

Переход в директорию с исходным кодом программы достаточно прост и также не должен вызвать никаких затруднений.

Хотелось бы напомнить об очень удобном инструменте командной строки Linux - клавише TAB. Кнопка TAB позволяет автоматически дописывать название длинных директорий и файлов. Требуется ввести лишь первые символы названия директории / файла и нажать клавишу TAB, которая автоматически допишет полное название.

Почти все исходники распространяются в архивах формата tar.gz. Для разархивирования архива набираем команду:

# tar xvzf имя_архива.tar.gz

Прочитать дополнительную информацию по работе с любыми архивами можно здесь.

Конфигурируем исходники под свою ОС

Проще говоря, это процесс «настройки» исходного кода под конкретную ОС. В результате этого процесса создается файл с описанием конфигурации. Конфигурирование исходников обычно осуществляется простой командой:

# ./configure

Эта команда не вносит никаких изменений в ОС и тем самым не сможет никак повредить ее.

Бывают случаи, когда авторы программ, добавляют дополнительные ключи установки. Просмотреть инструкцию по установке, написанную автором программы, можно командой:

# ./configure --help
или прочитать в файле readme или install

Этот этап самый трудоемкий, так как необходимо установить все дополнительные пакеты, от которых зависит исходный код компилируемой программы. Если в ходе выполнения этой команды на экране появилось сообщение об ошибке и процесс конфигурирования остановился, то это значит что какой-то зависимый пакет отсутствует в системе.

К примеру, при конфигурировании Pidgin возникла ошибка:

checking for GTK... yes
checking for PANGO... yes
checking for X11... yes
checking for GTKSPELL... no
no
configure: error:
GtkSpell development headers not found.
Use --disable-gtkspell if you do not need it.

В приведенном листинге видно, что GTK, PANGA, X11 соответствуют требованиям компилируемого исходного кода (yes), а проверка GTKSPELL вывела значение no. Скорее всего в этом примере требуется установить libgtkspell-dev.

Из этого примера видно, что это дело не такое уж и сложное. Если в процессе конфигурирования не возникло ошибок, то процесс считается завершенным успешно.

Компилирование исходников

Компилирование исходного кода - процесс «автоматический» при условии успешного выполнения предыдущего пункта.

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

Создание DEB-пакета из исходного кода

Программа checkinstall создает и устанавливает пакет для Вашей ОС. Тип пакета (DEB или RPM) checkinstall определяет сам. Для жесткого указания типа создаваемого пакета используем команду checkinstall с ключами:

# sudo checkinstall -R
# Создает и устанавливает RPM пакет
# sudo checkinstall -D
# Создает и устанавливает DEB пакет
# sudo checkinstall -S
# Создает и устанавливает TGZ пакет (дистрибутивы: Slackware, Zenwalk, DeepStyle, Vektorlinux, Mops)

Далее отвечаем на несколько вопросов. По умолчанию все ответы на задаваемые вопросы подходят в большинстве случаев, поэтому везде нажимаем Enter.

В результате всех вышеописанных действий создается пакет требуемого формата в этой же директории.

Статья опубликована 24.07.2009 · Автор статьи: Зюзгин Иван
Статья относится к linux, ubuntu, debian
Случайные 7 статей:
  1. Русские буквы в консоли сервера Ubuntu 10.10
  2. Красивая раскладка клавиатуры в Ubuntu
  3. Как убрать зеленую кайму у шрифта в Gimp?
  4. G'MIC - один из лучших плагинов для Gimp
  5. Добавляем в WIndows XP Home оснастки: локальная политика безопасности и локальная групповая политика
  6. Автоматически загружаем новую версию антивируса Dr.Web CureIt!
  7. Подключение Bluetooth-наушников и гарнитуры для прослушивания музыки в Ubuntu
Комментарии [12]
  1. Meison #
    22 Январь, 16:12

    не хочет выполняться пункт ./configure :( пишет ~/Загрузки/FileZilla3$ ./configure
    bash: ./configure: No such file or directory
    что делать? ( как видно пробовал скомпилировать filezilla…

  2. Mut@NT #
    22 Январь, 17:10

    Meison: не хочет выполняться пункт ./configure :( пишет ~/Загрузки/FileZilla3$ ./configure bash: ./configure: No such file or directory что делать? ( как видно пробовал скомпилировать filezilla…

    Попробуйте переместить исходники в другое место. Возможно русские буквы всему виной

  3. Сергей Луконин #
    19 Февраль, 09:31

    Mut@NT: Meison: не хочет выполняться пункт ./configure :( пишет ~/Загрузки/FileZilla3$ ./configure bash: ./configure: No such file or directory что делать? ( как видно пробовал скомпилировать filezilla…

    Попробуйте переместить исходники в другое место. Возможно русские буквы всему виной

    А может просто нужно перейти в верный каталог? Вряд ли в корне есть каталог “Загрузки”, скорее всего путь должен быть /home/USERNAME/Загрузки…

  4. Mut@NT #
    20 Февраль, 05:40

    Сергей Луконин: А может просто нужно перейти в верный каталог? Вряд ли в корне есть каталог “Загрузки”, скорее всего путь должен быть /home/USERNAME/Загрузки…

    Значек ~ (называется тильда) заменяет написание /home/USERNAME/
    К примеру: cd ~/Desktop – переход в директорию Desktop текущего пользователя.

  5. Роман #
    18 Апрель, 05:08

    Подскажите, пожалуйста, что я упустил или сделал не так?
    1. Скачал архив firefox.tar.bz2 и распаковал при помощи File Roller
    2. Установил checkinstall
    3. Попытался конфигурировать:
    user@user-desktop:~$ cd /home/user/firefox
    user@user-desktop:~/firefox$ ./configure
    bash: ./configure: Нет такого файла или каталога

  6. Mut@NT #
    18 Апрель, 05:40

    Роман: Подскажите, пожалуйста, что я упустил или сделал не так? 1. Скачал архив firefox.tar.bz2 и распаковал при помощи File Roller 2. Установил checkinstall 3. Попытался конфигурировать: user@user-desktop:$ cd /home/user/firefox user@user-desktop:/firefox$ ./configure bash: ./configure: Нет такого файла или каталога

    Прочитайте в самой директории firefox файл readme. Обычно там пишут как откомпилировать, просто возможно там у Вас скрипт автоматической установки без компилирования или еще что.

    P.S. А если не секрет, зачем вам компилировать Firefox, он же есть в репозиториях или для эксперимента просто?

  7. Аноним #
    3 Ноябрь, 21:21

    Вы или очень умный веб-мастер или я копи-пастер очень тупой. Никак не получается стыбзеть у вас статейку. Хочу полностью скопировать, но не получается…
    ps: спасибо за ценную инфу:)

  8. Mut@NT #
    10 Ноябрь, 01:20

    Аноним: Вы или очень умный веб-мастер или я копи-пастер очень тупой. Никак не получается стыбзеть у вас статейку. Хочу полностью скопировать, но не получается…
    ps: спасибо за ценную инфу:)

    Да вроде дополнительно ничего к этому не предпринимал. :) Я не против, если будет в ответ стоять активная ссылка на авторство

  9. san4o #
    24 Декабрь, 09:14

    ./configure: Нет такого файла или каталога

    на подобные вопросы искать нада в файле ридми, в каталоге с исходником ибо в каждом отдельном случае варианты установки хоть и немного, но могут отличатся, либо по другому скрипт называтся который и проверит зависимости и установит и тп.
    Главное суть понят, собирать пакет после успешной компиляции исходников …

  10. Лёха #
    3 Февраль, 06:22

    такая же фигня с ./configure, хотел собрать nestopia на убунту не получается( тоже пишет нет такого файла или каталога,я был бы не такой злой если б начал писать, что там библиотеки нет какой-нибудь или пакет надо еще установить, а тут нет файла или каталога, ппц

  11. Николай #
    29 Ноябрь, 11:14

    root@debian:/home/nick/wine-1.7.3# sudo checkinstall -D

    checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran Эта программа распространяется на условиях GNU GPL

    The package documentation directory ./doc-pak does not exist.
    Should I create a default set of package docs? [y]:

    Готовится документация к пакету…OK

    Пожалуйста напишите описание пакета.
    Закончите ваше описание пустой строкой или EOF.

    вот тут я застрял…..подскажите пожалуйста

  12. Николай #
    29 Ноябрь, 11:22

    вот что пишет
    ========================= Результаты установки ===========================
    make: *** Нет правила для сборки цели `install’. Останов.

    **** Установка неудачна. Отменяется создание пакета.

    Очищается…OK

    Удачи.

Имя (обязательное поле)
e-mail (обязательное поле) Сайт
Текст комментария:
IT-новости
Популярное
Облако тегов
При цитировании документа активная ссылка на сайт обязательна.
Администрирование и настройка серверов, рабочих станций на базе ОС Linux и Windows. www.itshaman.ru - Настройка Linux и Windows © 2009 - 2016