Pages : 1
#1 Le 06/05/2014, à 10:54
- jplemoine
paquet hors depot
Lorsque l'on installe un fichier .deb par dpkg, il semblerait que les mises à jour ne se fasse pas automatiquement.
Pour les détecter, j'ai fais (sans certitude) le script suivant :
Il semblerait que, dans ce cas, le champs Filename soit vide.
for line in $(dpkg --get-selections | \
awk '{print $1}'); do var=$(echo "$line | \
$(apt-cache show $line | grep -c Filename:)" | \
grep "| 0" | awk -F '|' '{print $1}'); \
if [ "1${var}" != "1" ]; then \
ver=$(apt-cache show $(echo "$var") | grep "Version"); \
echo "$var , $ver"; fi; done
Attention : faire un copier-coller de l'ensemble car il s'agit d'une seule grande ligne.
Sur le même principe, j'ai fait un vrai script :
#! /bin/bash
clear
echo "liste des paquets installés en manuel"
echo "-------------------------------------"
echo " "
# ---------- paramétrage ---------------
# taille en pixels à mettre en négatif
col1=-35
col2=-17
# modulo pour affichage du pourcentage
modulo=4
# mode debug ou non
debug='N'
# ------- fin paramétrage -------------
# récupération du nombre de paquets installés
total=0
if [ $debug = 'O' ]; then
# mettre un pattern pour limiter la sélection : on peut le modifier à volonté
liste=$(dpkg --get-selections "a*" "g*" | awk '{print $1}')
else
liste=$(dpkg --get-selections | awk '{print $1}')
fi
for line in $(echo "$liste")
do
((total++))
done
#echo " "
#echo " total = $total"
#echo " "
# s'il n'y a pas de paquets, on sort...
if [ $total = 0 ]; then
echo " "
echo " Il n'y a pas de paquet correspondant aux critères."
echo " "
exit
fi
# lecture des infos des paquets
nb=0
pcnt=0
save=0
sortie=""
for line in $(echo "$liste")
do
((nb++))
var=$(echo "$line | $(apt-cache show $line | grep -c Filename:)" | grep "| 0" | awk -F '|' '{print $1}')
if [ "1${var}" != "1" ]; then
ver=$(apt-cache show $(echo "$var") | grep "Version")
if [ "1${sortie}" == "1" ]; then
sortie=$(echo " | $sortie")
else
sortie=$(echo "$sortie; | ")
fi
var=$(printf "%*s" $col1 $var)
ver=$(echo $ver | awk -F ':' '{print $2}')
ver=$(printf "%*s" $col2 $ver)
sortie=$(echo "$sortie$var | Version: $ver")
sortie=$(echo "$sortie |")
fi
# on remplace le ; par un CR
sortie=$(echo "$sortie" | tr ';' '\012')
# calcul du pourcentage
pcnt=$(echo "scale=0; $nb*100/$total" | bc)
mod=$(echo "scale=0; $pcnt % $modulo" | bc)
# Si le poucentage a changé et s'il est multiple du modulo,
# on l'affiche
if [ $pcnt != $save ] && [ $mod = 0 ]; then
echo -n "${pcnt}%..."
save=$pcnt
fi
done
# on cree le tableau
echo " "
echo " "
echo " |--------------------------------------|----------------------------|"
echo " | | |"
echo " | nom paquet | version installée |"
echo " | | |"
echo " |--------------------------------------|----------------------------|"
echo " | | |"
echo "$sortie"
echo " | | |"
echo " |--------------------------------------|----------------------------|"
echo " "
echo "fin du traitement. nombre de paquets traites : $nb"
Mettre le contenu dans un fichier et donner à ce dernier les droits d’exécution.
Dernière modification par jplemoine (Le 06/05/2014, à 16:02)
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#2 Le 06/05/2014, à 14:13
- f.x0
Re : paquet hors depot
Bonjour jplemoine,
Merci pour le partage.
La commande donnée en 1 fonctionne parfaitement dans le terminal,
par contre le script ne fonctionne pas chez moi,
il s'arrête dès qu'il a trouvé le 1er paquet.
Il semble manquer des lignes au script, ou une boucle (absente ou non complétée).
Dernière modification par f.x0 (Le 06/05/2014, à 14:13)
SOPI
Hors ligne
#3 Le 06/05/2014, à 14:16
- jplemoine
Re : paquet hors depot
Peux-tu me donner le résultat des 2 commandes que je puisse comparer ?
A priori, le script du 2 est complet.
Merci,
Jean-Philippe
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#4 Le 06/05/2014, à 15:21
- f.x0
Re : paquet hors depot
Voilà pour le 1 :
for line in $(dpkg --get-selections | \
> awk '{print $1}'); do var=$(echo "$line | \
> $(apt-cache show $line | grep -c Filename:)" | \
> grep "| 0" | awk -F '|' '{print $1}'); \
> if [ "1${var}" != "1" ]; then \
> ver=$(apt-cache show $(echo "$var") | grep "Version"); \
> echo "$var , $ver"; fi; done
app-install-data-medibuntu , Version: 10.10.0
jshon , Version: 20131010-3
master-pdf-editor , Version: 1.9.23
Voilà pour le 2 :
liste des paquets installés en manuel
-------------------------------------
4%...8%...12%...16%...20%...24%...28%...32%...36%...40%...44%...48%...52%...56%...60%...64%...68%...72%...76%...80%...84%...88%...92%...96%...100%...
|--------------------------------------|----------------------------|
| | |
| nom paquet | version installée |
| | |
|--------------------------------------|----------------------------|
| | |
| app-install-data-medibuntu | Version: 10.10.0 |
| | |
|--------------------------------------|----------------------------|
fin du traitement. nombre de paquets traites : 202
SOPI
Hors ligne
#5 Le 06/05/2014, à 15:31
- jplemoine
Re : paquet hors depot
Peux-tu essayer en mettant en commentaire la ligne :
sortie=$(echo "$sortie" | tr ';' '\012')
(mettre # devant) ? Merci.
NB : je viens d'essayer ça fonctionne chez moi. Je ne peux donc pas tester seul...
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#6 Le 06/05/2014, à 15:42
- f.x0
Re : paquet hors depot
Ça fait pareil :
liste des paquets installés en manuel
-------------------------------------
4%...8%...12%...16%...20%...24%...28%...32%...36%...40%...44%...48%...52%...56%...60%...64%...68%...72%...76%...80%...84%...88%...92%...96%...100%...
|--------------------------------------|----------------------------|
| | |
| nom paquet | version installée |
| | |
|--------------------------------------|----------------------------|
| | |
| app-install-data-medibuntu | Version: 10.10.0 |
| | |
|--------------------------------------|----------------------------|
fin du traitement. nombre de paquets traites : 202
SOPI
Hors ligne
#7 Le 06/05/2014, à 15:45
- jplemoine
Re : paquet hors depot
Je ne comprends pas ce qui merde....
Il faut que je trouve un 3ième "trucs" à installer pour voir si c'est le fait d'avoir 3 lignes qui merdent.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#8 Le 06/05/2014, à 15:48
- f.x0
Re : paquet hors depot
En fait j'en ai plus, mais je n'ai pas tout mis. (6 ou 7)
Le paquet jhson qui devrait s'afficher n'est pas dans la même distrib que celle utilisée.
(utilisée : 12.04 - paquet : 14.04)
Dernière modification par f.x0 (Le 06/05/2014, à 15:49)
SOPI
Hors ligne
#9 Le 06/05/2014, à 16:01
- jplemoine
Re : paquet hors depot
Ça y est je viens de trouver :
J'ai publié
# mode debug ou non
debug='O'
au lieu de
# mode debug ou non
debug='N'
Le mode debug filtre les paquets... (ça prend que ceux qui commencent par a ou par g)
Je corrige le listing du post #1.
Dernière modification par jplemoine (Le 06/05/2014, à 16:02)
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#10 Le 06/05/2014, à 19:01
- f.x0
Re : paquet hors depot
Tu es un seigneur jplemoine !!!
Cette fois cela fonctionne nickel, encore merci pour ce partage fort utile.
Bonne continuation sur Gnu/Linux
SOPI
Hors ligne
#11 Le 06/05/2014, à 19:16
- jplemoine
Re : paquet hors depot
En fait, j'en ai eu besoin pour moi. Donc, une fois utilisé, je me suis dis que je pourrais le poster sur le forum.
NB : Le mode debug m'avait permis de diminuer le temps d’exécution pour mettre le script au point.
ça limite les paquets :
- debug désactivé : cherche dans tous les paquets installés
- avec le mode debug : cherche dans les paquets qui commence par a et g (mais on peut modifier).
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
Pages : 1