Назад | Перейти на главную страницу

Как я могу игнорировать файлы / каталоги при сборке пакетов debian?

Я сделал несколько пакетов debian, чтобы упростить развертывание конфигураций на новых серверах, и хочу поместить их в систему контроля версий SVN. Проблема в том, что SVN создает каталог .svn для каждого подкаталога в исходном дереве, поэтому я не могу создавать пакеты в исходном дереве 'dpkg-deb --build', потому что каталоги '.svn' будут включены в результирующий пакет. Пока что, когда я хочу создать пакет, мне нужно экспортировать каталог в другое место и строить оттуда.

Есть ли быстрый способ заставить dpkg-deb --build игнорировать каталоги .svn?

Чтобы исключить файлы, помещаемые в исходный пакет debian, вы должны создать файл:

debian/source/options

и введите параметры, которые вы хотите передать dpkg-source, в вашем случае:

tar-ignore = ".svn/*"

См. Man для dpkg-source.

Здесь стоит задокументировать, что если вы собираетесь использовать dpkg-buildpackage что у него есть -i переключиться, чтобы игнорировать вещи. IE, используйте -i.svn игнорировать каталог .svn.

Насколько я понимаю, вы не должны создавать пакет debian с dpkg-deb --build в первую очередь. Если вы используете dpkg-buildpackage вместо этого вам не придется беспокоиться о том, что каталоги .svn будут включены в ваш пакет.

Видеть: http://raphaelhertzog.com/2010/12/17/do-not-build-a-debian-package-with-dpkg-b/

Может быть способ получше, но вот тот, который я тщательно не тестировал:

Использовать dh_make для создания скелета пакета debian. Поместите файлы в каталог над debian каталог.

отредактируйте полученный dirs file и укажите пути, по которым вы собираетесь перемещать файлы, например:

/opt/mypackage
/usr/local/bin

Тогда в вашем rules удалите код $ (MAKE) и установите в разделе install: build примерно следующее:

install: build
  dh_testdir
  dh_testroot
  dh_clean -k 
  dh_installdirs

  # Copy files into staging area
  rsync --exclude .svn -a mypackage/ debian/tmp/opt/mypackage/