Решено: Проблема со сборкой deb-пакета (ошибка make)

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Решено: Проблема со сборкой deb-пакета

Сообщение Alex2ndr »

Всем доброго времени суток!

Возникла такая проблема - пытаюсь собрать свою програмку в deb-пакет. С помощью dh_make генерирую шаблон, заменяю и удаляю лишнее. Но при сборке выдает такое:

Код: Выделить всё

master alex@deb-book:~/development/asfs/python/asfs-0.1.0$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: установка CFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CPPFLAGS в значение по умолчанию:
dpkg-buildpackage: установка LDFLAGS в значение по умолчанию:
dpkg-buildpackage: установка FFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CXXFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: пакет исходных текстов asfs
dpkg-buildpackage: версия исходных текстов 0.1.0-1
dpkg-buildpackage: исходные тексты изменены .....
dpkg-buildpackage: архитектура хоста i386
 fakeroot debian/rules clean
/usr/bin/fakeroot: debian/rules: /usr/bin/make: плохой интерпретатор: Отказано в доступе
dpkg-buildpackage: сбой: fakeroot debian/rules clean возвратил код ошибки 126
master alex@deb-book:~/development/asfs/python/asfs-0.1.0$

Сначала я подумал, что где-то ошибся в rules и для эксперимента оставил тот, который генерится dh_make(который ничего не делает) - вот он -

Код: Выделить всё

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1





configure: configure-stamp
configure-stamp:
    dh_testdir
    # Add here commands to configure the package.

    touch configure-stamp


build: build-stamp

build-stamp: configure-stamp
    dh_testdir

    # Add here commands to compile the package.
    $(MAKE)
    #docbook-to-man debian/asfs.sgml > asfs.1

    touch $@

clean:
    dh_testdir
    dh_testroot
    rm -f build-stamp configure-stamp

    # Add here commands to clean up after the build process.
    $(MAKE) clean

    dh_clean

install: build
    dh_testdir
    dh_testroot
    dh_clean -k
    dh_installdirs

    # Add here commands to install the package into debian/asfs.
    $(MAKE) DESTDIR=$(CURDIR)/debian/asfs install


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
    dh_testdir
    dh_testroot
    dh_installchangelogs
    dh_installdocs
    dh_installexamples
#    dh_install
#    dh_installmenu
#    dh_installdebconf
#    dh_installlogrotate
#    dh_installemacsen
#    dh_installpam
#    dh_installmime
#    dh_python
#    dh_installinit
#    dh_installcron
#    dh_installinfo
    dh_installman
    dh_link
    dh_strip
    dh_compress
    dh_fixperms
#    dh_perl
#    dh_makeshlibs
    dh_installdeb
    dh_shlibdeps
    dh_gencontrol
    dh_md5sums
    dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

но вылетает та же ошибка. Попробовал пересобрать старый пакет - полгода назад он собирался без проблем, а сейчас вылетает та же ошибка. Попробовал запустить от рута - то же самое. Файл rules исполняемый -

Код: Выделить всё

master alex@deb-book:~/development/asfs/python/asfs-0.1.0$ ll ./debian/
итого 44K
drwxr-xr-x 2 alex alex 4,0K Фев 20 01:00 .
drwxr-xr-x 5 alex alex 4,0K Фев 20 00:28 ..
-rw-r--r-- 1 alex alex 1,7K Фев 19 23:58 asfs.8
-rw-r--r-- 1 alex alex  135 Фев 20 00:08 changelog
-rw-r--r-- 1 alex alex    2 Фев 19 23:58 compat
-rw-r--r-- 1 alex alex   44 Фев 20 00:36 conffiles
-rw-r--r-- 1 alex alex  454 Фев 20 00:23 control
-rw-r--r-- 1 alex alex 1,2K Фев 20 00:27 copyright
-rwxr-xr-x 1 alex alex 1,8K Фев 20 01:00 rules


Буду благодарен тому кто подскажет куда копать - такое ощущение, что make не работает. Проверил на 2-х компах (десктопе и ноутбуке) - то же самое.

Всем спасибо.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Решено: Проблема со сборкой deb-пакета

Сообщение watashiwa_daredeska »

user@localhost

$ ls -l /usr/bin/make $ head -n 1 debian/rules | hd
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Проблема со сборкой deb-пакета

Сообщение Alex2ndr »

watashiwa_daredeska писал(а):
20.02.2010 01:39

user@localhost

$ ls -l /usr/bin/make $ head -n 1 debian/rules | hd

Я конечно дуб - но все таки не настолько :)

Код: Выделить всё

