Ici on n'a que votre IP, votre pseudo et votre adresse mail que nous ne traitons pas.
Quand vous êtes enregistrés, une seule requête permet de vous afficher les messages que vous n'avez pas lus.
Primtux8 est arrivée! Rendez-vous ici
Vous pouvez désormais vous inscrire librement en cliquant sur "S'enregistrer".

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Primtux sur Macbook
#41
Voici le script permettant de comparer les listes de paquets de deux distributions. C'est celui que j'ai développé pour m'aider à construire la PrimTux RPi.

ATTENTION: en plus de ce qui est indiqué en début de script, il te faudra modifier les lignes 12 et 13 au niveau des architectures:
Code :
cat "$DISTRI1" | sed -e '1,6d' -e "s/[ ][ ]*/#/g" -e "s/i386//g" | cut -d '#' -f 2 > liste1
cat "$DISTRI2" | sed -e '1,6d' -e "s/[ ][ ]*/#/g" -e "s/armhf//g" | cut -d '#' -f 2 > liste2

Il y aura à remplacer le i386 de ton Ubuntu sans doute par amd64 (correspondant à la première ligne), idem pour la PrimTux Lubuntu à la place de armhf (correspondant à la 2ème ligne) si elle est en 64 bits, sinon ce sera i386.
Tu pourras facilement le vérifier par un
Code :
dpkg -l
où tu verras, sur chaque ligne de paquet, l'indication d'architecture.

Le script te créera, dans le répertoire de travail, les fichiers suivants:
paquets-compares-presents.txt --> paquets présents dans les deux distributions
paquets-compares-absents.txt --> paquets présents dans la distribution de référence, mais pas dans celle comparée
paquets-compares-nouveaux.txt --> paquets présents dans la distribution comparée, mais dans dans la distribution de référence
paquets-compares.html --> synthèse des fichiers précédents, présentée au format html


Code :
#!/bin/bash

# script permettant de comparer les paquets de deux distributions à partir des informations fournies par la commande dpkg
# Sur la distibution de référence on fera dpkg -l > liste1  pour rediriger cette liste vers le fichier liste1 dont on indiquera le nom dans la variable DISTRI1
# Sur la distribution à comparer, on fera dpkg -l > liste2  pour rediriger cette liste vers le fichier liste2 dont on indiquera le nom dans la variable DISTRI2
# Ces deux fichiers doivent ensuite être placés dans le même répertoire que le script

DISTRI1="liste1"
DISTRI2="liste2"

# Filtre les deux listes pour en extraire uniquement les noms de paquets
cat "$DISTRI1" | sed -e '1,6d' -e "s/[ ][ ]*/#/g" -e "s/i386//g" | cut -d '#' -f 2 > liste1
cat "$DISTRI2" | sed -e '1,6d' -e "s/[ ][ ]*/#/g" -e "s/armhf//g" | cut -d '#' -f 2 > liste2

compares_presents_txt="paquets-compares-presents.txt"
compares_absents_txt="paquets-compares-absents.txt"
compares_nouveaux_txt="paquets-compares-nouveaux.txt"
compares_html="paquets-compares.html"

# Crée les différents fichiers contenant les résultats de la comparaison
> "$compares_html"
> "$compares_presents_txt"
> "$compares_absents_txt"
> "compares_nouveaux_txt"

# Effectue la comparaison
PRESENTS=""
PRESENTS_HTML=""
ABSENTS=""
ABSENTS_HTML=""
NOUVEAUX=""
NOUVEAUX_HTML=""
while read ligne
    do
      if grep ^${ligne}$ liste2 > /dev/null
         then PRESENTS="$PRESENTS
$ligne"
              PRESENTS_HTML="$PRESENTS_HTML<br/>$ligne"
         else ABSENTS="$ABSENTS
$ligne"
              ABSENTS_HTML="$ABSENTS_HTML<br/>$ligne"
      fi
done < liste1

while read ligne
    do
      if ! grep ^${ligne}$ liste1 > /dev/null
         then NOUVEAUX="$NOUVEAUX
$ligne"
              NOUVEAUX_HTML="$NOUVEAUX_HTML<br/>$ligne"
      fi
done < liste2

rm liste1 liste2

# Inscrit les résultats dans les différents fichiers
echo '<!doctype html>
<html lang="fr">
<head>
<meta content="fr" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Paquets comparés</title>
</head>
<body>' >> "$compares_html"
echo "<h2>Paquets présents:</h2>" >> "$compares_html"
echo "<p>$PRESENTS_HTML</p>" >> "$compares_html"
echo "Paquets présents:" >> "$compares_presents_txt"
echo "$PRESENTS" >>"$compares_presents_txt"
echo '<br/><hr size="2">' >> "$compares_html"
echo "<h2>Paquets absents:</h2>" >> "$compares_html"
echo "<p>$ABSENTS_HTML</p>" >> "$compares_html"
echo "Paquets absents:" >> "$compares_absents_txt"
echo "$ABSENTS" >> "$compares_absents_txt"
echo '<br/><hr size="2">' >> "$compares_html"
echo "<h2>Nouveaux paquets:</h2>" >> "$compares_html"
echo "<p>$NOUVEAUX_HTML</p>" >> "$compares_html"
echo "Nouveaux paquets:" >> "$compares_nouveaux_txt"
echo "$NOUVEAUX" >> "$compares_nouveaux_txt"
echo "</body></html>" >> "$compares_html"

exit 0
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)