mercredi 3 mars 2010

Comment obtenir les packages .deb d'Asterisk 1.6 et de Dahdi 2.2 pour Debian Lenny (version 5 dite 'stable') ?

Source : backports.free.fr
____

Comment obtenir les packages .deb d'Asterisk 1.6 et de Dahdi 2.2 pour Debian Lenny (version 5 dite 'stable') ?

En les générant à partir des paquets sources de la version Debian Squeeze (version dite 'testing').

Mode d'emploi

Commencer par déterminer votre type de machine Debian Lenny :

Déterminer le type de machine :
uname -r | cut -d- -f3
Cette commande vous retourne le type de machine, par exemple amd64 (version 64bits pour processeurs Intel ou AMD). La suite est basé sur du amd64, pour générer des paquets pour la version 32bits, remplacer dans les scripts 'amd64' par 'i386'.

Installer une machine virtuelle (pour ne pas polluer votre machine hôte) avec la même version Debian que votre machine hôte :

Installation d'une machine virtuelle :
apt-get update
apt-get upgrade
rm -rf ~/chroot
apt-get install debootstrap
debootstrap lenny ~/chroot ftp://ftp.fr.debian.org/debian
Ensuite se connecter à la machine virtuelle :

connexion à la machine virtuelle :
chroot ~/chroot su -
Une fois dans la machine virtuelle :
Créer 4 scripts "bash" :

Script ~/InitDebianRepository.sh :
#! /bin/sh

## script file name : ~/InitDebianRepository.sh

rm -rf ~/dists

mkdir ~/dists
mkdir ~/dists/lenny
mkdir ~/dists/lenny/main
mkdir ~/dists/lenny/main/binary-amd64
mkdir ~/dists/lenny/main/source

cd ~/dists/lenny/main

wget -c ftp://ftp.fr.debian.org/debian/dists/lenny/main/binary-amd64/Release -O binary-amd64/Release
wget -c ftp://ftp.fr.debian.org/debian/dists/lenny/main/source/Release -O source/Release

sed -i '1,$s%^deb-src %#deb-src %' /etc/apt/sources.list
sed -i '1,$s%^#deb-src http://ftp.fr.debian.org/debian/ squeeze main$%%' /etc/apt/sources.list
sed -i '1,$s%^deb file:/root/ lenny main$%%' /etc/apt/sources.list
sed -i -e :a -e '/^[ |\n|\t]*$/ {$d;N;ba' -e '}' /etc/apt/sources.list

echo >>/etc/apt/sources.list
echo 'deb file:/root/ lenny main' >>/etc/apt/sources.list
echo 'deb-src http://ftp.fr.debian.org/debian/ squeeze main' >>/etc/apt/sources.list

~/UpdateDebianRepository.sh
Script ~/UpdateDebianRepository.sh :
#! /bin/sh

## script file name : ~/UpdateDebianRepository.sh

cd ~/dists/lenny/main/
dpkg-scanpackages binary-amd64 /dev/null dists/lenny/main/ | gzip -f9 > binary-amd64/Packages.gz
dpkg-scansources source /dev/null dists/unstable/main/ | gzip -f9 > source/Sources.gz

apt-get update
apt-get upgrade
Script ~/GenerateDebianPackage.sh :
#! /bin/sh

## script file name : ~/GenerateDebianPackage.sh

mkdir ~/temp-$1

cd ~/temp-$1
apt-get source $1
[ -r ~/temp-$1/dahdi-linux-*/debian/patches/series ] \
&& sed -i '1,$s%^no_firmware_download$%#no_firmware_download%' ~/temp-$1/dahdi-linux-*/debian/patches/series
apt-get build-dep $1
cd $1-*
dpkg-buildpackage -us -uc
cd ~

mv ~/temp-$1/*_amd64.deb ~/dists/lenny/main/binary-amd64/
mv ~/temp-$1/*_all.deb ~/dists/lenny/main/binary-amd64/
mv ~/temp-$1/*.changes ~/dists/lenny/main/source/
mv ~/temp-$1/*.dsc ~/dists/lenny/main/source/
mv ~/temp-$1/*.gz ~/dists/lenny/main/source/

rm -rf ~/temp-$1

~/UpdateDebianRepository.sh
Script ~/GenerateAsteriskBackports.sh :
#! /bin/sh

## script file name : ~/GenerateAsteriskBackports.sh

# choisir un mirroir proche

sed -i '1,$s/ftp\.us\.debian\.org/ftp.fr.debian.org/' /etc/apt/sources.list

apt-get update
apt-get upgrade

# préparation

apt-get install dpkg-dev build-essential

~/InitDebianRepository.sh

# générer les packages

~/GenerateDebianPackage.sh "bluez"

~/GenerateDebianPackage.sh "dahdi-linux"

~/GenerateDebianPackage.sh "dahdi-tools"

~/GenerateDebianPackage.sh "libpri"

~/GenerateDebianPackage.sh "libss7"

~/GenerateDebianPackage.sh "asterisk"

~/GenerateDebianPackage.sh "libasterisk-agi-perl"

apt-get install libmysqlclient15-dev
~/GenerateDebianPackage.sh "asterisk-addons"

apt-get install dahdi-source
m-a a-i dahdi-source
mv /usr/src/dahdi-modules*_amd64.deb ~/dists/lenny/main/binary-amd64/
~/UpdateDebianRepository.sh
Rendre executable ces 4 scripts :

commandes à éxecuter :
chmod +x ~/InitDebianRepository.sh
chmod +x ~/UpdateDebianRepository.sh
chmod +x ~/GenerateDebianPackage.sh
chmod +x ~/GenerateAsteriskBackports.sh
Générer maintenant vos paquets .deb :

commande à éxecuter :
~/GenerateAsteriskBackports.sh
C'est terminé, quitter la machine virtuelle :

commandes à éxecuter :
exit

Sur la machine hôte, prendre en compte le dépot local dans le fichier /etc/apt/sources.list :

commandes à éxecuter :
mkdir /backports.free.fr
mkdir /backports.free.fr/debian

sed -i '1,$s%^deb file:/backports.free.fr/debian/ lenny main$%%' /etc/apt/sources.list
sed -i -e :a -e '/^[ |\n|\t]*$/ {$d;N;ba' -e '}' /etc/apt/sources.list

echo >>/etc/apt/sources.list
echo 'deb file:/backports.free.fr/debian/ lenny main' >>/etc/apt/sources.list

cp -rf ~/chroot*/root/dists /backports.free.fr/debian/
Puis mettre à jour votre machine :

commandes à éxecuter :
apt-get update
apt-get upgrade
En cas de migration adapter d'abord les fichiers de configuration.

Il n'y a plus qu'à installer Asterisk en version 1.6 et Dahdi en version 2.2 :

Installation d'Asterisk et de Dahdi :
apt-get install asterisk asterisk-prompt-fr asterisk-mobile libasterisk-agi-perl dahdi dahdi-modules-`uname -r`
depmod -ae # en cas d'installation ou mise à jour de dahdi-modules
C'est terminé, rebooter votre machine pour vérifier que tout fonctionne correctement.




Encore plus simple :

commandes à éxecuter :
cd ~
wget -c http://backports.free.fr/debian/backports.tar.bz
tar -xzf backports.tar.bz
~/backports.sh
Il est donc possible d'automatiser la génération des packages deb.





dernière modification de cette page le 22 février 2010 à 16:00
par FDS

Aucun commentaire:

Enregistrer un commentaire