Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/11/2011, à 18:54

mydjey

[Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

_o/ tous.

Je cherche un moyen de lister les nouveaux paquets présents sur une release.

Par exemple lister les nouveaux paquets apparut dans Oneiric et qui n'étaient pas sous Natty.

CLI, ou éventuellement interface ...

Si vous avez une idée merci de m'en faire part.

Dernière modification par mydjey (Le 24/11/2011, à 22:34)

Hors ligne

#2 Le 22/11/2011, à 02:14

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Bonsoir

Quelque chose comme ceci peut-être? :

Un script (écrit avec mes modestes connaissances de bash neutral) qui va :
- télécharger les fichiers Packages.bz2 de chaque section ("main", "multiverse", "restricted" et "universe") des branches "principales", "updates" et "security" de natty et oneiric
- créer un fichier comprenant la liste de tous les paquets présents pour chaque section de chacune des branches
- et finalement faire un diff des fichiers pour récupérer seulement les paquets ajoutés et écrire le résultat dans un fichier "diff", "diff-updates" et "diff-security".

#!/bin/bash

DIR="$HOME/Paquets"

for ARCH in i386 amd64; do
    echo -e "\nTéléchargement de la liste des paquets $ARCH"
    for SECTION in main multiverse restricted universe; do
    echo -e "\nSection : $SECTION"
        for DEPOT in natty oneiric natty-updates oneiric-updates natty-security oneiric-security; do
            mkdir -p $DIR/$ARCH/$SECTION
            wget -q http://fr.archive.ubuntu.com/ubuntu/dists/$DEPOT/$SECTION/binary-$ARCH/Packages.bz2 -O $DIR/$ARCH/$SECTION/Packages-$DEPOT.bz2
            bzcat $DIR/$ARCH/$SECTION/Packages-$DEPOT.bz2 | grep "Package:" > $DIR/$ARCH/$SECTION/Packages-$DEPOT
        done
        echo -e "Création du fichier $DIR/$ARCH/$SECTION/diff"
        diff $DIR/$ARCH/$SECTION/Packages-natty $DIR/$ARCH/$SECTION/Packages-oneiric | grep ">" > $DIR/$ARCH/$SECTION/diff
        echo -e "Création du fichier $DIR/$ARCH/$SECTION/diff-updates"
        diff $DIR/$ARCH/$SECTION/Packages-natty-updates $DIR/$ARCH/$SECTION/Packages-oneiric-updates | grep ">" > $DIR/$ARCH/$SECTION/diff-updates
        echo -e "Création du fichier $DIR/$ARCH/$SECTION/diff-security"
        diff $DIR/$ARCH/$SECTION/Packages-natty-security $DIR/$ARCH/$SECTION/Packages-oneiric-security | grep ">" > $DIR/$ARCH/$SECTION/diff-security
    done
done
echo -e "\nATTENTION : Les fichiers diff ne contiennent QUE les paquets ajoutés.\n"
exit 0

Dernière modification par demonipuch (Le 22/11/2011, à 02:18)

Hors ligne

#3 Le 22/11/2011, à 09:34

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Merci bien je regarde ça quand j'ai un moment.

Hors ligne

#4 Le 22/11/2011, à 14:53

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

J'aimerais bien avoir tes modestes connaissances en script bash. smile
Le script marche très bien, seulement ...

Je ne comprend pas pourquoi, par exemple, dans le diff i386 main on voit apparaître le paquet deja-dub ?
J'ai vérifié, ce paquet  était déjà présent sous Natty :
http://packages.ubuntu.com/search?searc … y&arch=any

--

Edit

D'accord je crois comprendre, c'est parce que deja-dup était dans universe sous Natty et il est passé dans main sous Oneiric.

Hum... je vais réfléchir à quelques trucs, puis je reviendrais.

En tout cas merci d'avoir prit le temps d'écrire ce script. A bientôt

Dernière modification par mydjey (Le 22/11/2011, à 14:59)

Hors ligne

#5 Le 22/11/2011, à 15:03

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Pour reprendre ton exemple avec le paquet deja-dub.

Il est bien présent sous Natty mais dans la section Universe. Sous Oneiric, il est ajouté à la section Main. D'où le fait qu'il apparaisse dans le fichier main/diff.

Le script est "bête" il ne fait pas la différence si un paquet est déplacé d'une section à l'autre. Il compare seulement les paquets d'une même section.

Hors ligne

#6 Le 22/11/2011, à 15:46

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Une solution pour n'avoir QUE les paquets ajoutés même si des paquets ont changé de section :

cd Paquets/i386
cat main/Packages-natty multiverse/Packages-natty universe/Packages-natty restricted/Packages-natty | sort -d > allsection-natty
cat main/Packages-oneiric multiverse/Packages-oneiric universe/Packages-oneiric restricted/Packages-oneiric | sort -d > allsection-oneiric
diff allsection-natty allsection-oneiric | grep ">" > diff

Faire la même chose pour les dépôts updates et security.

A priori ca devrait être bon...Je fais qqs tests pour vérifier...

Hors ligne

#7 Le 22/11/2011, à 16:56

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

A priori avec ce script ca devrait le faire.

#!/bin/bash

DIR="$HOME/Paquets"

for ARCH in i386 amd64; do
    echo -e "\n--- Téléchargement de la liste des paquets $ARCH"
    for DEPOT in natty oneiric natty-updates oneiric-updates natty-security oneiric-security; do
        echo -e "\nDépot : $DEPOT"
        for SECTION in main multiverse restricted universe; do
            echo -e "Section : $SECTION"
            mkdir -p $DIR/$ARCH/$SECTION
            wget -q http://fr.archive.ubuntu.com/ubuntu/dists/$DEPOT/$SECTION/binary-$ARCH/Packages.bz2 -O $DIR/$ARCH/$SECTION/$DEPOT.bz2
            bzcat $DIR/$ARCH/$SECTION/$DEPOT.bz2 | grep "^Package:" > $DIR/$ARCH/$SECTION/$DEPOT
            rm $DIR/$ARCH/$SECTION/$DEPOT.bz2
        done
        cat $DIR/$ARCH/main/$DEPOT $DIR/$ARCH/multiverse/$DEPOT $DIR/$ARCH/restricted/$DEPOT $DIR/$ARCH/universe/$DEPOT | sort -d > $DIR/$ARCH/$DEPOT
    done
    echo -e "\n--- Création du fichier $DIR/$ARCH/diff"
    cat $DIR/$ARCH/natty $DIR/$ARCH/natty-updates $DIR/$ARCH/natty-security | sort -du > $DIR/$ARCH/all-natty
    cat $DIR/$ARCH/oneiric $DIR/$ARCH/oneiric-updates $DIR/$ARCH/oneiric-security | sort -du > $DIR/$ARCH/all-oneiric
    diff $DIR/$ARCH/all-natty $DIR/$ARCH/all-oneiric | grep ">" | cut -d' ' -f3 > $DIR/$ARCH/diff
    rm $DIR/$ARCH/natty* $DIR/$ARCH/oneiric* 
done
rm -rf $DIR/i386/{all*,main,multiverse,restricted,universe} $DIR/amd64/{all*,main,multiverse,restricted,universe}
exit 0

edit : modification du script

Dernière modification par demonipuch (Le 22/11/2011, à 19:13)

Hors ligne

#8 Le 22/11/2011, à 19:57

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Ah bah en continuant mes recherches je suis tombé, sur ça :

http://packages.ubuntu.com/fr/natty/all … mat=txt.gz
http://packages.ubuntu.com/fr/oneiric/a … mat=txt.gz

C'est surement mieux de travailler avec ces fichiers lol

Hors ligne

#9 Le 22/11/2011, à 20:50

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Ah vi c'est pas mal y'a tout les dépôts on dirait ! Je suis en train de faire travailler meld avec ces deux fichiers (l'en peut plus le pauvre tongue ).

--

En fait mon but dans cette entreprise est de voir les nouveaux logiciels qui ont été packagés pour la nouvelle version. Le but est de les mettre en avant.
Par exemple un .deb de Darktable est apparut dans les dépôts de Oneiric, et c'est passé inaperçu. C'est dommage plutôt que de tout le temps parler des ppa, j'aimerais pouvoir mettre en avant les nouveaux .deb des dépôts.

Hors ligne

#10 Le 22/11/2011, à 23:37

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Grand merci demonipuch, je crois que j'ai trouvé ce que je cherchais.
Les liens que tu me donnent, associé à Melt font des merveilles. smile

J'ai déjà pu améliorer pas mal de pages de doc.

Les .deb officiels saylebien !

Hors ligne

#11 Le 22/11/2011, à 23:55

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Quoique je verrais à terme ton script associé aux deux liens que tu donnes sera sans doute plus pratique que Meld.
Je garde ça sous le coude ...

Hors ligne

#12 Le 23/11/2011, à 00:01

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

J'ai fait un nouveau script en utilisant les deux liens :

#!/bin/bash
# Script pour créer une liste des paquets ajoutés à Oneiric

NATTY="http://packages.ubuntu.com/fr/natty/allpackages?format=txt.gz"
ONEIRIC="http://packages.ubuntu.com/fr/oneiric/allpackages?format=txt.gz"
DIR="$HOME/Oneiric"

if [[ ! -d $DIR ]]; then
mkdir -p $DIR
fi

# Télécharger la liste des paquets
echo -e "\nTéléchargement de la liste des paquets :"
echo "+ Natty"
wget -q $NATTY -O $DIR/natty.gz
echo "+ Oneiric"
wget -q $ONEIRIC -O $DIR/oneiric.gz

# Décompresser la liste des paquets
gzip -d $DIR/natty.gz
gzip -d $DIR/oneiric.gz

# Créer la liste des paquets ajoutés
tail -n+7 $DIR/natty | cut -d' ' -f1 > $DIR/paquets_natty
tail -n+7 $DIR/oneiric | cut -d' ' -f1 > $DIR/paquets_oneiric
echo -e "\nCréation de la liste des paquets ajoutés à Oneiric :"
echo "+ $DIR/nouveaux_paquets.list"
diff $DIR/paquets_natty $DIR/paquets_oneiric | grep ">" | cut -d' ' -f2 > $DIR/nouveaux_paquets.list

# Supprimer les fichiers téléchargés
rm $DIR/natty $DIR/oneiric $DIR/paquets_{natty,oneiric}
exit 0

Hors ligne

#13 Le 23/11/2011, à 00:49

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

C'est 100 fois mieux que Meld !

Plutot que d'avoir seulement le nom, j'aimerais aussi avoir les champs qui suivent, par exemple :

freegish (1.53+git20101011+dfsg-1) [universe] a physics based arcade game

au lieu de simplement le nom : freegish

Dernière modification par mydjey (Le 23/11/2011, à 00:49)

Hors ligne

#14 Le 23/11/2011, à 01:21

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Humm

En fait je ne pense pas que ce soit possible, du moins en l'état actuelle de mes connaissances de bash... Si je trouve quelque chose je vous en ferais part.

Hors ligne

#15 Le 23/11/2011, à 19:39

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Bonsoir mydjey

J'ai ce script la :

#!/bin/bash
 
NATTY="http://packages.ubuntu.com/fr/natty/allpackages?format=txt.gz"
ONEIRIC="http://packages.ubuntu.com/fr/oneiric/allpackages?format=txt.gz"
DIR="$HOME/Oneiric"
 
if [[ ! -d $DIR ]]; then
mkdir -p $DIR
fi
 
# Télécharger la liste des paquets
echo -e "\nTéléchargement de la liste des paquets :"
echo "+ Natty"
wget -q $NATTY -O $DIR/natty.list.gz
echo "+ Oneiric"
wget -q $ONEIRIC -O $DIR/oneiric.list.gz
 
# Décompresser les fichiers téléchargés
gzip -d $DIR/natty.list.gz
gzip -d $DIR/oneiric.list.gz
 
# Créer un fichier avec le nom des paquets et sa description complète pour chaque distrib
tail -n+7 $DIR/natty.list > $DIR/natty_desc
tail -n+7 $DIR/oneiric.list > $DIR/oneiric_desc
 
# Créer un fichier avec seulement le nom des paquets pour chaque distrib
tail -n+7 $DIR/natty.list | cut -d' ' -f1 > $DIR/natty
tail -n+7 $DIR/oneiric.list | cut -d' ' -f1 > $DIR/oneiric
 
# Créer la liste des paquets ajoutés avec leur description
diff $DIR/natty $DIR/oneiric | egrep "^>" | sed -e 's/^> //g' | sort > $DIR/diff
diff $DIR/natty_desc $DIR/oneiric_desc | egrep "^>" | sed -e 's/^> //g' | sort > $DIR/diff_desc
echo -e "\nCréation de la liste des paquets ajoutés à Oneiric :"
echo "+ $DIR/liste"
join --nocheck-order -j 1 $DIR/diff $DIR/diff_desc > $DIR/liste

# Supprimer les fichiers superflus (ne garder que $DIR/liste)
rm $DIR/natty* $DIR/oneiric* $DIR/diff*
exit 0

Il convient presque... Je m'explique : dans le fichier $DIR/diff on peut voir par exemple ces lignes :

comixcursors
comixcursors-lefthanded
comixcursors-lefthanded-opaque
comixcursors-righthanded
comixcursors-righthanded-opaque

Dans le fichier $DIR/diff_desc on trouve ceci :

comixcursors (0.7.2-1) [universe] transitional dummy package
comixcursors-lefthanded (0.7.2-1) [universe] X11 mouse pointer themes with a comic art feeling (LH, translucent)
comixcursors-lefthanded-opaque (0.7.2-1) [universe] X11 mouse pointer themes with a comic art feeling (LH, opaque)
comixcursors-righthanded (0.7.2-1) [universe] X11 mouse pointer themes with a comic art feeling (RH, translucent)
comixcursors-righthanded-opaque (0.7.2-1) [universe] X11 mouse pointer themes with a comic art feeling (RH, opaque)
comixcursors virtual package provided by comixcursors-righthanded

Du coup quand on les passe dans la commande join, la ligne "comixcursors virtual package provided by comixcursors-righthanded" saute et join renvoie une erreur (pour ne pas afficher l'erreur j'ai utilisé l'option --nocheck-order).

edit :

Si vous voulez connaitre les lignes redondantes, vous pouvez ajouter cette ligne après le join dans le script :

cat $DIR/diff_desc | cut -d' ' -f1 | sort -d | uniq -d > $DIR/lignes_redondantes

Dernière modification par demonipuch (Le 24/11/2011, à 03:41)

Hors ligne

#16 Le 24/11/2011, à 21:23

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Bonsoir demonipuch ,

Le script marche bien.

Seulement j'ai pas pu m’empêcher de le décortiquer et j'ai une question :

Après :

diff $DIR/natty $DIR/oneiric | egrep "^>" | sed -e 's/^> //g' | sort > $DIR/diff
diff $DIR/natty_desc $DIR/oneiric_desc | egrep "^>" | sed -e 's/^> //g' | sort > $DIR/diff_desc

Le join fait quoi exactement ?
Il assemble les deux fichiers en ne gardant que les lignes présentes dans $DIR/diff ?

Hors ligne

#17 Le 24/11/2011, à 21:45

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

man join a écrit :

NOM
       join - Fusionner les lignes de deux fichiers ayant des champs communs

SYNOPSIS
       join [OPTION]... FICHIER1 FICHIER2

DESCRIPTION
       Pour chaque paire de lignes en entrée ayant des champs de fusion identiques, afficher une ligne sur la sortie standard. Par défaut, le champ de fusion est la première chaîne délimitée par un blanc.
       L'entrée standard est lue quand FICHIER1 ou FICHIER2 (exclusivement) vaut « - ».

L'option -j 1 (qui peut s'écrire également -1 1 -2 1) indique que les lignes sont fusionnées sur le 1er champ du premier fichier (-1 1) et sur le 1er champ du deuxième fichier (-2 1).

Dernière modification par demonipuch (Le 24/11/2011, à 21:48)

Hors ligne

#18 Le 24/11/2011, à 22:26

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Ok,

Merci demonipuch d'avoir pris le temps d'écrire ce script. smile
Il marche très bien, si en plus il t'a permis d'en apprendre un peu plus sur les scripts c'est cool.

Je suis en train de m'en servir pour faire apparaître les nouveaux .deb au grand jour.
Je me manquerais pas de partager mes trouvailles sur le forum ou le wiki.
(déjà fait ici : http://forum.ubuntu-fr.org/viewtopic.php?id=732861 )

++

Dernière modification par mydjey (Le 24/11/2011, à 22:27)

Hors ligne

#19 Le 24/11/2011, à 22:33

mydjey

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Et déjà pas mal de pages de doc améliorés.

Hors ligne

#20 Le 24/11/2011, à 22:37

demonipuch

Re : [Résolu] Lister les nouveaux paquets d'une version donnée d'Ubuntu

Belle initiative!

Et en effet ca m'a permis de découvrir quelques commandes que j'ignorais smile

Hors ligne