Saturday, April 25, 2009

Afficher le contenu d'un repository debian / ubuntu

Depuis un certain temps je me demandais comment afficher la liste des paquets d'un repository debian / ubuntu sans l'ajouter dans mon sources.list
Le code shell que voici affiche la liste des paquets d'un repository à partir du fichier Packages.gz de celui ci.

#!/bin/sh
read protocol url dist section1 section2 section3 section4 << EOF
$(echo $1)
EOF

for sec in $section1 $section2 $section3 $section4; do
printf "Packages in section $sec: \n"
wget -q -O - $url/dists/$dist/$sec/binary-i386/Packages.gz \
|zgrep -E "^Package|^Version|^Description|^$"
printf "\n"
done


Rappel: il est dangeureux d'installer un repository trouvé au hasard sur le web !
backports.org et debian-multimedia.org sont sûrs car bien que non officiels, ils sont maintenus par des développeurs debian.

Exemple d'utilisation:

show_repo.sh "deb http://www.backports.org/debian lenny-backports main contrib non-free"
Packages in section main:
Package: apt-dater
Version: 0.7.0-1~bpo50+1
Description: terminal-based remote package update manager

Package: apt-dater-dbg
Version: 0.7.0-1~bpo50+1
Description: terminal-based remote package update manager (dbg symbols)

Package: apt-dater-host
...