J'ai un grand projet où nous avons les fichiers suivants:je besoin de mon fichier de règles Debian simplement copier des fichiers vers sa cible
- Quelques 3ème partie pré-compilés binaires
- Notre propre maison binaires
- Une collection de scripts Ruby
- Ruby importante sur le projet Rails
Ce produit sera installé sur le matériel de l'appareil que mon l'employeur a déjà choisi, en utilisant Ubuntu Linux (Lucid) comme cible O.S., avec notre objectif de distribuer l'archive en tant que paquet Debian pour faciliter l'installation et les mises à jour. De plus, nous avons un certain nombre de modèles ERB que nous devons "remplir" avec des valeurs appropriées pour chaque client, donc l'utilisation du script postinst sera particulièrement utile pour nos besoins. En parallèle, les paquets Debian seront stockés sur un référentiel serveur que nous gérons en interne. A ce stade, j'ai utilisé dh_make pour créer le répertoire debian et les fichiers associés (par exemple, les règles, le contrôle, etc.), mais le fichier de règles qui est généré semble être excessif pour mes besoins.
Sur la base de cette description, tout ce que je vraiment besoin du fichier « règles » à faire est simplement copier des fichiers à partir d'un répertoire source (ou dans une archive) dans les répertoires cibles ci-dessous:
- /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
- ... Et ainsi de suite.
J'ai lu la Charte Debian et plusieurs How-To qui indiquent que vous ne devriez pas modifier le fichier de règles à utiliser mkdir pour créer des répertoires et il y a généralement un dh_ application (par exemple , dh_installdirs, et.al.) qui peuvent convenir à vos besoins pour presque toutes les applications. Les pages de manuel pour ces dh_ applications connexes sont superficielles au mieux, et je suis un type "type" de gars. Cela dit, je suis un peu perdu sur ce que la meilleure approche est d'obtenir mon règles fichier pour installer mes différents fichiers binaires pré-compilés et les fichiers texte Ruby/Rails aux endroits souhaités.
Voici mon premier fichier . C'est à peu près un fichier de règles standards standard que dh_make crée. Mon idée est que je devrais commenter toutes les sections à l'exception de la installer puis trouver les commandes appropriées pour créer des répertoires, copier des fichiers, etc. dans cette section.
Des conseils ou des suggestions sont grandement appréciés.
#!/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
excellentes suggestions. Une fois que je fais cela, quelle commande devrais-je utiliser pour construire le paquet deb? –
ok, j'ai couru dpkg-buildpackage et ai obtenu un fichier .deb, mais quand je l'installe sur le serveur cible il n'exécute pas mon fichier debian/mypackagename.install. Aussi, si j'ai des scripts qui vont sous init.d, où puis-je les mettre? –
Voici ma structure de répertoires: build_deploy.rb build_package.rb debian docs extras Rakefile src test.txt. Sous src est le suivant: bin console created_vipre.sql etc filtre install.rb opt spf transport. Tout ce que je veux, c'est d'avoir un fichier .deb qui contient tout sous src. Je veux ensuite que cette structure exacte soit copiée dans/opt/vipre sur le système cible. Je veux alors que tout sous src/etc/init.d soit copié dans /etc/init.d. Je ne sais pas pourquoi je ne peux pas l'obtenir.Cela semble simple, mais les docs me confondent. S'il vous plaît aider. Merci beaucoup. –