master alex@deb-book:~/development/asfs/python/asfs-0.1.0$ ls -l /usr/bin/make
-rwxr-xr-x 1 root root 142328 Июн  3  2008 /usr/bin/make
master alex@deb-book:~/development/asfs/python/asfs-0.1.0$ aptitude show make
Пакет: make
Состояние: установлен
Автоматически установлен: нет
Версия: 3.81-5
Приоритет: необязательный
Раздел: devel
Сопровождающий: Manoj Srivastava <srivasta@debian.org>
Размер в распакованном виде: 991k
Зависимости: libc6 (>= 2.7-1)
Предлагаются: make-doc
Описание: The GNU version of the "make" utility.
 GNU Make is a program that determines which pieces of a large program need to be recompiled and issues the commands to recompile them, when
 necessary. More information about GNU Make can be found in the `make' Info page. The upstream sources for this package are available at the
 location ftp://ftp.gnu.org/gnu/make/. The documentation for this package does not meet the Debian Free Software Guidelines, and has been
 removed from this package.

master alex@deb-book:~/development/asfs/python/asfs-0.1.0$ head -n 1 debian/rules | hd
00000000  23 21 2f 75 73 72 2f 62  69 6e 2f 6d 61 6b 65 0a  |#!/usr/bin/make.|
00000010
master alex@deb-book:~/development/asfs/python/asfs-0.1.0$
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: Проблема со сборкой deb-пакета

Сообщение neol »

Нагуглено.
fakeroot debian/rules clean
/usr/bin/fakeroot: debian/rules: /usr/bin/make: bad interpreter: Permission denied

It was hard to find a solution but I the problem was on my /home directory.
I was mounting it on fstab from a volume without exec option.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Проблема со сборкой deb-пакета

Сообщение sash-kan »

Alex2ndr писал(а):
20.02.2010 01:27
#!/usr/bin/make -f

Alex2ndr писал(а):
20.02.2010 02:01
00000000 23 21 2f 75 73 72 2f 62 69 6e 2f 6d 61 6b 65 0a |#!/usr/bin/make.|
00000010

где правда?

neol писал(а):
20.02.2010 02:42
without exec option
всё возможно в этом мире. топик-стартер как раз в /home собирает. вместо по штату положенного /usr/src.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Решено: Проблема со сборкой deb-пакета

Сообщение Alex2ndr »

sash-kan писал(а):
20.02.2010 05:07
Alex2ndr писал(а):
20.02.2010 01:27
#!/usr/bin/make -f

Alex2ndr писал(а):
20.02.2010 02:01
00000000 23 21 2f 75 73 72 2f 62 69 6e 2f 6d 61 6b 65 0a |#!/usr/bin/make.|
00000010

где правда?

Вы не поверите - в обоих случаях правда :)
Просто когда создавал первый пост файл был орригинальный от dh_make. Но ко второму посту я уже успел поэкспериментировать и на всякий случай убрал флаг -f. Все равно не работало.

sash-kan писал(а):
20.02.2010 05:07
neol писал(а):
20.02.2010 02:42
without exec option
всё возможно в этом мире. топик-стартер как раз в /home собирает. вместо по штату положенного /usr/src.

А вот с noexec в точку. Дело в том что я дома работаю в 2-х местах - на десктопе и на буке. Чтобы файлы были доступны и там и там я поместил их на домашний север и примонтировал по nfs. Вот так -

Код: Выделить всё

 alex@deb-home:~$ cat /etc/fstab
...
192.168.0.1:/distr/Debian_Lenny /mnt/debdisks nfs defaults 0 0
192.168.0.1:/distr/development /home/alex/development nfs user,rw 0 0
192.168.0.1:/distr/documents /home/alex/documents nfs user,rw 0 0

Таким образом собираю я на nfs - а если посмотреть подробнее то по умолчанию она монтируется как раз noexec -

Код: Выделить всё

192.168.0.1:/distr/Debian_Lenny /mnt/debdisks nfs rw,addr=192.168.0.1 0 0
192.168.0.1:/distr/development /home/alex/development nfs rw,user=root,noexec,nosuid,nodev,addr=192.168.0.1 0 0
192.168.0.1:/distr/documents /home/alex/documents nfs rw,user=root,noexec,nosuid,nodev,addr=192.168.0.1 0 0

Просто я никогда не обращал на это внимание, т к файлы то запускались :) Точнее я их запускал например так - python main.py . Сейчас попробовал запустить сам файл - фиг -

Код: Выделить всё

master alex@deb-home:~/development/asfs/python/src$ ./parser.py
bash: ./parser.py: /usr/bin/env: плохой интерпретатор: Отказано в доступе

Переместил папку с проектом в /home - все собралось.
Так что всем спасибо - проблема понята - буду разбираться как ее решить.
Спасибо сказали: