Форум русскоязычного сообщества Ubuntu


Автор Тема: [HOWTO] Сборка ПО и создание .deb-пакетов из исходников в Ubuntu (Debian)  (Прочитано 178023 раз)

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

Оффлайн Pegasus

  • Участник
  • *
  • Сообщений: 213
  • Ubuntu 8.04 AthXP 2500+ nForce2 1GB geForce6600GT
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #15 : 15 Декабрь 2007, 19:24:40 »
2 Denis Konstantinov
Цитировать
второй момент это поправить файл debian/rules
в секции binary-arch:
нужно раскомментировать
Код:

       dh_install

(т.е. убрать # в начале строки)
без этого мы получим пустой пакет.
у меня в этой секции такое
Цитировать
binary: binary-arch binary-indep
.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch
так что ничего не коментировал

а вот при
$ dpkg-buildpackage -rfakeroot
Цитировать
$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is sams
dpkg-buildpackage: source version is 1.0.0-1
dpkg-buildpackage: source changed by Pavel Vinogradov
<Pavel.Vinogradov@nixdev.net>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 1.0.0-1
dpkg-checkbuilddeps: Unmet build dependencies: autotools-dev
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.

dpkg-buildpackage говорит что неудовлетворены зависимости , это значит нет их в исходниках?
 или надо autotools-dev скачать и кудато положить ? тоже в исходниках ?
чо делать ваще гики ?

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #16 : 15 Декабрь 2007, 19:35:54 »
для начала нужно как минимум проверить что configure и make работают без ошибок.
AltYo консоль для Gtk3 в стиле консоли quake http://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Pegasus

  • Участник
  • *
  • Сообщений: 213
  • Ubuntu 8.04 AthXP 2500+ nForce2 1GB geForce6600GT
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #17 : 15 Декабрь 2007, 20:54:33 »
2 Denis Konstantinov
вот
buzdack@buzdack-server:~/documents/servers/sams/sams-1.0$  ./configure --with-httpd-locations=/home/www --prefix=/usr && make
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for main in -lm... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking pcre/pcre.h usability... no
checking pcre/pcre.h presence... no
checking for pcre/pcre.h... no
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether closedir returns void... no
checking for pid_t... yes
checking for unistd.h... (cached) yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking whether lstat dereferences a symlink specified with a trailing slash... yes
checking whether lstat accepts an empty string... no
checking whether lstat dereferences a symlink specified with a trailing slash... (cached) yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking whether stat accepts an empty string... no
checking for memmove... yes
checking for memset... yes
checking for pow... yes
checking for strcasecmp... yes
checking for strchr... yes
checking for strdup... yes
checking for strstr... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... (cached) yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for the SAMS startup scripts locations... using the SAMS startup scripts locations from /etc/init.d
checking for WEB server locations... using WEB server locations from /home/www
checking for MYSQL headers... using mysql includes from /usr/include/mysql
checking for <mysql.h> in /usr/include/mysql... using <mysql.h> from /usr/include/mysql
checking for MYSQL library... using mysql libraryes from /usr/lib
checking for libmysqlclient in /usr/lib... using libmysqlclient from /usr/lib
checking for PCRE headers... using pcre includes from /usr/include
checking for <pcre.h> in /usr/include... using <pcre.h> from /usr/include
checking for PCRE library... using pcre libraryes from /usr/lib
checking for libpcre in /usr/lib... using libpcre from /usr/lib
configure: creating ./config.status
config.status: creating Makefile

***** Options and locations *****
system:                                 Linux
default path:                           /usr
default runtime config file:            /etc/sams.conf
location the SAMS startup script:       /etc/init.d
location HTTP server root directory:    /home/www
location mysql includes:                /usr/include/mysql
location mysql libraries:               /usr/lib
location pcre includes:                 /usr/include/pcre.h
location pcre libraries:                /usr/lib

Type 'make'

gcc -DDEFPATH="\".:/usr/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/share/locale\"" -I. -I/usr/include/mysql -I/usr/include    -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c demon.c
In file included from demon.c:19:
logtool.c: В функции ‘SearchDNSBase'
logtool.c:252: предупреждение: результат ‘realloc', декларированной с атрибутом warn_unused_result, игнорируется
demon.c: В функции ‘ReadNewData'
demon.c:298: предупреждение: недостаточно аргументов для указанного формата
gcc -DDEFPATH="\".:/usr/share\"" -DHAVE_CONFIG_H -DLOCALEDIR="\"/usr/share/locale\"" -I. -I/usr/include/mysql -I/usr/include    -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1 -c tools.c
tools.c: В функции ‘send_mysql_query'
tools.c:169: предупреждение: assignment discards qualifiers from pointer target type
tools.c: В функции ‘url_decode'
tools.c:229: предупреждение: оператор без побочного эффекта
tools.c: В функции ‘TestPID'
tools.c:338: предупреждение: implicit declaration of function ‘kill'
tools.c: В функции ‘do_connect'
tools.c:552: предупреждение: присваивание преобразует указатель в целое без приведения типа
gcc  -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1  -o sams  demon.o tools.o  -I. -L/usr/lib -lmysqlclient -L/usr/lib -lpcre
gcc  -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1  -o samsf  daemon.o tools.o  -I. -L/usr/lib -lmysqlclient -L/usr/lib -lpcre
gcc  -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1  -o samsredir  redirect.o tools.o  -I. -L/usr/lib -lmysqlclient -L/usr/lib -lpcre
gcc  -O2 -Wall -D_BSD_SOURCE=1 -D_GNU_SOURCE=1  -o samsdaemon  samsdaemon.o tools.o  -I. -L/usr/lib -lmysqlclient -L/usr/lib -lpcre
buzdack@buzdack-server:~/documents/servers/sams/sams-1.0$ dh_make

Type of package: single binary, multiple binary, library, kernel module or cdbs?
 [s/m/l/k/b] m

Maintainer name : buzdack
Email-Address   : buzdack@unknown
Date            : Sat, 15 Dec 2007 19:53:57 +0200
Package Name    : sams
Version         : 1.0
License         : blank
Type of Package : Multi-Binary
Hit <enter> to confirm:
Skipping copying to sams-1.0.orig since sams-1.0.org.tar.gz exists.
Done. Please edit the files in the debian/ subdirectory now. sams
uses a configure script, so you probably don't have to edit the Makefiles.
buzdack@buzdack-server:~/documents/servers/sams/sams-1.0$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is sams
dpkg-buildpackage: source version is 1.0-1
dpkg-buildpackage: source changed by buzdack <buzdack@unknown>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 1.0-1
dpkg-checkbuilddeps: Unmet build dependencies: autotools-dev
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: (Use -d flag to override.)
buzdack@buzdack-server:~/documents/servers/sams/sams-1.0$

что неверно ?

я так понимаю проблемы с зависимостями ?  autotools-dev куда-то нужно положить ?  :idiot2:
« Последнее редактирование: 16 Декабрь 2007, 18:31:20 от Pegasus »

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #18 : 17 Декабрь 2007, 09:40:03 »
не положить а скачать
sudo apt-get install autotools-dev
AltYo консоль для Gtk3 в стиле консоли quake http://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Pegasus

  • Участник
  • *
  • Сообщений: 213
  • Ubuntu 8.04 AthXP 2500+ nForce2 1GB geForce6600GT
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #19 : 17 Декабрь 2007, 14:01:12 »
установил
а теперь хочет dpkg-buildpackage
$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package is sams
dpkg-buildpackage: source version is 1.0.0-1
dpkg-buildpackage: source changed by Pavel Vinogradov <Pavel.Vinogradov@nixdev.net>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 1.0.0-1
 fakeroot debian/rules clean
/usr/bin/dpkg-buildpackage: 212: fakeroot: not found

пробовал всякие
apt-get install dpkg dpkg-buildpackageоказывается надо было
apt-get install fakeroot  :D
мой первый пакет  :D :D :D

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #20 : 17 Декабрь 2007, 16:14:43 »
Поздравляю! Будем надеяться что когда нибудь ты станешь мантейнером какого нибудь пакета :)
AltYo консоль для Gtk3 в стиле консоли quake http://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Pegasus

  • Участник
  • *
  • Сообщений: 213
  • Ubuntu 8.04 AthXP 2500+ nForce2 1GB geForce6600GT
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #21 : 17 Декабрь 2007, 17:42:10 »
2
Denis Konstantinov
cпасибо за топик ::), без тя ничего б не вышло, снимаю шляпу :angel:

