Я являюсь автором небольшой библиотеки баз данных с открытым исходным кодом и хочу предоставлять пакеты .deb через мой ppa. У меня есть пара проблем. Я следовал документации и нескольким учебникам и создал каталог debian /, но когда я запускаю 'dpkg-buildpackage -rfakeroot', я получаю следующую ошибку:
dh_install: hamsterdb-dev missing files (usr/lib/pkgconfig/*), aborting
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
мне нужно предоставить / usr / lib /pkgconfig/hamsterdb-dev.pc?
В процессе сборки запускаются тесты юнитов, и многие файлы создаются или изменяются. Когда я снова запускаю dpkg-buildpackage, я получаю много ошибок, вот отрывки:
dpkg-source: error: old version is plain file
dpkg-source: error: cannot represent change to hamsterdb/install-sh:
dpkg-source: error: new version is symlink to /usr/share/automake-1.11/install-sh
dpkg-source: error: old version is plain file
или эти:
dpkg-source: error: cannot represent change to tools/tests/db1.db: binary file contents changed
dpkg-source: error: add tools/tests/db1.db in debian/source/include-binaries if you want to store the modified binary in the debian tarball
dpkg-source: warning: executable mode 0775 of 'tools/tests/export_import.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_dump/generate.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_dump/compare.sh' will not be represented in diff
dpkg-source: warning: executable mode 0775 of 'tools/tests/ham_info/generate.sh' will not be represented in diff
dpkg-source: warning: file hamsterdb/documentation/latex/namespacehamsterdb.tex has no final newline (either original or modified version)
dpkg-source: warning: file hamsterdb/documentation/latex/index.tex has no final newline (either original or modified version)
dpkg-source: error: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b hamsterdb gave error exit status 2
Есть ли способ «форсировать» генерацию файл deb? Или просто игнорировать эти «непредставимые изменения в исходных» ошибках?
Мне удалось исправить ошибки, которые я перечислил выше, но теперь я сталкиваюсь с другой (также может быть вызвано моим отсутствием знаний в области automake) , debuild запускает "libtool" на исходных кодах библиотеки, но не создает никаких выходных файлов (по крайней мере, я не нахожу никаких). И тогда сборка примера завершается с ошибкой:
make[3]: Entering directory `/home/chris/prj/hamsterdb/samples'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -g -O2 -Wall -DHAM_LITTLE_ENDIAN -fno-tree-vectorize -D_FILE_OFFSET_BITS=64 -c db1.c
make[3]: *** No rule to make target `../src/libhamsterdb.la', needed by `db1'.
Вот как я вызываю команду построения:
db1_SOURCES = db1.c
db1_LDADD = $(top_builddir)/src/libhamsterdb.la
libhamsterdb.la действительно отсутствует.
мне нужно предоставить /usr/lib/pkgconfig/hamsterdb-dev.pc?
blockquote>Если вы перечислили его в
debian/hamsterdb-dev.install
, тогда да. Он не появится из воздуха.Во время процесса сборки запускаются юнит-тесты, и многие файлы создаются или модифицируются.
blockquote>С созданными файлами легко работать, просто удалите их в правиле
clean
, перечислив их вdebian/clean
.Что касается изменения файлов, у вас есть несколько вариантов. Если они могут быть воссозданы с нуля, удалите их в
clean
.dpkg-source
игнорирует удаленные файлы. В противном случае вы должны выяснить, как не изменять их или отменять изменения.