Подтвердить что ты не робот

Мне нужен файл правил Debian, чтобы просто скопировать файлы на него.

У меня есть большой проект, где у нас есть следующие файлы:

  • Несколько сторонних предварительно скомпилированных двоичных файлов
  • Наши собственные внутренние файлы
  • Коллекция рубиновых скриптов
  • Значительный проект 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
4b9b3361

Ответ 1

Хотя у вас уже есть свой собственный ответ, я укажу несколько вещей.

Вы, кажется, делаете это очень сложным образом. Если вам просто нужно скопировать файлы в определенные каталоги, напишите debian/mypackagename.install со следующим форматом:

path/to/file/relative/to/source/root path/to/install/relative/to/system/root

(не добавляйте / до /usr, или /opt, или все, что находится в вашем целевом каталоге. Прочтите man dh_install для получения дополнительной информации)

Тогда ваш debian/rules может быть:

#!/usr/bin/make -f

%:
    dh [email protected]

Если у вас есть какой-то make файл и т.д. в исходном корне, добавьте его в вышеуказанный файл rules:

override_dh_auto_build:

override_dh_auto_install:

Не забудьте поставить 7 в debian/compat.

Кроме того, вы не должны устанавливать файлы в /opt/ или /usr/local/ и т.д. Они предназначены для файлов не, установленных пакетами Debian. Debian рекомендует установить в /usr/share/yourcompany/. Поскольку juzzlin указывает ниже, у Ubuntu Software Center могут быть разные требования.

В частности, ваш файл mypackage.install должен выглядеть так:

src/bin/* usr/bin
src/etc/* etc/

Ответ 2

Вы можете установить cdbs и изменить файл правил, как этот

#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk

binary-install/package_name::
                   mkdir debian/$(cdbs_curpkg)/destination_path 
                   cp path_of_your_files  debian/$(cdbs_curpkg)/destination_path