# Comment créer un paquet DEBIAN

**URL:** <https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652 "2016-02-20T23:28:19Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![temps](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@temps](https://www.debian-fr.org/u/temps)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/1 "2016-02-20T23:28:19Z")

</div>

Bonjour,  
je pense que pour créer un paquet debian, il faut que je transforme mon script en binaire, mais ceci je ne sais pas le faire. Est-ce que quelqu’un peu m’aider. Le script est téléchargeable ici [http://www.constructeur-exo.com/gkri.tar.gz](http://www.constructeur-exo.com/gkri.tar.gz), toute aide est la bienvenue. Ce script a pour but d’aider les enseignants à économiser le papier des exams et aux étudiants de connaitre leur niveau ou voir d’être utilisé en auto-formation.  
Cordialement

[code]#!/bin/bash

# Version 00/00/01

#logiciel gkri créé et imaginé par Andre pierre jocelyn  
#contact mail : [temps.jo@gmail.com](mailto:temps.jo@gmail.com)  
#gkri est sous licence creative common by

#J’efface l’ancien gkri

ancien=~/gkri  
if [-d “$ancien”]; then

find ~/gkri | xargs rm -r  
fi

#je cré mes fonctions

abadie() {  
cat\>index.php \<\<‘EOF’

 \<?php 

if ($commentaire!="")  
{

$ouvre=fopen(“proposition.txt”,“w+”);  
fwrite($ouvre,$commentaire);  
fclose($ouvre);  
}

?\>

 \<? if (!empty($commentaire)) { $commande=" if diff -iabB proposition.txt reponse.txt \>/dev/null ; then echo juste else echo encore un petit effort fi"; $result=shell\_exec($commande); echo $result; } else { echo ""; } ?\> 

EOF

}

#Je cree le dossier gkri  
mkdir -p ~/gkri

#je me place dans gkri  
cd ~/gkri

#Je cree le repertoire data  
mkdir data  
#je me place dans data  
cd data

#Je cree le fichier aa.html  
fichier1="

  
" echo $fichier1 \>\> aa.html

echo “--------------------------------------------------------  
Il faut entrer ici le texte de début de page.  
--------------------------------------------------------”

echo -n "texte : "  
read qui  
echo $qui | tee -a aa.html

echo "

" | tee -a aa.html

#Je cree le repertoire comp  
mkdir comp  
#je me place dans comp  
cd comp

#Je cree le fichier index.php en appelant la fonction abadie

abadie

#Je cree le fichier reponse.txt  
fichier8="  
1  
"  
echo $fichier8 \>\> reponse.txt

#Je cree le fichier proposition.txt  
fichier9="  
1  
"  
echo $fichier9 \>\> proposition.txt

#Je sorts de comp et de data  
cd …  
cd …

#Je cree l’index html  
titre=“Exercice en ligne"  
fichier=”

Exercice en ligne " echo $fichier \>\> index.html

#Je continue de remplir l’index avec tee

echo "

\<BODY lang=fr-FR 

xml:lang=“fr-FR”\>

# Exercice en ligne
  

" | tee -a index.html

PS4="\> selectionnez le type d’exercice : " # definie le script qui va etre lancé  
echo " – choix du type de document – " # j’affiche  
select choix in “page html” “image jpeg” “fichier son mp3” “fichier vidéo” “abandon (a|A)”; do  
case $REPLY in

1. echo “Voici votre $choix.”

```
# page.sh 

```

#début pour les pages html  
echo “----------------------------------------  
Il faut entrer ici le nombre de page html.  
-----------------------------------------------”

echo -n "en chiffre : "  
read a

```
   for i in `seq 1 $a`;
   do
   #je lance le navigateur pour aller chercher les fichiers video

```

path=`zenity --file-selection --title="on choisit le fichier ici" --width=600` || exit  
#on copie le fichier dans le dossier gkri et on l’appelle le numero.html  
cp $path ~/gkri/$i.html

# on écrit “OK” dans le terminal

echo "fichier 1 OK"  
cd data

cp -R comp $i  
cd $i  
rm reponse.txt  
echo “--------------------------------------------------------  
Il faut entrer ici le texte attendu en réponse au fichier html.  
--------------------------------------------------------”

echo -n "texte : "  
read val1  
echo $val1 \>\> reponse.txt  
cd …  
cd …  
echo "  
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

" | tee -a index.html

```
   done

```

#fin pour les pages html  
;;  
2) echo "$choix "

# [image.sh](http://image.sh)

#début pour les images  
echo “---------------------------------------------------  
Il faut entrer ici le nombre de fichiers image jpeg.  
----------------------------------------------------------”

echo -n "en chiffre : "  
read a

```
   for i in `seq 1 $a`;
   do
   #je lance le navigateur pour aller chercher les fichiers video

```

path=`zenity --file-selection --title="on choisit le fichier ici" --width=600` || exit  
#on copie le fichier dans le dossier gkri et on l’appelle le numero.avi  
cp $path ~/gkri/$i.jpeg

# on écrit “OK” dans le terminal

echo "fichier 1 OK"  
cd data

cp -R comp $i  
cd $i  
rm reponse.txt  
echo “-------------------------------------------------------------  
Il faut entrer ici le texte attendu en réponse au fichier image.  
-------------------------------------------------------------”

echo -n "texte : "  
read val1  
echo $val1 \>\> reponse.txt  
cd …  
cd …  
echo "  
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

\<object data=“data/$i/index.php” width=“500” height=“200”

" | tee -a index.html

```
   done

```

#fin pour les images

```
          ;;

```

#début pour les fichiers son mp3

1. echo " $choix ."

echo “-------------------------------------  
Il faut entrer ici le nombre de fichiers audio.  
-----------------------------------------”

echo -n "en chiffre : "  
read a

