Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 15-01-2017 19:09:12

debian-alain
Membre
Distrib. : DEBIAN JESSIE 8.7
Noyau : Linux 3.16.0-4-amd64
(G)UI : GNOME
Inscription : 31-08-2016

install-réinstall.sh

bonjour à tous et à toutes

je viens ici vous partager une expérience malheureuse qui aurait pu tourner au fiasco mais il n'en a rien été .

recherchant un I.D.E. multi langages et victime de la pub , je me suis tourné vers eclipse .

bien entendu , en bon windowsien que j'étais il y a pas si longtemps , je l'ai téléchargé sur internet et installé
grâce à son script d'installation .

grosse erreur ! eclipse ne me satisfaisait pas du tout et j'ai donc voulu le désinstaller .

j'ai tout essayé , sans succès . finalement , un brave gars m'a aidé , moyennant nombre "find " et autre commande à trouver toutes les occurences de eclipse 
et à les effacer à la main .

MEGA GIGA ENORME GROSSE ERREUR !

car ce faisant , j'ai touché à la structure de apt et donc de mon systeme . entre autres .

il a donc fallu , afin de rétablir son bon fonctionnement , tout remettre en ordre  (vérifier les fichiers manquants dans les paquets installés )

un tiers , devant la tache herculéenne , a donc préférer me refiler un petit script pour faire l'état des lieux .

puis un autre pour remettre tous mes paquets en ordre .

les opérations se sont bien passées et mon pc s'est vite retrouvé  en bonne forme .

plutôt que de me servir encore une fois des deux  scripts , j'ai décidé de modifier le premier afin d'éviter toute perte de  temps .

maintenant , le script procède à la réinstallation systematique de chaque paquet trouvé par un dpkg -l .

l'examen du systeme et sa reinstallation sont donc automatisés .

pour faire court :

le script mentionne sur l'écran le nom de chaque paquet trouvé et exécute la commande apt-get install --reinstall <nom du  paquet> de façon automatique

quand il n'y  a plus de paquet dans le dpkg -l  , le script s'arrète .



voilà le script

#!/bin/sh
 
for p in $(dpkg -l | awk '/^ii/ { print $2 }')
do
    for f in $(dpkg -L "$p" | grep '^/')
    do
        if [ ! -e  "$f" ]
        then
            [ -L "$f" ] || { printf  "\n\n%s: au moins un fichier manquant %s\n\n\n" "$p" "$f" && apt-get install --reinstall $p && break; }
        fi
    done
done



pour terminer l'histoire , j'ai pu , avec un peu d'aide , localiser les répertoires et les fichiers de eclipse et tout effacer (sans erreur cette fois) à la main .

là où on pouvait le faire .

maintenant eclipse 3.8.1-7 est effacé proprement et la version 4.6.2 est installée (avec son uninstall.sh !)

voilà .

copiez , triturez , faites et défaites le script . en un mot comme en cent , amusez vous bien et puisse t il vous aider si vous en avez besoin .

Dernière modification par debian-alain (15-01-2017 19:19:30)

Hors ligne

#2 16-01-2017 21:10:27

debian-alain
Membre
Distrib. : DEBIAN JESSIE 8.7
Noyau : Linux 3.16.0-4-amd64
(G)UI : GNOME
Inscription : 31-08-2016

Re : install-réinstall.sh

il y a aussi ce script là :

il fait un rapport sur l'écran des paquets à réinstaller et , en même temps ,
crée un fichier qu'il suffit de lancer pour procéder à la  réinstallation des paquets visés .

   
 #!/bin/sh
echo "#!/bin/sh" > exinst.sh
printf "apt-get install -s" >> exinst.sh
z="apt-get install --reinstall -s"
    for p in $(dpkg -l | awk '/^ii/ { print $2 }')
    do
        for f in $(dpkg -L "$p" | grep '^/')
        do
            if [ ! -e  "$f" ]
            then
    [ -L "$f" ] || z+=" "
                [ -L "$f" ] || z+="$p"
                [ -L "$f" ] || { printf "%s" " $p " >> exinst.sh && break; }
            fi
        done
    done

echo $z
#exec $z

 



voilà , bonne chance et bon amusement wink

nb :

si vous voulez  procéder à la réinstallation des paquets , il faut supprimer le -s dans la commande

printf "apt-get install -s" >> exinst.sh

,

sinon la commande ne fera que une simulation et n'accomplira pas son travail .

Dernière modification par debian-alain (16-01-2017 21:16:43)

Hors ligne

#3 04-04-2017 05:01:56

Walker29
Membre
Lieu : Bretagne (Finistère)
Distrib. : Debian 9.2 (Stretch)
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Xfce 4.12
Inscription : 23-04-2016

Re : install-réinstall.sh

Bonjour,
Super sympas tes scripts... Merci pour le partage, je pompe ! Car pour l'instant je suis incapable de créer des scripts de ce niveau wink
Je vais en étudier la synthaxe...
Cordialement.

- La logique vous conduira d'un point A à un point B, l'imagination et l'audace vous conduiront où vous le désirez ! (A. Einstein)
- Quelle époque terrible que celle ou des idiots dirigent des aveugles ! (W. Shakespeare)
- Si vous ne faites pas aujourd'hui ce que vous avez dans la tête, demain vous l'aurez dans le c... (Coluche) big_smile

Hors ligne

#4 04-04-2017 08:41:25

Debian Alain
Membre
Lieu : BREST 29200
Distrib. : W$10 1709 / stretch / ubuntu 17.10 / buster-sid
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Mate / Gdm3
Inscription : 11-03-2017

Re : install-réinstall.sh

bon amusement walker29 .

je te  rassure , moi aussi .

je m'y suis mis à 2  sur les scripts d'origine . qui ne sont pas là  .

mais je pourrai pas les retrouver .

pour le deuxième  script , que je te conseille , changes la ligne  :

printf "apt-get install -s" >> exinst.sh



par

printf "apt-get install --reinstall -s" >> exinst.sh



si tu veux lancer la réinstallation des programmes listés par le script , retire le "-s"  dans la ligne  ci dessus
et lance le fichier créé par un 

sh /ton chemin/exinst.sh



note : à lancer en root

Dernière modification par Debian Alain (04-04-2017 09:55:54)


1498826560.jpg 1498812139.jpg Bip ! Bip !

Hors ligne

#5 04-04-2017 13:55:46

Walker29
Membre
Lieu : Bretagne (Finistère)
Distrib. : Debian 9.2 (Stretch)
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Xfce 4.12
Inscription : 23-04-2016

Re : install-réinstall.sh

Salut Alain,

Je n'ai pas encore testé le second script, mais avec ton premier script il m'a trouvé 6 paquets à installer. Je pense que je vais testé cela ce soir et je te tiendrai au courant woohoo.gif
Pour l'histoire du "-s" j'avais saisi l'opération, tu avais été clair dans ton message.
Au fait, si tu as un peu de temps va voir ce lien :
https://debian-facile.org/viewtopic.php … 36#p220136
Si tu as une idée ou autres ? Je suis preneur... big_smile

Cordialement

- La logique vous conduira d'un point A à un point B, l'imagination et l'audace vous conduiront où vous le désirez ! (A. Einstein)
- Quelle époque terrible que celle ou des idiots dirigent des aveugles ! (W. Shakespeare)
- Si vous ne faites pas aujourd'hui ce que vous avez dans la tête, demain vous l'aurez dans le c... (Coluche) big_smile

Hors ligne

Pied de page des forums