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


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

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

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Здесь доступно много материала на эту тему https://wiki.ubuntu.com/PackagingGuide
И ещё http://www.debian.org/doc/maint-guide/

Попробую поделиться своим опытом в создании пакетов.

Вступление:
Отличие дистрибутивов основанных на Debian это не только отличная система управления пакетами apt-get (aptitude)
которая сама разрешает зависимости, но есть ещё и удобные инструменты для создания пакетов и своих репозиториев.

Если уж вы решились собрать программу из исходников, то советую ещё изучить как дебианизировать исходники.
Это отнимет чуть больше времени чем стандартное ./configure && make && make install
но за то позволит сохранить систему в чистоте. Удалить программы установленные командой make install можно только командой make uninstall, но не все исходники это поддерживают, а что ещё чаще исходники удаляют после установки, тогда удалить программу можно только вручную. Но чтобы это сделать нужно точно знать что и куда установилось :) А это уж точно никто не знает кроме самих разработчиков программы (ну или тех кто более менее разбирался в исходниках программы).

Цитировать
Ну и что? Главное работает!
- apt-get не знает ничего об программах установленных вручную соответственно могут быть конфликты или просто непонятные глюки.
- очень часто исходники по умолчанию "рассчитаны" на определённый дистрибутив или наоборот рассчитаны только на установку из исходников, при этом выполняются разного рода "удобные" настройки в конфигурационных файлах. Так например очень любят прописывать mime типы. Но проблема в том что переводы разные бывают и в наутилусе может выскочить ошибка "Имя файла <тут имя> показывает, что файл является типом файла <Документ1>. Содержимое файла показывает, что файл является файлом типа <Документ2>" и документ не будет открываться.
Таких "недочётов" может быть очень много. А теперь если представить что это удалить нельзя поскольку пользователь не запоминал что и куда поставилось, наступает паника и как результат переустановка :)

Цитировать
Но как быть если программу хочется поставить, а версия в deb пакете устарела, или такой вообще нет?

Есть два выхода использовать программу checkinstall. Она собирает всё в один пакет.
К сожалению она позволяет решить только вопрос с удалением программы.
И даже если apt-get будет знать, что программа установлена, он в лучшем случае сообщит, что конфликт файлов, файл /some/path/to/some/file уже есть в пакете "имя пакета собранного с помощью checkinstall"
Чаще всего такие случаи очень корректно разрешаются путём удаления конфликтного пакета. Но времени на разбор ситуации это у вас займёт.

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

Вижу вам всё ещё интересно :) Это радует.
И так дано:
некий исходник gcoolprog-0.5.3.tar.bz2
Нужно собрать пакет.

Решение.
Ниже идёт вариант как я обычно поступаю в таком случае.

Первым делом смотрю нет ли deb пакета той же версии но допустим под Debian.
Если есть делаю так см. "Есть нужная версия пакета в репозитории debian или в будущем релизе убунты"

Если нет той же версии но есть предыдущей.
Тут можно сказать как повезёт, если изменения в исходниках не коснулись положения файлов то скорее всего дебианизация от старого пакета подойдёт, нужно лишь сменить версию.
см. "Теперь вариант в репозитории есть пакет предыдущей версии."