Оффлайн michael

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #22 : 27 Декабрь 2007, 21:12:49 »
Изготовил несколько пакетов, пользуясь инструкцией, и всё шло ок. Спасибо.
Но вот попался мне dc-клиент Valknut. И вот, при сборке его runtime-библиотеки под названием dclib-0.3.12, взятой с оффсайта проекта, происходит следующее: черновая сборка проходит на ура, да по-другому и не может быть, ибо программа сия давно у меня стоит и работает, а вот dpkg-buildpackage вылетает с ошибкой в конце стадии компиляции. Лог ошибки прилагаю. Есть ли какие-нибудь идеи на тему как это побороть?
« Последнее редактирование: 27 Декабрь 2007, 21:14:27 от michael »

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #23 : 28 Декабрь 2007, 00:44:40 »
Это не компиляция, это линкер ругается. Либо с путями до библиотек что-то, либо библиотеки нужные для сборки не указаны/не установлены.

Оффлайн michael

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #24 : 28 Декабрь 2007, 17:32:25 »
Хорошо, пусть будет линкер. Но как же стандартная сборка, та, которая configure && make && make install? Она-то проходит отлично, значит, всё установлено. Не постигаю...

Оффлайн Adgjmptw

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #25 : 29 Декабрь 2007, 10:30:34 »
траблы с установкой любых программ
/configure
checking build system type... i686-pc-linux-gnulibc1
checking host system type... i686-pc-linux-gnulibc1
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
в config.log последняя строчка - exit 77

