# Mon premier deb !

**URL:** <https://www.debian-fr.org/t/mon-premier-deb/68191>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 10:17 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191 "2016-02-21T22:17:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vincentsan](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/b38774/32.png) [@vincentsan](https://www.debian-fr.org/u/vincentsan)\
**Post date:** [Février 21, 2016, 10:17 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191/1 "2016-02-21T22:17:21Z")

</div>

Bonjour à tous,

Je viens de réussir à créer mon premier paquet pour Debian 8 (Jessie) en architecture adm64 🙂 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](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://www.debian.org/doc/manuals/maint-guide/dreq.fr.html)  
[https://openclassrooms.com/courses/creer-un-paquet-deb](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](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](mailto:jean.bon@monsite.tld)  
Description: Installer, des trucs c’est cool  
Homepage: [http://www.monsite.tld](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 :

```auto

```

pour l’exécuter depuis le shell :

```auto

```

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

A +

---

<div class="post-metadata">

**Author:** ![Dunatotatos](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c2a13f/32.png) [@Dunatotatos](https://www.debian-fr.org/u/Dunatotatos)\
**Post date:** [Février 21, 2016, 10:17 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191/2 "2016-02-21T22:17:46Z")

</div>

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.

```auto

```

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.

---

<div class="post-metadata">

**Author:** ![vincentsan](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/b38774/32.png) [@vincentsan](https://www.debian-fr.org/u/vincentsan)\
**Post date:** [Février 21, 2016, 10:17 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191/3 "2016-02-21T22:17:51Z")

</div>

Salut Dunatotatos,

Tu dis :

> [@](#):
>
> Ton script fonctionne sur différentes architectures

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

> [@](#):
>
> À propos de dépendances, ton paquet n’en a aucune. J’aurais au moins mis bash, puisqu’il n’est pas portable sur sh.

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+

---

<div class="post-metadata">

**Author:** ![Dunatotatos](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c2a13f/32.png) [@Dunatotatos](https://www.debian-fr.org/u/Dunatotatos)\
**Post date:** [Février 21, 2016, 10:17 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191/4 "2016-02-21T22:17:52Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![grigric](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grigric/32/3935_2.png) [@grigric](https://www.debian-fr.org/u/grigric)\
**Post date:** [Février 21, 2016, 10:18 UTC](https://www.debian-fr.org/t/mon-premier-deb/68191/5 "2016-02-21T22:18:00Z")

</div>

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. …