ну и самый страшный случай нигде никаких deb пакетов нет только tar.gz и rpm :(
Не отчаиваться! И ни в коем случае не использовать rpm!!!

Нам понадобятся как минимум программы
sudo apt-get install  autoconf automake libtool autotools-dev dpkg-buildpackage fakerootможно так же autobook это документация по утилитам  "GNU Autoconf, Automake, и Libtool"

Ну и конечно то что требуют сами исходные коды, для корректной сборки.

А так же не помешает завести ключик которым мы будем подписывать пакеты.
Данный шаг не обязателен его можно пропустить.

Для этого зайдите в Приложения-> Стандартные-> Пароли и ключи шифрования
В открывшемся окне в меню ключ->новый ключ
выбираем ключ pgp
Заполняем поля полное имя и электронный адрес.
В мире свободного программного обеспечения, для предотвращения "краж" или "подделок" принято подписывать свои "ценные" вещи электронным ключём, открытая часть которого хранится на обще доступных серверах и позволяет другим пользователям легко выяснить подлинность и целостность той или иной вещи. Поэтому отнеситесь к созданию ключа очень ответственно. Никто вас не заставляет вписывать сюда реальные имя и фамилию, или ещё какие нибудь личные данные, но если вас не разыскивает интерпол думаю указать фамилию и имя будет верным решением, хотя можно и просто свой ник :)
В общем решайте сами. А вот почтовый адрес укажите реальный, и который вы не поменяете. Можно использовать адреса крупных доменов таких как gmail.com или yandex.ru (т.е. у вас там должен быть свой ящик) Это позволит в будущем легко связаться с вами, человеку который вас не знает но по той или иной причине встретил "вещь" подписанную вами.
Далее вас спросят ввести пароль. Как дополнительную защиту. Он может быть полезен если вы будете использовать закрытый ключ на машинах которым вы не можете 100% доверять. Обратная сторона, вам придётся вводить пароль каждый раз как только вы будете что то подписывать. Хотя последняя версия программы seahorse имеет демон который автоматически запускается в сеансе гнома, и умеет "запоминать пароль" на время сеанса, но пока не все программы умеют с ней работать.
И так вы создали ключ теперь его можно будет использовать при создании пакетов.
Для этого в файл ~/.bashrc или в другой стартовый скрипт вашего любимого шелла (для zsh ~/.zshrc)  нужно вписать переменные
export DEBEMAIL=ваш@емэил
на основании емаил будет искаться ключ в пгп при подписи. пакета.
Нужно перелогиниться чтобы изменения вступили в силу.
Помните что если вы бэкпортируете пакет дебианизированный не вами обязательно нужно изменить версию.
Командой dch -i для того чтобы в изменениях вписался ваш email .
А для того чтобы ваш открытый ключ попал на сервер, в настройках seahorse ("Пароли и ключи шифрования")
нужно настроить соединение с сервером публичных ключей. Для этого нужно в меню правка->параметры
на закладке "Публикация ключей" поставить галку "Публиковать ключи..."
теперь можно выбрать ключ и в меню по правой кнопке выбрать "Синхронизировать и опубликовать ключи"


И так ...

Начну с самого страшного :)) поскольку остальные случаи это частные решения самого страшного.


И так у нас есть только gcoolprog-0.5.3.tar.bz2
Обычно я выполняю следующие действия
$ mkdir ~/src/gcoolprog
$ mkdir ~/src/gcoolprog/0.5.3
$ cd ~/src/gcoolprog/0.5.3
$ wget "http://<путь до файла>" (можно конечно и просто через браузер скачать но обычно так быстрее)

получаем файл gcoolprog-0.5.3.tar.bz2

Немного забегая в перёд пере архивируем файл программой gzip
$ bunzip2  gcoolprog-0.5.3.tar.bz2
$ gzip gcoolprog-0.5.3.tar
получим gcoolprog-0.5.3.tar.gz
и переименуем
$ mv gcoolprog-0.5.3.tar.gz gcoolprog_0.5.3.orig.tar.gz
(т.е. разделили имя и версию подчёркиванием и после версии добавили слово orig)

теперь распаковываем его (но не в коем случае не удаляем!)
$ tar zxvf ./gcoolprog_0.5.3.orig.tar.gz
$ cd gcoolprog-0.5.3
(замечание для корректной сборки нужно чтобы корневая директория содержала не только название но и версию!)
ниже будем считать директорию ~/src/gcoolprog/0.5.3/gcoolprog-0.5.3 корневой директорией исходников.

далее выполняем "черновую" сборку. Т.е. делаем как обычно ./configure --prefix=/usr && make (но не устанавливаем!)
если конфигурируется со всеми нужными опциями и собирается в бинарный файл, значит осталось только дебианизировать.

Дебианизация:
Ничего страшного в этом нет, как я уже говорил есть скрипты которые сильно упрощают этот процесс.
Вообще смысл всей этой процедуры создать директорию debian в корне исходников, с нужными файлами конфигурации и скриптом(ами)
для этого выполним

$ dh_make

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

Maintainer name : denis
Email-Address   : Ubuntu_user@mail.ru
Date            : Mon, 13 Aug 2007 12:40:33 +0400
Package Name    : gcoolprog
Version         : 0.5.3
License         : blank
Type of Package : Single
Hit <enter> to confirm:
Skipping creating ../gcoolprog_0.5.3.orig.tar.gz because it already exists
Done. Please edit the files in the debian/ subdirectory now. gcoolprog
uses a configure script, so you probably don't have to edit the Makefiles.

Последние строчки можно перевести как:

Цитировать
Пропускаем создание ../gcoolprog_0.5.3.orig.tar.gz т.к. такой файл уже есть
Выполнено. Пожалуйста теперь отредактируйте файлы в директории  debian/ . gcoolprog
использует скрипт конфигурирования, поэтому вам возможно не нужно редактировать Make-файлы.

