[РЕШЕНО] Собрать deb-пакет для easystroke

Автор IlyaLinux, 04 июня 2020, 13:49:41

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

IlyaLinux

Здравствуйте, друзья!

С удивлением обнаружил, что такой полезной программы как easystroke нет в репозитариях Debian. К счастью исходники открыты и, если по силам, можно попробовать ее собрать. Для сборки используем fork, там человек исправил ошибку компиляции, подтягиваем зависимости, говорим make и, вуаля, в папке лежит скомпилированная программа.

Просто говорить make install не хочется, ибо  на просторах Форума просветлился и понял что не подобает уважающему себя debian'нисту (прошу прощения, если кого-то задел, предлагайте варианты :) ) архивировать исходники, на случай, если потребуется программу удалить. Так может действовать убунтовод, но настоящий debian'щик соберет deb-пакет и установит именно его.

Сказано, сделано. Ан нет, может в душе я уже и считаю себя true-debian, но опыта, увы, не хватает. )
Пробую собрать пакет с помощью checkinstall.

qwerty@debian:~/easystroke
$ sudo checkinstall -D make install
[sudo] пароль для qwerty:

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



*****************************************
**** Debian package creation selected ***
*****************************************

Этот пакет был создан с использованием данных значений:

0 -  Maintainer: [ root@debian ]
1 -  Summary: [ X11 gesture recognition application ]
2 -  Name:    [ easystroke ]
3 -  Version: [ 20200604 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ easystroke ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Recommends: [  ]
12 - Suggests: [  ]
13 - Provides: [ easystroke ]
14 - Conflicts: [  ]
15 - Replaces: [  ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:

Installing with make install...

========================= Результаты установки ===========================
install -Ds easystroke /usr/local/bin/easystroke
install -D -m 644 easystroke.svg /usr/local/share/icons/hicolor/scalable/apps/easystroke.svg
install: невозможно создать каталог '/usr/local/share/icons': Нет такого файла или каталога
make: *** [Makefile:125: install] Ошибка 1

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

Очищается...OK

Удачи.


Подскажите, пожалуйста, что упустил?

ecc83

#1
Цитата: IlyaLinux от 04 июня 2020, 13:49:41Подскажите, пожалуйста, что упустил?

Цитироватьневозможно создать каталог '/usr/local/share/icons': Нет такого файла или каталога

Попробуй создать каталог вручную, перед запуском checkinstall.

ferum

Цитата: IlyaLinux от 04 июня 2020, 13:49:41Пробую собрать пакет с помощью checkinstall.
Checkinstall  зло, он мнёт всё в /usr/local, даже если разработчиком это не предусмотрено. Уже лучше использовать ленивую сборку на коленке https://debianforum.ru/index.php/topic,10410.0.html Come updone
Русские дебианщики против цифрового слабоумия !

ecc83

Цитата: ferum от 04 июня 2020, 14:29:37Checkinstall  зло, он мнёт всё в /usr/local

Приветствую :)
Насчёт "зло" спорить не буду, а на счёт "он мнёт всё в /usr/local" - это не совсем так.
Если при сборке НЕ указать ключ [--prefix=/usr] то разумеется от засунет в каталог по умолчанию.

при запуске команды нужно указывать каталог установки:

./configure --prefix=/usr

команду checkinstall лучше запускать так:

sudo checkinstall -D --install=no --nodoc


ferum

Цитата: ecc83 от 04 июня 2020, 17:46:15Приветствую
Взаимно  :D
Я обобщил, приходилось собирать программы где всё начинается с make.
[offtopic]Первый мой пакет был собран ещё для ubuntu 9.04, это был маленький плагин для kaffeine  kaffeine-sc. Спустя какое то время я задался вопросом, на сколько соответствует правилам сборки пакетов утилита checkinstall. Так же меня интересовал конвертор RPM пакетов alien. Удивительно но checkinstall мало того что собирает весьма упрощённые пакеты, она вообще не может собирать большие исходники, где на выходе несколько бинарных файлов. Другое дело alien , даже файлы  control генерируются с учётом текущей версии дистрибутива, хотя версии зависимостей в RPM могли сильно отличаться.[/offtopic]
Русские дебианщики против цифрового слабоумия !

IlyaLinux

Друзья, больше спасибо за помощь, все получилось. :D ferum, статья замечательная, кратко и по делу.

Приведу кратко последовательность действий, чтобы собрать наипростейший deb-пакет.

$ make install DESTDIR=../easystroke_0.6.0-10-gf3815dc_amd64
$ cd ..

# В текстовом редакторе подправляем файл control. За основу берем файл из
# пакета Ubuntu

$ dpkg-deb --build easystroke_0.6.0-10-gf3815dc_amd64/
$ sudo dpkg -i easystroke_0.6.0-10-gf3815dc_amd64.deb
$ sudo apt install -f


ЗЫ. Думал будет страшнее.