Оффлайн Df_Yz

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #26 : 01 Январь 2008, 04:52:09 »
Хмм... Для "бекпорта" пакета из Дебиана никаких дополнительных телодвижений не требуется - всё как у бекпорта с нового релиза убунты? Или какая-то разница есть?
Наши лица как дым и никто не узнает как мы победим...(с) Пикник

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #27 : 04 Январь 2008, 18:58:24 »
Хмм... Для "бекпорта" пакета из Дебиана никаких дополнительных телодвижений не требуется - всё как у бекпорта с нового релиза убунты? Или какая-то разница есть?


Никаких различий нет.

2 Adgjmptw что говорит ls -l /usr/bin/gcc*
« Последнее редактирование: 04 Январь 2008, 19:01:49 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake http://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Freezkiller

  • Новичок
  • *
  • Сообщений: 16
  • Ubuntu-9.04 & Sharp Zaurus
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #28 : 17 Январь 2008, 01:08:57 »
Впервые собираю деб пакет, и вот столкнулся с непознанным
dpkg-deb: сборка пакета aqualung в файл ../aqualung_0.9beta8-1_i386.deb.
 signfile aqualung_0.9beta8-1.dsc
gpg: пропущено "Sergey Glassman <sergey@unknown>": секретный ключ не найден
gpg: [stdin]: clearsign failed: секретный ключ не найден

 dpkg-genchanges
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload (original source is included)
(WARNING: Failed to sign .dsc and .changes file)
кто нибудь подскажет о каком ключе идет речь? :idiot2:
Абырвалг!!!

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #29 : 17 Январь 2008, 09:55:38 »
debsign не может подписать пакет, в системе нет ключа для Sergey Glassman <sergey@unknown>
В принципе это на работу пакета никак не влияет, если вам интересно могу подсказать что нужно поправить чтобы этой ошибки не было.
AltYo консоль для Gtk3 в стиле консоли quake http://forum.ubuntu.ru/index.php?topic=198594.0

 

Страница сгенерирована за 0.194 секунд. Запросов: 24.