У меня есть большой проект, где у нас есть следующие файлы:
- Несколько сторонних предварительно скомпилированных двоичных файлов
- Наши собственные внутренние файлы
- Коллекция рубиновых скриптов
- Значительный проект Ruby on Rails
Этот продукт будет установлен на аппаратном оборудовании, которое мой работодатель уже выбрал, используя Ubuntu Linux (Lucid) в качестве целевого O.S., с нашей целью распространять архив как пакет Debian для упрощения установки и обновления. Кроме того, у нас есть несколько шаблонов ERB, которые нам нужно "заполнить" соответствующими значениями для каждого клиента, поэтому использование postinst script будет особенно полезно для наших целей.
В качестве дополнительной заметки пакеты Debian будут храниться в репозитории сервера, который мы управляем внутри компании.
На этом этапе я использовал dh_make для создания каталога debian и связанных файлов (например, правил, элементов управления и т.д.), но созданный файл правил кажется излишним для моих целей.
Основываясь на этом описании, , мне действительно нужен файл правил, который нужно сделать, это просто скопировать файлы из исходного каталога (или в архив) в целевые каталоги, показанные ниже:
- /Opt/company_product/3rd_party_binaries/бен
- /Opt/company_product/3rd_party_binaries/и т.д.
- /Opt/company_product/in_hourse_binaries/бен
- /Opt/company_product/in_hourse_binaries/и т.д.
- /Opt/company_product/рубин
- /Opt/company_product/rails_project
- /Opt/company_product/и т.д.
- /Opt/company_product/общий/журналы
- /Opt/company_product/общий/TMP
- /Opt/company_product/общие/лицензии
- ... И так далее.
Я прочитал Руководство по политике Debian и несколько инструкций, которые указывают, что вы не должны изменять файл правил, чтобы использовать mkdir для создания каталогов, и, как правило, a 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