Forum Programmation.shell depends.sh

Posté par  .
Étiquettes : aucune
-1
20
nov.
2011

bonjour à tous
le script éxécutable depends.sh me permet de connaitre les paquets installés avec leurs numéros de version comme dépendances pour un logiciel,ceci pour ajouter au document control dans le.deb du logiciel
et par la même d'ajouter les paquets -dev pour le document .dsc de sa source compilable
il y a des redondances en sortie,je cherche la ligne a ajouter au script pour éviter cela

#!/bin/bash
echo ""
tour=0
objdump -p $1 | awk '/NEEDED/ { print $2 }'| while read so
do
    dpkg -S $so | awk -F: '{ print $1 }' | while read soo
    do
        dpkg -l $soo | grep ^ii | awk '{print $2,$3}'| while read sooo
        do
            if [ $tour = 0 ]
            then echo $sooo
                 let "tour += 1"
            fi
        done
    done
done    

  • # Idée rapide

    Posté par  (site web personnel) . Évalué à 2.

    Solution simple

    ./depends.sh /bin/bash | sort -u

    • [^] # Re: Idée rapide

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 20 novembre 2011 à 17:16.

      Sans boucle et en monoligne... Je suis juste passé par ldd. Pourquoi utilises tu objdump ?

       ldd /bin/bash | awk '{print $1}' | xargs -r dpkg -S 2>/dev/null | cut -f 1 -d ':' | sort -u | xargs -r dpkg -l | grep ^ii | awk '{print $2,$3}'
      
      
      • [^] # Re: Idée rapide

        Posté par  . Évalué à -3.

        merci pour la commande sytoka
        elle fonctionne plutôt bien

        • [^] # Re: Idée rapide

          Posté par  . Évalué à -4. Dernière modification le 20 novembre 2011 à 17:16.

          celle ci me donne en plus les librairies manquantes:

          ldd /usr/bin/monprogramme | awk '{print $1}' | xargs -r dpkg -S | cut -f 1 -d ':' | sort -u | xargs -r dpkg -l | grep ^ii | awk '{print $2,$3}'
          
          

          félicitation

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.