LINUXPORTAL.RU  |   Живое общение LinuxPortal.Ru   |    Ленты событий        |   ФОРУМЫ  |   БИБЛИОТЕКА  |   ССЫЛКИ  |   НОВОСТИ  |   БЛОГИ АДМИНОВ

Участники   Поиск   F.A.Q.    Регистрация    Вход   Начало
Начало » Для начинающих и опытных пользователей » Всё для всех » Собрать свой deb пакет
Показать: Сегодняшние сообщения  :: Показать голосования :: Навигатор по сообщениям
Отправить по e-mail 
Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
Собрать свой deb пакет Пнд, 23 Ноябрь 2009 16:55 Переход к следующему сообщения
vokunya в настоящее время не в онлайне vokunya  BELARUS
Сообщений: 5
Зарегистрирован: Ноябрь 2009
Частый Гость
Прошу сразу не пинать в гугл. Да, статьи по этой теме есть, но т.к. в линуксе я совсем зеленый, то возникают некоторые специфические ситуации, с которыми самостоятельно справиться не могу.
А именно:
1. есть 3 текстовых файла
2. надо собрать deb, чтобы после его установки эти файлы оказались в /var/www/directory (только не спрашивайте, нафига делать из этого пакет, такова задача)

Я читал про то, что надо положить эти текстовые файлы в папку имяпакета-версия, там создать соответствующую структуру каталогов, затем dpkg -b и все гуд - с этим проблем нет, все получается, но...
задача такова:
структуру каталогов создавать нельзя,
текстовые файлы должны лежать в папке имяпакета-версия/data, а в имяпакета-версия/DEBIAN/ должен быть rules, в котором как-то указать что файлы должны оказаться в том месте, что я указывал в п.2

Пожалуйста, конкретный пример rules
я брал пример http://www.debian.org/doc/manuals/maint-guide/ch-crules.ru.h tml#s-rules, тупо копировать-вставить и менял DESTDIR=/var/www/directory
Естественно, не помогло.
Подскажите каким все-таки должен быть правильно составленный rules
Или на крайний случай, (насколько я понял) можно же написать скрипт в postinst, чтобы после установки файлы перемещались в /var/www/directory (сейчас они помещаются естественно в /data/), а затем /data/ удалялась
Re: Собрать свой deb пакет Втр, 24 Ноябрь 2009 09:46 Переход к предыдущему сообщенияПереход к следующему сообщения
cppmm в настоящее время не в онлайне cppmm  RUSSIAN FEDERATION
Сообщений: 532
Зарегистрирован: Июнь 2006
Географическое положение: Tomsk

Посмотрите ещё раз инструкцию по сборке пакетов. Предполагается, что пакет вы собираете из готовых исходников, а потому у них есть специальный Makefile.
Т.е. последовательность действий такова:
1. Создаём директорию имяпакета-версия.пакета и переходим в неё.
2. Кладём в неё три ваших текстовых файла и Makefile со следующим содержимым:
DESTDIR = /var/www/destdir

build:
	true

install:
	install -d $(DESTDIR)
	install -m755 depends_store.sh $(DESTDIR)

clean:
	true

3. Формируем оригинальный и debian'овский заготовки - dh_make --createorig
4. Правим описания в debian/control, чтобы не поймать несколько error'ов(в инструкциях на debian.org есть достаточно описаний каждого пункта).
5. Правим changelog(главное - подправить версию дистрибутива - подефолту unstable).
6. Собираем пакет: debuild.
В итоге в директории уровнем выше мы получим нужный нам deb-пакет.
Re: Собрать свой deb пакет Втр, 24 Ноябрь 2009 12:00 Переход к предыдущему сообщенияПереход к следующему сообщения
vokunya в настоящее время не в онлайне vokunya  BELARUS
Сообщений: 5
Зарегистрирован: Ноябрь 2009
Частый Гость
правлю debian/control:
Source: test
Section: doc
Priority: optional
Maintainer: x <x@x>
Build-Depends: debhelper (>= 7)
Standards-Version: 3.7.3

Package: test
Architecture: i386
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: none
 none


затем debian/changelog (на debian.org говорят, что
Цитата:

Раздел должен быть ‘unstable’ (нестабильный) или ‘experimental’ (экспериментальный)
пробовал и так, и просто lenny):
test (0.1-1) lenny; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- x <x@x>  Tue, 24 Nov 2009 10:35:36 +0200