```
   for i in `seq 1 $a`;
   do
   #je lance le navigateur pour aller chercher les fichiers audio

```

path=`zenity --file-selection --title="on choisit le fichier ici" --width=600` || exit  
#on copie le fichier dans le dossier gkri et on l’appelle le numero.mp3  
cp $path ~/gkri/$i.mp3

# on écrit “OK” dans le terminal

echo "fichier 1 OK"  
cd data

cp -R comp $i  
cd $i  
rm reponse.txt  
echo “-------------------------------------  
Il faut entrer ici le texte attendu en réponse au fichier audio.  
-------------------------------------”

echo -n "texte : "  
read val1  
echo $val1 \>\> reponse.txt  
cd …  
cd …  
echo "  
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

" | tee -a index.html

```
   done

```

;;

#fin pour les fichiers son mp3

1. echo " $choix ."

# [video.sh](http://video.sh)

#début fichiers vidéo

echo “----------------------------------------  
Il faut entrer ici le nombre de fichiers video.  
-----------------------------------------------”

echo -n "en chiffre : "  
read a

```
   for i in `seq 1 $a`;
   do
   #je lance le navigateur pour aller chercher les fichiers video

```

path=`zenity --file-selection --title="on choisit le fichier ici" --width=600` || exit  
#on copie le fichier dans le dossier gkri et on l’appelle le numero.avi  
cp $path ~/gkri/$i.avi

# on écrit “OK” dans le terminal

echo "fichier 1 OK"  
cd data

cp -R comp $i  
cd $i  
rm reponse.txt  
echo “--------------------------------------------------  
Il faut entrer ici le texte attendu en réponse au fichier video.  
--------------------------------------------------”

echo -n "texte : "  
read val1  
echo $val1 \>\> reponse.txt  
cd …  
cd …  
echo "  
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

" | tee -a index.html

```
   done

```

#fin fichiers vidéo

;;  
5|A\*|a\*) echo “finir la création de l’exercice” # on avec 4, ou en tapant un mot commancant par A ou a  
break;;  
\*) echo “Je n’ai pas compris votre choix. Veuillez répéter svp.”;;  
esac  
done

```
#je mets les tags de fin de la page html

```

echo "

" | tee -a index.html

echo “--------------------------------------------------  
Vous avez fini de créer l’exercice  
vous pouvez le récupérer dans le répertoire gkri  
se trouvant sous votre nom d’utilisateur.  
--------------------------------------------------”

exit 0;

[/code]

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/2 "2016-02-20T23:28:20Z")

</div>

Salut,

Critique constructive, j’espère.

1 - Ne pas laisser les paquets \*~  
2 - Ne pas oublier les retours charriots dans le lisez moi, le texte au kilomètre n’est pas facile à lire.  
3 - Double cliquez : On se croirait sous Windows. Ce n’est pas la manière normale de lancer un script shell 🙂

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/3 "2016-02-20T23:28:20Z")

</div>

Pour répondre à ta question, tu as le tutoriel de fran.b ici, qui est très accessible aux débutants :  
[isalo.org/wiki.debian-fr/ind … reunpaquet](http://www.isalo.org/wiki.debian-fr/index.php/Faireunpaquet)

Et tu as plus complet ici, la doc officielle :  
[debian.org/doc/maint-guide/ch-start.fr.html](http://www.debian.org/doc/maint-guide/ch-start.fr.html)

---

<div class="post-metadata">

**Author:** ![temps](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@temps](https://www.debian-fr.org/u/temps)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/4 "2016-02-20T23:28:20Z")

</div>

Merci pour vos réponses.  
Je ne comprends pas le 1 "Ne pas laisser les paquets \*~ "  
est-ce que cela a un rapport avec le chemin dans le script qui permet de créer le répertoire gkri ?  
Avant de poster cela fait plusieurs jours que je regarde, et j’ai déja fréquenté la doc officielle mais pas au bon endroit, merci pour les liens  
Cordialement

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/5 "2016-02-20T23:28:21Z")

</div>

Re,

[quote=“temps”]Merci pour vos réponses.  
Je ne comprends pas le 1 "Ne pas laisser les paquets \*~ "  
est-ce que cela a un rapport avec le chemin dans le script qui permet de créer le répertoire gkri ?  
Avant de poster cela fait plusieurs jours que je regarde, et j’ai déja fréquenté la doc officielle mais pas au bon endroit, merci pour les liens  
Cordialement[/quote]

Si laisser derrière toi les paquets précédents la version 0.01 était ton but, alors tu as bien fait de laisser les versions~ 😆

Tu as bien pris le temps de te relire et d’éviter les fautes, alors pourquoi laisser les brouillons ?

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/6 "2016-02-20T23:28:23Z")

</div>

Ne pas laisser les fichiers se terminant par ~ (fichiers de backup). Que doit faire ton paquet à l’installation, il doit éxécuter le script, ou bien il doit installer le script dans /usr/local/bin (par exemple)?

---

<div class="post-metadata">

**Author:** ![temps](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@temps](https://www.debian-fr.org/u/temps)\
**Post date:** [Février 20, 2016, 11:28 UTC](https://www.debian-fr.org/t/comment-creer-un-paquet-debian/28652/7 "2016-02-20T23:28:32Z")

</div>

Ok j’ai compris, je n’avais pas vu, c’est une version d’ubuntu aux réactions étranges qui m’a joué quelques petits tours, il va falloir qu’un de ces jours je mettes de l’ordre sur cette partition le bash ne fonctionne même plus, je suis obligé d’utiliser d’autres P.C. pour tester.  
Pour répondre à la question, je voudrais que le script reste en fixe, de manière à pouvoir créer des examens ou des exercices d’auto-formation à la demande de l’utilisateur.  
Cordialement