так мы сформировали пекет для одиночного бинарного файла.

Если бы мы не переименовали архив то получили бы следующее сообщение
Could not find gcoolprog_0.5.3.orig.tar.gz
Either specify an alternate file to use with -f,
or add --createorig to create one.
в таком случае советую прервать dh_make (ctrl+c) и переименовать архив как описано выше.

Но мы с вами молодцы и всё у нас прошло без ошибок появился каталог debian в корне исходников
посмотрев его содержимое увидите кучу файлов (расширение .ex) с примерами на все случаи жизни.
будем считать что программа у нас простая обычно ни один из этих файлов не нужен.

Первым делом нужно добавить описание программы в файле debian/control

Description: <insert up to 60 chars description>                                                                                                              
 <insert long description, indented with spaces>

В место <insert up to 60 chars description> и <insert long description, indented with spaces> (без угловых кавычек) нужно вписать описание что это за программа. Именно эти сведения увидит пользователь когда посмотрит описание пакета в synaptic'е.

второй момент это поправить файл debian/rules
в секции binary-arch:
нужно раскомментировать
      dh_install(т.е. убрать # в начале строки)
без этого мы получим пустой пакет.

Обычно этих настроек достаточно для сборки пакета с одной программой которая не содержит разделяемых библиотек т.е. только бинарник в /usr/bin и данные в /usr/share

Теперь можно выполнить в корне с исходниками

$ dpkg-buildpackage -rfakeroot
Если при сборке произошла ошибка
dpkg-shlibdeps: failure: no dependency information found for /usr/lib/libxmega.so.9 (used by debian/gcoolprog/usr/bin/gcoolprog).
Это означает, что у вас установлена необходимая библиотека (т.к. программа скомпилировалась), но
система dpkg об этой библиотеки ничего не знает, например, поставили нужную библиотеку командой make install.
Или, если вы пытаетесь собрать сложную программу, состоящую из разных модулей,
вы собрали один из модулей без разбиения на библиотеки/программы.
Дело в том, что dpkg-shlibdeps ищет подходящие библиотеки в файлах
 /var/lib/dpkg/info/<package>.symbols или /var/lib/dpkg/info/<package>.shlibs
т.к. мы собирали пакет для одиночного бинарного файла файлы описывающие какие библиотеки входят в пакет не создавались!
Как решить эту проблему, это уже задача настоящего мантейнера, тут вам придётся разобраться за что твечает каждый файл
в debian директории, и руками править control и другие файлы, учитывая руководство Debian Policy.



Если ошибок не будет, мы получим файлы

$ cd .. (в директорию выше т.е. в ~/src/gcoolprog/0.5.3)
$ ls -1
gcoolprog_0.5.3-1.diff.gz
gcoolprog_0.5.3-1_i386.changes
gcoolprog_0.5.3-1_i386.deb
gcoolprog_0.5.3.orig.tar.gz

вот теперь мы можем установить пакет

$ dpkg -i *.deb






Теперь вариант в репозитории есть пакет предыдущей версии.

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

$ mkdir ~/src/gcoolprog
$ mkdir ~/src/gcoolprog/0.5.3
$ cd ~/src/gcoolprog/0.5.3
$ wget "http://<путь до файла>"

получаем файл gcoolprog-0.5.3.tar.bz2

$ bunzip2  gcoolprog-0.5.3.tar.bz2
$ gzip gcoolprog-0.5.3.tar
$ mv gcoolprog-0.5.3.tar.gz gcoolprog_0.5.3.orig.tar.gz

теперь распаковываем его
tar zxvf ./gcoolprog_0.5.3.orig.tar.gz

скачиваем с http://packages.ubuntu.com файл gcoolprog_0.5.1.diff.gz (в самом низу в секции More Information on gcoolprog)
$ wget "http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.1.diff.gz"
$ gunzip gcoolprog_0.5.1.diff.gz
$ patch -p0 <./gcoolprog_0.5.1.diff

получаем директорию
~/src/gcoolprog/0.5.3/gcoolprog-0.5.1/debian

копируем каталог debian в директорию
~/src/gcoolprog/0.5.3/gcoolprog-0.5.3

дальше нам нужно изменить версию командой
$ dch -i этой командой изменяется файл debian/changelog

например увидим

gcoolprog (0.5.1-1ubuntu2) feisty; urgency=low

  *

 -- denis <ubuntu_user@mail.ru>  Mon, 13 Aug 2007 14:13:27 +0400

но поскольку у нас версия 0.5.3 то нужно изменить значения на

gcoolprog (0.5.3-1ubuntu1) feisty; urgency=low

  * New upstream release.

 -- denis <ubuntu_user@mail.ru>  Mon, 13 Aug 2007 14:13:27 +0400
сохранить изменения

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

$ dpkg-buildpackage -rfakerootполучим файлы
$ cd ..
$ ls -1
gcoolprog_0.5.3-1.diff.gz
gcoolprog_0.5.3-1_i386.changes
gcoolprog_0.5.3-1_i386.deb
gcoolprog_0.5.3.orig.tar.gz

$ dpkg -i *.deb








Ну и последний вариант
Есть нужная версия пакета в репозитории debian или в будующем релизе убунты
для дебиана нужно использовать сайт packages.debian.org
для убунты packages.ubuntu.com
тогда например в убунте ищем пакет gcoolprog в репозитории будующего релиза.

$ mkdir ~/src/gcoolprog
$ mkdir ~/src/gcoolprog/0.5.3
$ cd ~/src/gcoolprog/0.5.3
теперь скачиваем три файла
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.3-1.dsc
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.3.orig.tar.gz
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.3-1.diff.gz
или тоже самое но одной командой
dget  http://archive.ubuntu.com/ubuntu/pool/universe/g/gcoolprog/gcoolprog_0.5.3-1.dscзатем распакуем командой

$ dpkg-source -x ./gcoolprog_0.5.3-1.dsc
получим каталог gcoolprog-0.5.3

перейдём в него и сменим версию
$ cd gcoolprog-0.5.3
$ dch -i

gcoolprog (0.5.3-1ubuntu1) feisty; urgency=low

  * backport from gutsy

 -- denis <ubuntu_user@mail.ru>  Mon, 13 Aug 2007 14:13:27 +0400

теперь можно собирать пакет

$ dpkg-buildpackage -rfakeroot
получим файлы
$ cd ..
$ ls -1.
gcoolprog_0.5.3-1.diff.gz
gcoolprog_0.5.3-1_i386.changes
gcoolprog_0.5.3-1_i386.deb
gcoolprog_0.5.3.orig.tar.gz

$ dpkg -i *.deb

Некоторые команды мне подсказал Александр Герасёв
http://gq.net.ru/2007/03/16/building-deb-packages/

Официальное полное руководство на Русском http://www.debian.org/doc/maint-guide/
Уголок разработчика Debian http://www.debian.org/devel/

Хороший цикл статей http://tigro.info/blog/index.php?id=375
правда автор предвзято относится к сборке deb пакетов, но если на это не обращать внимания вполне приличный обзор.

P.S. прежде чем собирать пакет попробуйте воспользоваться поиском на ланчпаде https://launchpad.net/ubuntu/+ppas . возможно что нужный пакет уже кто-то собрал или можно воспользоваться правилами сборки.
« Последнее редактирование: 28 Января 2011, 14:25:10 от stmc »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн bad_duck

  • Участник
  • *
  • Сообщений: 109
  • Бледнолицый друг пингвинов
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #1 : 11 Сентября 2007, 08:53:14 »
Делал все по инструкции (имеются только исходники) - не получилось.
Стал искать в инете. Нашел недопереведенный мануал https://help.ubuntu.com/ubuntu/packagingguide/ru/index.html
Почитав его выяснилось, что нужны дополнительные пакеты и самое главное gpg ключ сборщика.
...
Копаю дальше.

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #2 : 11 Сентября 2007, 09:32:12 »
пакеты и самое главное gpg ключ сборщика.Ключи сборщика не нужны.

а что не получилось то???
« Последнее редактирование: 11 Сентября 2007, 09:38:42 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн bad_duck

  • Участник
  • *
  • Сообщений: 109
  • Бледнолицый друг пингвинов
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #3 : 12 Сентября 2007, 08:56:54 »
Ключ сборщика у меня просили когда я делал по инструкции с help.ubuntu.com

Немного подумав, я нашел то, что мне надо в репках, но ради интереса решил-таки собрать пакет, но подумав еще :)
Цитировать
Обычно этих настроек достаточно для сборки пакета с одной программой которая не содержит разделяемых библиотек т.е. только бинарник в /usr/bin и данные в /usr/share
А если я пытаюсь сделать пакет с самой библиотекой?

