LinuxForum.Fans
Тема

Создание deb пакета из исходников

Автор: shurius 19 сообщений 9042 просмотров
#95866

Доброго времени суток!
Пытаюсь собрать deb-пакет из исходников.
Скачал, распаковал.
Далее проделал:
#./Configure
#make
#dh-make


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

Maintainer name : user
Email-Address : user@site
Date : Sun, 8 Jun 2009 14:12:55 +0200
Package Name : nginx
Version : 0.8.53
License : blank
Using dpatch : no
Type of Package : Single
Hit <enter> to confirm:
Skipping creating ../nginx_0.8.53.orig.tar.gz because it already exists
Done. Please edit the files in the debian/ subdirectory now. nginx
uses a configure script, so you probably don't have to edit the Makefiles.


Далее делаю:
#dpkg-buildpackage -rfakeroot


И вот такая ошибка:

Показать
#dpkg-buildpackage -rfakeroot
dpkg-buildpackage: экспорт CFLAGS из dpkg-buildflags (происхождение: vendor): -g -O2
dpkg-buildpackage: экспорт CPPFLAGS из dpkg-buildflags (происхождение: vendor):
dpkg-buildpackage: экспорт CXXFLAGS из dpkg-buildflags (происхождение: vendor): -g -O2
dpkg-buildpackage: экспорт FFLAGS из dpkg-buildflags (происхождение: vendor): -g -O2
dpkg-buildpackage: экспорт LDFLAGS из dpkg-buildflags (происхождение: vendor):
dpkg-buildpackage: пакет исходных текстов nginx
dpkg-buildpackage: версия исходных текстов 0.8.53-1
dpkg-buildpackage: исходные тексты изменены shurius <shurius@debian.home>
dpkg-buildpackage: архитектура узла i386
dpkg-source --before-build nginx-0.8.53
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
make[1]: Entering directory `/home/shurius/headers/nginx-0.8.53'
rm -rf Makefile objs
make[1]: Leaving directory `/home/shurius/headers/nginx-0.8.53'
dh_clean
dpkg-source -b nginx-0.8.53
dpkg-source: инфо: используется формат исходника «3.0 (quilt)»
dpkg-source: инфо: сборка nginx с использованием существующего ./nginx_0.8.53.orig.tar.gz
dpkg-source: инфо: сборка nginx в nginx_0.8.53-1.debian.tar.gz
dpkg-source: инфо: сборка nginx в nginx_0.8.53-1.dsc
debian/rules build
dh build
dh_testdir
dh_auto_configure
./configure: error: invalid option "--build=i486-linux-gnu"
dh_auto_configure: ./configure --build=i486-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libexecdir=${prefix}/lib/nginx --disable-maintainer-mode --disable-dependency-tracking returned exit code 1
make: *** [build] Ошибка 2
dpkg-buildpackage: ошибка: debian/rules build возвратил код ошибки 2

Сам файл debian/rules пустой почти........... там только это:

Показать
%:
dh $@

Кто что подскажет?

#95869

Кстати, пробовал другие пакеты та же ситуация!
и файл rulez такой же почти пустой...

#95870

есть хорошая вещь checkinstall выполняется за место make install.
ставить её так apt-get install checkinstall

#95876

это я знаю но интересует именно этот способ.
Что не так и почему не работает?

#95889

может для начала заместо
dpkg-buildpackage -rfakeroot
так
dpkg-buildpackage -r fakeroot
?

#95893

может для начала заместо
dpkg-buildpackage -rfakeroot
так
dpkg-buildpackage -r fakeroot
?

нет, имеено -rfakeroot

После выполнения
#dpkg-buildpackage -rfakeroot

вот в чём ошибка поидее:
./configure: error: invalid option "--build=i486-linux-gnu" Весь лог выше скидывал.

Только что с ней делать?

#95895

./configure --help
?

#95898

Да нет, сам ./configure и make прошли успешно это после команды dpkg-buildpackage -rfakeroot ошибка.

#95902
shurius написал:
Да нет, сам ./configure и make прошли успешно это после команды dpkg-buildpackage -rfakeroot ошибка.

вы уверены?
dh_auto_configure: ./configure --build=i486-linux-gnu --
может надо просто настроить dh-make

#95909

вы уверены?
dh_auto_configure: ./configure --build=i486-linux-gnu --
может надо просто настроить dh-make

Может... только что и какие разделы за это отвечают?

#95915

тут /usr/share/doc/debhelper/examples/
говорят есть примеры rules рой в эту тему. Ибо косяк у тя тут.

#95918
shurius написал:
./configure: error: invalid option "--build=i486-linux-gnu"

это не ошибка, это ерунда.
почему бы вам таки не сделать всё уже поверенным способом - http://linuxforum.ru/viewtopic.php?pid=24523#p24523 ?

#95925

это не ошибка, это ерунда.
почему бы вам таки не сделать всё уже поверенным способом - Готовые решения в Debian GNU/Linux #24523 ?

Я так и делаю. Только после выполнения dpkg-buildpackage -rfakeroot вот такая ошибка как в логе в 1 посте моём

#95938
shurius написал:
#./Configure
#make
#dh-make
shurius написал:
Я так и делаю.

не вижу.

#96246

Я пробовал по разному и так как я написал и так как у тебя указано итог один и тот же.

#110175

wget http://nginx.org/download/nginx-0.8.52.tar.gz
tar -xcvf nginx-0.8.52.tar.gz
cd nginx-0.8.52

dh_make -s -e ****@somedomain.tld -f ../nginx-0.8.52.tar.gz

правим debian/control до того состояния которое надо.

добавляем параметры конфигурации
vim debian/rules
<code>
override_dh_auto_configure:
./configure --prefix=/serv/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --with-debug --with-pcre --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_stub_status_module --with-http_flv_module --with-http_ssl_module --with-http_dav_module --with-http_gzip_static_module --with-pcre=/usr/src/pcre-7.9

%:
dh $@
</code>

далее
debuild
по хорошему ещё пакеты стоит подписывать, но это совсем другая история.


и вуаля пакет готов в директории уровнем выше.

#170373

может кто подскажет ,
не как не могу понять причины, но не собирается с дефолтовым префиксом (--prefix=/usr/local/nginx)

ругается в самом конце

text
   
   dh_perl
   dh_usrlocal
dh_usrlocal: debian/nginx/usr/local/nginx/sbin/nginx is not a directory
rmdir: failed to remove `debian/nginx/usr/local/nginx/sbin': Directory not empty
dh_usrlocal: rmdir debian/nginx/usr/local/nginx/sbin returned exit code 1
make: *** [binary] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1340:

место действия
[console]uname -a
Linux wheezy 2.6.38-2-amd64 #1 SMP Sun May 8 13:51:57 UTC 2011 x86_64 GNU/Linux
[/console]

#170385

Solver, собственно зачем собирать? У меня nginx 1.04 работает, обновляется, php, mysql... Статью даже написал по этому поводу.

#170393

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

Войдите или зарегистрируйтесь, чтобы ответить.