Далее debuild из папки имяпакета-версияпакета/
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: установка CFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CPPFLAGS в значение по умолчанию:
dpkg-buildpackage: установка LDFLAGS в значение по умолчанию:
dpkg-buildpackage: установка FFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: установка CXXFLAGS в значение по умолчанию: -g -O2
dpkg-buildpackage: пакет исходных текстов test
dpkg-buildpackage: версия исходных текстов 0.1-1
dpkg-buildpackage: исходные тексты изменены x <x@x>
dpkg-buildpackage: архитектура хоста i386
 fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
/usr/bin/make clean
make[1]: Entering directory `/home/stas/test-0.1'
true
make[1]: Leaving directory `/home/stas/test-0.1'
dh_clean
 dpkg-source -b test-0.1
dpkg-source: инфо: используется формат исходника `1.0'
dpkg-source: инфо: сборка test в test_0.1.orig.tar.gz
dpkg-source: инфо: сборка test в test_0.1-1.diff.gz
dpkg-source: предупреждение: недавно созданный пустой файл 'debian/docs' не будет включён в diff
dpkg-source: предупреждение: файл test-0.1/debian/changelog не завершается символом новой строки (оригинальная или изменённая версия)
dpkg-source: инфо: сборка test в test_0.1-1.dsc
 debian/rules build
dh_testdir
# Add here commands to configure the package.
touch configure-stamp
dh_testdir
# Add here commands to compile the package.
/usr/bin/make
make[1]: Entering directory `/home/stas/test-0.1'
true
make[1]: Leaving directory `/home/stas/test-0.1'
#docbook-to-man debian/test.sgml > test.1
touch build-stamp
 fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/test.
/usr/bin/make DESTDIR=/home/stas/test-0.1/debian/test install
make[1]: Entering directory `/home/stas/test-0.1'
install -d /home/stas/test-0.1/debian/test
install -m755 depends_store.sh /home/stas/test-0.1/debian/test
install: невозможно выполнить stat для `depends_store.sh': Нет такого файла или каталога
make[1]: *** [install] Ошибка 1
make[1]: Leaving directory `/home/stas/test-0.1'
make: *** [install] Ошибка 2
dpkg-buildpackage: сбой: fakeroot debian/rules binary возвратил код ошибки 2
debuild: fatal error at line 1319:
dpkg-buildpackage -rfakeroot -D -us -uc failed


Ошибки есть, но создались файлы:
test_0.1-1.diff.gz
test_0.1-1.dsc
test_0.1-1_i386.build
test_0.1.orig.tar.gz

deb не создался
Re: Собрать свой deb пакет Срд, 25 Ноябрь 2009 14:05 Переход к предыдущему сообщенияПереход к следующему сообщения
cppmm в настоящее время не в онлайне cppmm  RUSSIAN FEDERATION
Сообщений: 532
Зарегистрирован: Июнь 2006
Географическое положение: Tomsk

Makefile надо было переписать под свои нужды. Я-то из собственного пакета скопипастил и не везде заменил всё, что надо для вашего случая.
Re: Собрать свой deb пакет Срд, 25 Ноябрь 2009 14:59 Переход к предыдущему сообщения
cppmm в настоящее время не в онлайне cppmm  RUSSIAN FEDERATION
Сообщений: 532
Зарегистрирован: Июнь 2006
Географическое положение: Tomsk

Если точнее, вам надо исправить секцию "install:" в Makefile, вписав там ваши файлы.
  Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
Предыдущая тема:Fedora 11 и wine
Следующая тема:Не запускаются файлы *.sh
Переход к форуму:
  

-=] Вернуться вверх [=-
[ Сформировать XML ] [ RSS ]

Текущее время: Сбт Июл 31 17:54:56 MSD 2010
.:: Обратная связь :: Начало ::.

При поддержке: FUDforum 3.0.0.
Copyright © 2001-2009 FUDforum Bulletin Board Software

©"Linuxportal.Ru". Материалы сайта можно использовать свободно при условии сохранения этой свободы при дальнейшем распространении, если явно не указано иное.

Дизайн и программирование: ,
Поставьте нашу кнопку: Linux Portal.ru ::: Линукс Портал.ру