ПыСы. Сначала пришлось закоментировать dh_installdocs в debian/rules (и на всякий случай dh_installexamples тоже запретил), т.к. была ошибка, что не возможно выполнить stat для README. После этого получил
...
dh_install
dh_install: glib-dev missing files (usr/include/*), aborting
make: *** [binary-arch] Ошибка 1
Исходник - ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.13.tar.gz
« Последнее редактирование: 12 Сентября 2007, 09:10:46 от bad_duck »

Оффлайн SeaJey

  • Активист
  • *
  • Сообщений: 770
  • Electronic Knight
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #4 : 13 Октября 2007, 13:16:41 »
Дебианизировал один пакет - у меня, по крайней мере, установился нормально. Как бы его на других машинах потестить? Просто в общий доступ - неудобно, кажется описание кривым получилось, и вместо почтового адреса - nick@computername.
В уже собранном deb пакете это можно поправить?

ЗЫ
А ключ сборщика получить сложно?

Оффлайн supaplex

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #5 : 17 Октября 2007, 14:37:21 »
Иногда перед сборкой в каталоге с исходниками требуется запустить libtool

Оффлайн SeaJey

  • Активист
  • *
  • Сообщений: 770
  • Electronic Knight
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #6 : 17 Октября 2007, 21:28:59 »
Цитировать
Иногда перед сборкой в каталоге с исходниками требуется запустить libtool
Так вроде ./configure сам libtool вызывает. Не однажды лично наблюдал.

Оффлайн Crew

  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #7 : 18 Октября 2007, 01:23:43 »
Конфигурация не всегда вызывает исполнение libtool.
По крайней мере, все зависит от скриптов сборки (первоначально, autogen.sh, который в свою очередь ориентируется на другие скрипты).
Так что, в общем случае, libtool не помешает.
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн 2uha1glaz

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #8 : 26 Октября 2007, 13:36:38 »
Все делал по инструкции, однако не получилось сделать

./configure

пишет, что не существует такой директории...

Оффлайн SeaJey

  • Активист
  • *
  • Сообщений: 770
  • Electronic Knight
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #9 : 26 Октября 2007, 17:38:51 »
build-essential установлен?
Точно в директории, где запускался ./configure лежит файл configure?
Некоторые пакеты используют другой метод сборки, что по этому поводу в ридми написано?

Оффлайн Pegasus

  • Участник
  • *
  • Сообщений: 213
  • Ubuntu 8.04 AthXP 2500+ nForce2 1GB geForce6600GT
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #10 : 28 Ноября 2007, 13:54:31 »
Цитировать
Т.е. делаем как обычно ./configure --prefix=/usr && make (но не устанавливаем!)
а какой prefix собственно для Убунты писать ?

Оффлайн michael

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #11 : 04 Декабря 2007, 19:05:34 »
И ещё вопрос: а как собирать пакет из исходников CVS, предназначенных для scons? Ведь мэйкфайла нет в директории с исходниками, его роль выполняет SConstruct, и dpkg-buildpackage на этом запинается, пишет "не заданы цели и не найден make-файл."

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #12 : 05 Декабря 2007, 13:20:32 »
Цитировать
Т.е. делаем как обычно ./configure --prefix=/usr && make (но не устанавливаем!)
а какой prefix собственно для Убунты писать ?
тот что написан
Цитировать
И ещё вопрос: а как собирать пакет из исходников CVS, предназначенных для scons? Ведь мэйкфайла нет в директории с исходниками, его роль выполняет SConstruct, и dpkg-buildpackage на этом запинается, пишет "не заданы цели и не найден make-файл."
вот тут напряг :(
так просто дебианизировать не получится. Нужно руками создавать файл rules
или подсмотреть в подобной программе которая есть в репозитории.
« Последнее редактирование: 05 Декабря 2007, 13:22:34 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн michael

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #13 : 06 Декабря 2007, 18:26:40 »
 Вот файл rules как раз и есть, и он вполне вменяемый, судя по тому, что dpkg-buildpackage вполне успешно запихивает собранную прогу в *.tar.gz, после чего обламывается на сборке deb-пакета. Не может оно найти именно Makefile, вместо которого есть Sconstruct. Наводящий вопрос: может быть, можно переписать этот самый SConstruct так, чтобы он был схаван как Makefile?

Оффлайн Kucha

  • Новичок
  • *
  • Сообщений: 44
    • Просмотр профиля
Re: Сборка из исходников в Debian (Ubuntu)
« Ответ #14 : 12 Декабря 2007, 08:56:53 »
Всем привет! Ребята помогите не могу установить задаю команду
 ./configure --prefix=/usr && make
И вот результат
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... no
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Что нужно доустановить или как вообщем это вылечить...
Есть одна фраза: лучше один раз увидеть, чем сто раз услышать.

 

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