Tag - sale

Entries feed

Sunday 10 January 2010

Modifier un paquet Debian rapidement (méthode sale)

Parfois on veut modifier juste un petit bout de fichier de configuration dans un paquet Debian. L'utilisation du classique apt-get source, apt-get build-dep et dpkg-buildpackage est alors très longue et lourde, sans parler de tous les paquets, nécessaires à la recompilation, à installer.

Voici deux scripts de mon cru qui permettent de décompresser un paquet binaire, faire les changements nécessaires et reconstruire le paquet. C'est une méthode qui est sale dans la mesure où elle ne respecte pas les procédures de construction de paquets chez Debian, mais elle est très rapide lorsqu'il faut déployer rapidement une configuration personnalisée.

deb-dirty-extract.sh :

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
if [ ! -f "$1" ] ; then
  echo "No such file"
fi
 
DIR=${1%%.deb}
mkdir "$DIR" && cd "$DIR"
ar x "../$1"
mkdir data control
cd data && tar -zxf ../data.tar.gz && cd ..
cd control && tar -zxf ../control.tar.gz

deb-dirty-rebuild.sh :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
 
if [ ! -f 'debian-binary' -o ! -d 'control' -o ! -d 'data' ] ; then
  echo "No extracted deb file here"
  exit 1
fi
 
if [ -z "$1" -o ! -f "$1" ] ; then
  PKG="../"$(basename $PWD)"-custom.deb"
else
  PKG="$1"
fi
echo "Writing new package to $PKG..."
 
rm -f control.tar.gz data.tar.gz "$PKG"
 
cd data && tar -zcf ../data.tar.gz ./ && cd ..
cd control && tar -zcf ../control.tar.gz ./ && cd ..
ar rc "$PKG" debian-binary control.tar.gz data.tar.gz

Utilisation typique :

wget http://.../.../paquet.deb
deb-dirty-extract.sh paquet.deb
cd paquet
[...] # vos modifications
deb-dirty-rebuild.sh

Tuesday 5 January 2010

Downgrader deluge-torrent sur Debian Sid

Il y a de gros dysfonctionnements dans les derniers paquets du client torrent deluge, notamment l'interface web est inutilisable. Voici un moyen rapide pour revenir à la version précédente, celle de Debian lenny :

dpkg -r deluge deluge-common deluge-gtk deluge-torrent deluge-web deluge-webui
wget http://ftp.de.debian.org/debian/pool/main/d/deluge-torrent/deluge-torrent-common_0.5.9.3-1_all.deb
wget http://ftp.de.debian.org/debian/pool/main/d/deluge-torrent/deluge-torrent_0.5.9.3-1_i386.deb
wget http://ftp.de.debian.org/debian/pool/main/b/boost/libboost-date-time1.34.1_1.34.1-14_i386.deb
wget http://ftp.de.debian.org/debian/pool/main/b/boost/libboost-thread1.34.1_1.34.1-14_i386.deb
wget http://ftp.de.debian.org/debian/pool/main/b/boost/libboost-filesystem1.34.1_1.34.1-14_i386.deb
aptitude install python-dbus
dpkg -i libboost-* deluge-*