У меня есть большой проект, в котором у нас есть следующие файлы:
- Несколько сторонних скомпилированных двоичных файлов
- Наши собственные собственные двоичные файлы
- Коллекция сценариев Ruby
- Значительный проект Ruby on Rails
Этот продукт будет установлен на аппаратное устройство, которое уже выбрано моим работодателем, с использованием Ubuntu Linux (Lucid) в качестве целиОС, с нашей целью распространения архива в виде пакета Debian для облегчения установки и обновления.Кроме того, у нас есть ряд шаблонов ERB, которые нам необходимо «заполнить» соответствующими значениями для каждого клиента, поэтому использование сценария postinst будет особенно удобным для наших целей.
В качестве примечания, пакеты Debian будут храниться в хранилище сервера, которым мы управляем сами.
На этом этапе я использовал dh_make для создания Debian.каталог и связанные файлы (например, правила, элементы управления и т. д.), но сгенерированный файл правил выглядит для меня как избыточный.
Исходя из этого описания, все, что мне действительно нужно, "правила"Чтобы сделать файл, просто скопируйте файлы из исходного каталога (или в архиве) в целевые каталоги, показанные ниже :
- / opt / company_product / 3rd_party_binaries / bin
- / opt / company_product / 3rd_party_binaries / etc
- / opt / company_product / in_hourse_binaries / bin
- / opt / company_product / in_hourse_binaries / etc
- / opt / company_product / ruby
- / opt / company_product / rails_project
- / opt / company_product / etc
- / opt / company_product / shared / logs
- / opt / company_product /shared / tmp
- / opt / company_product / shared / license
- ... И т. д.
Я прочитал Руководство по политике Debian и несколько вопросов о том, как- Это означает, что вы не должны изменять файл правил, чтобы использовать mkdir для создания каталогов, и обычно существует приложение dh_ (например, dh_installdirs, et.al.), которая может удовлетворить ваши потребности практически для любых целей установки.Страницы руководства для этих dh_ приложений, в лучшем случае, поверхностны, а я примерный парень.
Тем не менее, я немного растерялся от того, какой подход лучшеэто получить мой rules файл для установки моих предварительно скомпилированных двоичных файлов и текстовых файлов Ruby / Rails в нужные места.
Вот мой исходный файл rules .Это в значительной степени стандартный шаблонный файл правил, который создает dh_make.Я думаю, что я должен закомментировать все разделы, кроме install , а затем найти соответствующие команды для создания каталогов, копирования файлов и т. Д. В этом разделе.
Любые советыили предложения с благодарностью.
#!/usr/bin/make -f
package = testapp
CC = gcc
CFLAGS = -g -Wall
ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O2
endif
#export DH_VERBOSE=1
clean:
dh_testdir
dh_clean
rm -f build
install: build
dh_clean
dh_installdirs
echo "Place the Install Script here"
cp $(CURDIR)/testapp-2.0.tar.gz $(CURDIR)/debian/$(package)/opt/testapp-2.0
echo "Finished copying folders"
build:
touch build
binary-indep: install
# There are no architecture-independent files to be uploaded
# generated by this package. If there were any they would be
# made here.
binary-arch: install
dh_testdir -a
dh_testroot -a
dh_installdocs -a
dh_installchangelogs -a
dh_strip -a
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: binary binary-arch binary-indep clean checkroot