Mon premier deb !

Bonjour à tous,

Je viens de réussir à créer mon premier paquet pour Debian 8 (Jessie) en architecture adm64 :slightly_smiling: TROP COOL.
Je demande l’aide de la communauté pour le tester avant de le mettre sur un dépôt apt.

https://drive.google.com/file/d/0B3tcPKPnAKsXRV8wRGNWQ29QR0k/view?usp=sharing

Le paquet permet de :

  • configurer son interface réseau (ne fonctionne qu’avec 1 seule interface…)
  • installer un isc-dhcp-server (install simple)
  • installer bind9 + chroot en option + config des fichiers de zones
  • installer owncloud/pydio version LAMP
  • installer/paramétrer postfix + courrier + au choix mysql ou openldap en base de données + roundcube + spamassassin, amavis et clamav
  • paramétrer NetFilter (iptables) à peu près correctement
  • installer squid3 + analyse des logs pour ceux qui sont FAI dans leurs taf (ex hotels)
  • installer kvm + virt-manager + lxde + xrdp
  • créer un certificat d’autorité (un vrai) avec LetsEncrypt (nécessite une config DNS qui marche et qu donne sur le Net)
  • installer GLPI + FusionInventory en LAMP
  • installer limesurvey avec LAMP
  • installer Odoo (ça marche moyen ce truc là et je ne comprends pas pourquoi)
  • installer magento en LAMP
  • installer une Active Directory avec Samba4
  • créer un partage publique avec Samba

Pour ceux qui veulent créer un paquet .deb, de la doc :

https://www.debian.org/doc/manuals/maint-guide/dreq.fr.html
https://openclassrooms.com/courses/creer-un-paquet-deb

Un exemple :

[code]##création du paquet mon-script !!!

mkdir -p mon-script/DEBIAN
mkdir mon-script/usr/bin

modifiez les valeurs pour les adapter à vos besoins. voir ici : https://www.debian.org/doc/manuals/maint-guide/dreq.fr.html

cat > mon-script/DEBIAN/control << EOF
Package: mon-script
Version: 1.0
Section: base
Priority: optional
Architecture: amd64
Depends: bash
Maintainer: Jean BON jean.bon@monsite.tld
Description: Installer, des trucs c’est cool
Homepage: http://www.monsite.tld
EOF

##le fichier postinst est facultatif
cat > mon-script/DEBIAN/postinst << EOF
#!/usr/bin/bash
whiptail --title “mon-script” --msgbox “mon-script est installé et pourra être exécuté en tapant mon-script directement dans le shell.” 20 80 3>&1 1>&2 2>&3
EOF
chmod 755 mon-script/DEBIAN/postinst

touch mon-script/usr/bin/mon-script

ATTENTION Copier le script bash ou sh, ksh… à la main dans vi !!!

copier le script dans mon-script/usr/mon-script

vi mon-script/usr/bin/mon-script
chmod 755 mon-script/usr/bin/mon-script

dpkg-deb --build mon-script[/code]

Pour installer le paquet :

pour l’exécuter depuis le shell :

J’espère que ça aidera certains à créer leurs paquets

A +

Salut vincentsan,

Quelques remarques (comme d’habitude, je ne réponds pas à ta demande initiale, mais te propose des pistes d’améliorations sur divers sujets).
N’utilise pas Google Drive, et particulièrement pour partager des choses avec nous. Ce forum est rempli de barbus libristes, tu te doutes de l’affection que nous portons à Google, Facebook, Amazon, et toutes ces entreprises… Utilise plutôt le service de pièces jointes proposé par ce forum.

Comme indiqué dans le post de l’un de tes autres fils, divise ton problème en différents petits problèmes. Tu nous donnes là un gigantesque script que personne n’a envie de lire.

Je crois qu’il manque quelques fichiers dans ton archive pour en faire un paquet valide. Par exemple, pas de licence. Je n’ai jamais fait de paquet apt et ne peux pas trop de renseigner sur le sujet, mais cherche une doc officielle de Debian qui indique les règles à respecter.

Ton script fonctionne sur différentes architectures (en fait, toutes les plateformes proposant bash), alors pourquoi se limiter à amd64 ?

Faire un paquet deb pour juste un script est AMHA, inutile. Si tu distribues le script, les utilisateurs le télécharge, voient que c’est du bash, peuvent directement lire le code source, et l’exécutent en une ligne.

S’ils téléchargent ton archive, il faut deux lignes, et les utilisateurs ne savent même pas que c’est un script bash, et qu’ils peuvent rapidement voir le code :

dpkg -i superserveur.deb superserveur

Les paquets sont utiles pour de gros projets contenant différents fichiers (librairies statiques, ressources diverses, moults exécutables, traductions, …), et qui ont des dépendances.

À propos de dépendances, ton paquet n’en a aucune. J’aurais au moins mis bash, puisqu’il n’est pas portable sur sh.

Salut Dunatotatos,

Tu dis :

Mais je n’en sais rien moi même, ne l’ayant testé que sur des archi en 64 bits.
Tu dis :

Mais justement il n’a qu’une dépendance et c’est effectivement bash… C’est à cela que sert la directive Depends dans le fichier control.

A+

Re,

Un script Bash est portable sur n’importe quel plateforme avec Bash (et avec les éventuelles dépendances). Donc ce n’est pas une question, mais bien une information : ton script fonctionne sur moultes architectures. Propose au moins la version i386.

Et concernant les dépendances, je n’avais pas vu. Toutes mes confuses… Comme indiqué, je ne connais pas grand chose aux paquets Debian.

hello,

perso, pour une install, même pour un script, je préfère avoir des fichiers deb, ça permet de faire du déploiements sur plusieurs machines, des mises à jour auto avec cron-apt si c’est déployé sur un serveuir d’install et ça évite d’avoir plusieurs methodes d’install différentes car l’utilisateur ou l’admin ne sait pas forcément si c’est une appli, un script, etc… et souvent il s’en tappe, il veut un outil commun de déploiement …

Et comment fais tu la différence entre un script et une appli ? je développe les outils de mes collaborateurs en perl, ca peut faire un fichier de 15 lignes comme 50 fichiers, des conf apache,syslog, logrotate, etc. …