Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#51 Le 14/08/2010, à 13:27

fabux

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Install hier soir: impeccable smile (j'ai bien fait d'ajouter l'ouverture du sources.list, j'avais oublié tongue)
Je le garde bien au chaud celui-là, merci nesthib wink

Hors ligne

#52 Le 14/08/2010, à 13:48

nesthib

Re : [Script] Réinstallation automatique des paquets sur un système neuf

wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#53 Le 11/10/2010, à 03:41

mel4

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonsoir,
Je voudrais utiliser le script pour la nouvelle installation de Maverick. Toutefois, je n'y arrive pas.

melanie@melanie-laptop:~$ sudo sh reinstall.sh script/proglist 
[: 29: -ne: unexpected operator
lecture de "script/proglist"

Ensuite le apt-get update se fait, la liste de programme défile et le script se termine avec 0 logiciels installés.
Que n'ai-je pas fait correctement?
Merci
Mel

log:

reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//installe: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//installe: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//installe: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//installe: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstalle: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//noninstallable: Directory nonexistent
grep: /home/melanie/reinstall.sh//noninstalle: N'est pas un dossier
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
reinstall.sh: 109: cannot create /home/melanie/reinstall.sh//log: Directory nonexistent
rm: ne peut enlever `/home/melanie/reinstall.sh//noninstallable': N'est pas un dossier
rm: ne peut enlever `/home/melanie/reinstall.sh//noninstalle': N'est pas un dossier
rm: ne peut enlever `/home/melanie/reinstall.sh//installe': N'est pas un dossier

Ubuntu Precise sur Toshiba Satellite et Acer Aspire One

Hors ligne

#54 Le 11/10/2010, à 04:35

nordinatueur

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Son script utilise le dossier du script et le nom du fichier... donc le nom « script » du dossier dans chemin le ton fichier s'évapore ...

Va dans le dossier de ton script pour l'exécuter ... Ou bien remplace la ligne « PROGLISTFILE= ... » (ligne 30 à 40 ... je sais plus) par :

PROGLIST_FILE="( $( cd $(dirname $1); pwd ) )"

Dernière modification par nordinatueur (Le 11/10/2010, à 04:37)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#55 Le 11/10/2010, à 05:52

mel4

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonsoir
Merci de l'aide. J'avais oublié de préciser que j'avais déjà essayé de plusieurs façon dont celle-ci:
melanie@melanie-laptop:~/script$ sudo sh reinstall.sh proglist
Avec le même résultat.


Ubuntu Precise sur Toshiba Satellite et Acer Aspire One

Hors ligne

#56 Le 11/10/2010, à 11:55

nordinatueur

Re : [Script] Réinstallation automatique des paquets sur un système neuf

As tu essayé la ligne suivante ?

sudo bash reinstall.sh proglist

sh n'est pas forcément bash, (en tous cas pas chez moi...) alors que ce script a été conçu pour bash.

En plus je n'avais pas fait attention mais le script semble considérer « reinstall.sh » comme un dossier où tu aurais entreposé ta liste de programmes.
EDIT : Personnellement, j'exécute :

sudo ./reinstall.sh proglist

Dernière modification par nordinatueur (Le 11/10/2010, à 11:56)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#57 Le 11/10/2010, à 13:20

nesthib

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonjour,

j'ai lu rapidement la discussion mais je vois que tu es entre de bonnes mains, si tu n'y arrives toujours pas je regarderai ce soir.
Utilises-tu la version 0.2 du script ?
As-tu bien rendu le script exécutable (chmod) ?

Effectivement le script est écrit en bash et utilise des commandes bash non reconnues par sh.

Tiens-nous au courant smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#58 Le 11/10/2010, à 19:11

mel4

Re : [Script] Réinstallation automatique des paquets sur un système neuf

nordinatueur a écrit :

As tu essayé la ligne suivante ?

sudo bash reinstall.sh proglist

sh n'est pas forcément bash, (en tous cas pas chez moi...) alors que ce script a été conçu pour bash.

En plus je n'avais pas fait attention mais le script semble considérer « reinstall.sh » comme un dossier où tu aurais entreposé ta liste de programmes.
EDIT : Personnellement, j'exécute :

sudo ./reinstall.sh proglist

Ah! Merci. Je l'ai eu!

melanie@melanie-laptop:~$ sudo ./reinstall.sh proglist

Dernière modification par mel4 (Le 11/10/2010, à 19:12)


Ubuntu Precise sur Toshiba Satellite et Acer Aspire One

Hors ligne

#59 Le 12/04/2011, à 11:50

bilbo-le-hobbit

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonjour,

Je souhaite passer de Maverick 32 bits à Natty 64 bits, et donc une réinstallation du système est obligatoire. Mais comme j'ai la flemme de passer des heures à retrouver mes programmes non inclus dans l'installation standard, j'ai préféré... passer des heures à me pencher sur le script proposé ici lol  Mais bon, ça pourra resservir après !
Mon problème était au niveau de mes dépôts supplémentaires. je me suis inspiré des uns et des autres, j'espère que je n'ai pas fait de bêtise(s). Je suis loin de maîtriser le langage des scripts... Pour certains dépôts, j'ai buté sur la commande lsb_release, par exemple (notamment skychart et google, comment la commande réagit face aux "stable", "unstable", "testing")

Si vous pouviez jeter un œil à ma copie et éventuellement (voire sûrement) la corriger, merci d'avance !

Voilà ce que ça donne :

#!/bin/bash
###########################################################################
#                                                                         #
# Script de réinstallation des programmes après réinstallation du système #
#                                 v0.2                                    #
#                             par nesthib                                 #
#                                                                         #
###########################################################################

#######################
#######################

# ce script permet l'installation de multiples paquets dont la liste est contenue dans un fichier texte
# l'installabilité des paquets est vérifiée au préalable
#
# il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d'indiquer le chemin du fichier 
# si aucun argument n'est donné le fichier proglist (s'il existe) contenu dans le même dossier que le script est utilisé
#
# À la fin de l'exécution un "log" est créé indiquant quels paquets ne sont pas dans les dépots,
# lesquels étaient déjà installés et ceux qui ont été installés

#######################
#######################

if [ $UID -ne 0 ]
then
    echo "vous devez être root pour lancer le script"
    exit 1    
fi

{
#Variables
SCRIPT_PATH="$(pwd)/${0%/*}/"
PROGLIST_FILE="${SCRIPT_PATH}proglist"
if [ $# -gt 0 ] ; then PROGLIST_FILE="$1" ; fi

if [ ! -f "$PROGLIST_FILE" ] ; then echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\" impossible" ; exit 1 ; fi

echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\""

#version actuelle du systeme
VERSION=$(lsb_release -c | cut -c 11-)

# Sauvegarde de la liste des dépots
cp /etc/apt/sources.list /etc/apt/sources.list.save

# rajout d'autres dépôts (et clés d'authentifications) dans sources.list s'ils sont absents
#Medibuntu
wget http://www.medibuntu.org/sources.list.d/`lsb_release -cs`.list --output-document=/etc/apt/sources.list.d/medibuntu.list
apt-get -q update
apt-get --yes -q --allow-unauthenticated install medibuntu-keyring
apt-get -q update
#skychart
echo "deb http://www.ap-i.net/apt stable main #Skychart" | tee -a /etc/apt/sources.list.d/skychart.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D79BF92A
#skychart unstable
echo "deb http://www.ap-i.net/apt unstable main #Skychart" | tee -a /etc/apt/sources.list.d/skychart_unstable.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D79BF92A
#cinelerra
echo "deb http://ppa.launchpad.net/cinelerra-ppa/ppa/ubuntu `lsb_release -cs` main #Cinelerra" | tee -a /etc/apt/sources.list.d/cinelerra.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 432BB368
#Virtualbox
echo "deb http://download.virtualbox.org/virtualbox/debian `lsb_release -sc` contrib #Virtualbox" | tee -a /etc/apt/sources.list.d/virtualbox.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 98AB5139
#Google
echo "deb http://dl.google.com/linux/deb/ stable non-free #Google" | tee -a /etc/apt/sources.list.d/google.list
wget -q https://dl-ssl.google.com/linux/linux_signing_key.pub -O- | apt-key add -
#Google testing
echo "deb http://dl.google.com/linux/deb/ testing non-free #Google" | tee -a /etc/apt/sources.list.d/google_testing.list
wget -q -O https://dl-ssl.google.com/linux/linux_signing_key.pub -O- | apt-key add -
#darktable
echo "deb http://ppa.launchpad.net/pmjdebruijn/darktable-release/ubuntu `lsb_release -cs` main #darktable" | tee -a /etc/apt/sources.list.d/darktable.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C07EE05F
#audio-recorder
echo "deb http://ppa.launchpad.net/osmoma/audio-recorder/ubuntu `lsb_release -cs` main #audio-recorder" | tee -a /etc/apt/sources.list.d/audio-recorder.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5139BD61
#ubuntu-tweak
echo "deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu `lsb_release -cs` main #ubuntu-tweak" | tee -a /etc/apt/sources.list.d/ubuntu-tweak.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0624A220
#bisigi
echo "deb http://ppa.launchpad.net/bisigi/ppa/ubuntu `lsb_release -cs` main #bisigi" | tee -a /etc/apt/sources.list.d/bisigi.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 881574DE

#############################################################################

#Rechargement de la liste des dépôts et des paquets
apt-get update

#tri des paquets selon les états "non installable", "installé", "non installé"
#création des fichiers temporaires recevant les noms des paquets triés
>"${SCRIPT_PATH}/noninstallable"
>"${SCRIPT_PATH}/noninstalle"
>"${SCRIPT_PATH}/installe"

install_ok=0

for arg in `grep -v "#" "${PROGLIST_FILE}" | grep -vx "" | sed ':a;N;$!ba;s/\n/\ /g'` #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne
do
    PAQUET=${arg}
    if apt-cache pkgnames | grep -x -q ${PAQUET} #test de l'existence du paquet dans les dépots
    then
        # test de l'état non installé du paquet
        if apt-cache policy ${PAQUET} | grep Installé | grep -q aucun
            then echo "${PAQUET} non installé"
            echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstalle"
            install_ok=1
            else echo "${PAQUET} installé"
            echo "${PAQUET}" >>"${SCRIPT_PATH}/installe"
        fi
    else    echo "${PAQUET} non installable"
        echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstallable"
    fi
done

#############################################################################

#Installation des paquets installables non installés
if [ $install_ok -eq 1 ]
then
    apt-get install $(grep -v "#" "${SCRIPT_PATH}/noninstalle" | sort | uniq | sed ':a;N;$!ba;s/\n/\ /g') #installe les paquets de la liste après avoir éliminé les doublons potentiels
fi

#création du log d'installation
echo "Paquets installés :" >"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/noninstalle" >>"${SCRIPT_PATH}/log"
echo "" >>"${SCRIPT_PATH}/log"
echo "Paquets déjà installés :" >>"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/installe" >>"${SCRIPT_PATH}/log"
echo "" >>"${SCRIPT_PATH}/log"
echo "Paquets absents des dépots :" >>"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/noninstallable" >>"${SCRIPT_PATH}/log"

#suppression des fichiers temporaires
rm "${SCRIPT_PATH}/noninstallable"
rm "${SCRIPT_PATH}/noninstalle"
rm "${SCRIPT_PATH}/installe"

} 2>reinstall.error.log #log d'erreur

exit 0

J'ai fait à côté ma proglist en ne citant que les paquets principaux (par exemple amarok et pas amarok-common) , j'ai bien fait ? Si je ne m'abuse, les paquets supplémentaires me seront proposés automatiquement, non ?

Dernière modification par bilbo-le-hobbit (Le 12/04/2011, à 11:52)


Sterenn, l'association d'astronomie du pays de Lorient

Mes photos Astro

Hors ligne

#60 Le 12/04/2011, à 15:56

choops

Re : [Script] Réinstallation automatique des paquets sur un système neuf

bilbo-le-hobbit> Le souci que tu risques d'avoir avec tes "lsb_release" est que certains dépôts n'auront pas forcément de branche Natty avant quelques temps (VirtualBox est le cas typique du dépôt qui met genre un mois après la sortie d'une release pour fournir la branche correspondante). Du coup, il est préférable d'attendre au moins la sortie officielle de Natty (voir laisser couler un peu de temps que les dépôts externes soient valides) avant d'exploiter ton script.

Hors ligne

#61 Le 12/04/2011, à 17:12

bilbo-le-hobbit

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Du coup, si je le lançais à la sortie de natty, il bloquerait sur les erreurs de lsb_release ? ou alors il y aurait quelque chose à rajouter au script pour vérifier l'existence du dépôt (si virtualbox n'est pas encore dispo en natty, alors le script ne l'ajoute pas),

J'avais prévu de toute façon d'attendre la sortie officielle de natty. Me pencher sur ce script est ma manière de ronger mon frein...

Dernière modification par bilbo-le-hobbit (Le 12/04/2011, à 17:15)


Sterenn, l'association d'astronomie du pays de Lorient

Mes photos Astro

Hors ligne

#62 Le 12/04/2011, à 19:03

choops

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Ben, à priori c'est au moment du "apt-get update" que ça te signifiera que les dépôts ne sont pas joignables ... Après, la seule chose qui est à craindre c'est que ne trouvant pas un paquet qui est dans un dépôt manquant il te le note en "non installable" et ne l'installe pas sans que ce soit réellement bloquant.
En soit, ce n'est pas un gros problème : tu pourras toujours installer ce paquet ultérieurement (quand le dépôt sera disponible), c'est juste qu'il faut garder ça à l'esprit au moment où tu lanceras ton script. [au pire, pour virtualbox, tu peux lui mettre le dépôt correspondant à la version précédente d'ubuntu en attendant que le dépôt pour ta version soit disponible, ça marche très bien]

En même temps, si tu patientes juste ce qu'il faut après la mise à disposition de Natty, tu n'auras aucun souci à te faire. wink

Dernière modification par choops (Le 12/04/2011, à 19:06)

Hors ligne

#63 Le 25/04/2011, à 12:29

karses

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Je ne suis pas sur d'avoir tout compris avec les différentes releases.

Le script permet-il de remettre par exemple les programmes obtenus à partir d'un .deb et non d'un dépot (genre bibble5 par exemple)?

Karses

Hors ligne

#64 Le 25/04/2011, à 15:49

choops

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Ben, pour ça, il faut que tu inclues le téléchargement et l'installation du paquet en question dans ton script
Comme tous les scripts, ça fait simplement ce que tu lui demandes. Du coup, ça te permet d'ajouter les dépôts que tu veux lui ajouter mais aussi, éventuellement, d'ajouter des paquets deb externes qu'il faut alors télécharger avant d'installer.

bilbo> Pour info, les dépôts VirtualBox et ubuntu-tweak natty sont déjà disponibles (1ère fois que ça arrive avant la sortie officielle de la release ubuntu pour VirtualBox à ma connaissance). Je te laisse vérifier pour les autres mais ton script sera sans doute valable dès la sortie officielle étant donné que VirtualBox était jusqu'ici un des moins réactifs en mise à disposition de dépôt.

Dernière modification par choops (Le 25/04/2011, à 15:53)

Hors ligne

#65 Le 25/04/2011, à 20:25

karses

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Merci pour ta réponse choops.

Pour la réactivité de virtual box, c'est plutôt bon signe! Ubuntu prendrait une crédibilité plus importante vis à vis des éditeurs de meilleur niveau, ce ne serait que du bon pour nous!

Karses

Hors ligne

#66 Le 28/04/2011, à 11:04

bilbo-le-hobbit

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Ayé ! j'ai testé le script... mais pour installer maverick 64 bits ! J'avais commencé par installer natty beta2, mais comme j'ai rencontré de gros problèmes lors de l'install (ça plantait au niveau de l'install des drivers nvidia, j'ai pas trop compris ce qui s'est passé) , j'ai dû me rabattre sur maverick. Et finalement, c'est pas plus mal, j'ai maintenant un système en 64 bits, je n'ai plus qu'à attendre la version finale de natty (et les premiers retours concernant d'éventuels pb avec nvidia) pour faire le grand saut... ou pas.

J'allais oublier, le script marche nickel ! big_smile Grand merci pour ce gain de temps !


Sterenn, l'association d'astronomie du pays de Lorient

Mes photos Astro

Hors ligne

#67 Le 25/05/2011, à 09:11

SurferSansSouci

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonjour nesthib,

tout simplement bravo pour le script et merci pour le partage. Il fonctionne au poil, dommage que je ne l'eusse pas connu avant!


Intel® Core™ i5-2310 CPU @ 2.90GHz × 4- 8 GB - NVIDIA GeForce GT 610 - Quantal 64 bit

Hors ligne

#68 Le 25/05/2011, à 13:17

Christophe C

Re : [Script] Réinstallation automatique des paquets sur un système neuf

pourquoi le script n'utilise t'il pas de add-apt-repository ? Il y a un avantage ?


XL-WALLPAPER - changeur de fonds d'écran libre et très léger pour Xfce et LXDE.
AIDEZ LE LIBRE - Faites un don à : Wikipedia - Fondation Gnome - Projet GNU.

Hors ligne

#69 Le 25/05/2011, à 13:56

choops

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Question de date de 1ère version, je pense (ça n'est que relativement récent l'apparition de add-apt-repository), et pas d'adaptation faite dans ce sens jusqu'ici.

En même temps, je pense m'en faire un sur ce modèle en incluant add-apt-repository lorsque c'est possible (certains dépôts un peu exotiques comme celui de virtualbox ne le permettent pas) pour tester. Je fais un retour là-dessus dès que je l'aurai testé.

Hors ligne

#70 Le 25/05/2011, à 14:27

nesthib

Re : [Script] Réinstallation automatique des paquets sur un système neuf

@SurferSansSouci : merci beaucoup smile
@Christophe C : en effet quand le script a été écrit, add-apt-repository n'existait pas encore mais libre à toi de le modifier pour ajouter cette fonctionnalité
@choops : tout à fait smile


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#71 Le 20/05/2012, à 20:18

kimic12

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Bonjour,

Je reprend cet ancien message j'ai essayé d'utiliser le script  v0.2 pour réinstaller mes programmes or j'obtiens l'erreur suivante :

> sudo bash ./reinstall.sh proglist
./reinstall.sh: ligne 110: Erreur de syntaxe : fin de fichier prématurée

Voici mon script :

#!/bin/bash
###########################################################################
#                                                                         #
# Script de réinstallation des programmes après réinstallation du système #
#                                 v0.2                                    #
#                             par nesthib                                 #
#                                                                         #
###########################################################################
#######################
#######################
#
# ce script permet l'installation de multiples paquets dont la liste est contenue dans un fichier texte
# l'installabilité des paquets est vérifiée au préalable
#
# il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d'indiquer le chemin du fichier 
# si aucun argument n'est donné le fichier proglist (s'il existe) contenu dans le même dossier que le script est utilisé
#
# À la fin de l'exécution un "log" est créé indiquant quels paquets ne sont pas dans les dépots,
# lesquels étaient déjà installés et ceux qui ont été installés
#
#######################
#######################
#
if [ $UID -ne 0 ]
then
    echo "vous devez être root pour lancer le script"
    exit 1    
fi

{
#Variables
SCRIPT_PATH="$(pwd)/${0%/*}/"
PROGLIST_FILE="${SCRIPT_PATH}proglist"
if [ $# -gt 0 ] ;then PROGLIST_FILE="$1" ;fi

if [ ! -f "$PROGLIST_FILE" ] ;then echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\" impossible" ; exit 1 ; fi

echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\""

#version actuelle du systeme
VERSION=$(lsb_release -c | cut -c 11-)

# Sauvegarde de la liste des dépots
cp /etc/apt/sources.list /etc/apt/sources.list.save

# rajout d'autres dépôts (et clés d'authentifications) dans sources.list s'ils sont absents
if ! grep -q "deb http://fr.packages.medibuntu.org/ $VERSION free non-free" /etc/apt/sources.list #test de l'absence
then 
    echo 'ajout du dépôt medibuntu au sources.list'
    echo -e "\n#MEDIBUNTU\ndeb http://fr.packages.medibuntu.org/ $VERSION free non-free" >> /etc/apt/sources.list
    wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
fi

#############################################################################

#Rechargement de la liste des dépôts et des paquets
apt-get update

#tri des paquets selon les états "non installable", "installé", "non installé"
#création des fichiers temporaires recevant les noms des paquets triés
>"${SCRIPT_PATH}/noninstallable"
>"${SCRIPT_PATH}/noninstalle"
>"${SCRIPT_PATH}/installe"

install_ok=0

for arg in `grep -v "#" "${PROGLIST_FILE}" | grep -vx "" | sed ':a;N;$!ba;s/\n/\ /g'` #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne
do PAQUET=${arg}
    if apt-cache pkgnames | grep -x -q ${PAQUET} #test de l'existence du paquet dans les dépots
    then
        # test de l'état non installé du paquet
        if apt-cache policy ${PAQUET} | grep Installé | grep -q aucun
            then echo "${PAQUET} non installé"
            echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstalle"
            install_ok=1
            else echo "${PAQUET} installé"
            echo "${PAQUET}" >>"${SCRIPT_PATH}/installe"
        fi
    else
        echo "${PAQUET} non installable"
        echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstallable"
    fi
done

#############################################################################

#Installation des paquets installables non installés
if [ $install_ok -eq 1 ]
then
    apt-get install $(grep -v "#" "${SCRIPT_PATH}/noninstalle" | sort | uniq | sed ':a;N;$!ba;s/\n/\ /g') #installe les paquets de la liste après avoir éliminé les doublons potentiels
fi

#création du log d'installation
echo "Paquets installés :" >"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/noninstalle" >>"${SCRIPT_PATH}/log"
echo "" >>"${SCRIPT_PATH}/log"
echo "Paquets déjà installés :" >>"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/installe" >>"${SCRIPT_PATH}/log"
echo "" >>"${SCRIPT_PATH}/log"
echo "Paquets absents des dépots :" >>"${SCRIPT_PATH}/log"
cat "${SCRIPT_PATH}/noninstallable" >>"${SCRIPT_PATH}/log"

#suppression des fichiers temporaires
rm "${SCRIPT_PATH}/noninstallable"
rm "${SCRIPT_PATH}/noninstalle"
rm "${SCRIPT_PATH}/installe"

}2>reinstall.error.log
exit 0

et mon proglist :

gcc
subversion
subversion-tools 
geany
vim
codeblocks
vlc
gimp
java
sun-java6-jre


sun-java6-pluginsun-java6-fonts
update-java-alternatives 
java-6-sun
 
skype
adobe-flashplugin
acroread
adobeair
sun-java6-jre
sun-java6-jdk
tint2
kile
texlive-full 
eclipse
compiz
compizconfig-settings-manager

La ligne 110 est celle après exit 0

Dernière modification par kimic12 (Le 20/05/2012, à 20:19)

Hors ligne

#72 Le 21/05/2012, à 17:03

nordinatueur

Re : [Script] Réinstallation automatique des paquets sur un système neuf

@kimic12
S'il te plaît, peux-tu poster le résultat de

cat -n reinstall.sh 

Ce sera plus simple pour les fainéants qui veulent t'aider ! :-)


Définissez un fichier (et donc la variable fichierDepots) pour utiliser cette boucle juste après la section de dépôts dans le script :

egrep "^[^#]" "${fichierDepots}" | while read depotPPA; do
    fichier="${depotPPA//\//-}";
    fichier="/etc/apt/sources.list.d/${fichier//./_}-${VERSION}.list";
    if [[ ! -e "${fichier}" ]]; then
        echo "Ajout du ppa ${depotPPA}";
        add-apt-repository "ppa:${depotPPA}" ;
    fi; 
done;

Dernière modification par nordinatueur (Le 21/05/2012, à 17:03)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#73 Le 09/02/2013, à 15:21

kimic12

Re : [Script] Réinstallation automatique des paquets sur un système neuf

cat -n reinstall.sh      1    #!/bin/bash
     2    ###########################################################################
     3    #                                                                         #
     4    # Script de réinstallation des programmes après réinstallation du système #
     5    #                                 v0.2                                    #
     6    #                             par nesthib                                 #
     7    #                                                                         #
     8    ###########################################################################
     9    #######################
    10    #######################
    11    #
    12    # ce script permet l'installation de multiples paquets dont la liste est contenue dans un fichier texte
    13    # l'installabilité des paquets est vérifiée au préalable
    14    #
    15    # il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d'indiquer le chemin du fichier
    16    # si aucun argument n'est donné le fichier proglist (s'il existe) contenu dans le même dossier que le script est utilisé
    17    #
    18    # À la fin de l'exécution un "log" est créé indiquant quels paquets ne sont pas dans les dépots,
    19    # lesquels étaient déjà installés et ceux qui ont été installés
    20    #
    21    #######################
    22    #######################
    23    #
    24    if [ $UID -ne 0 ]
    25    then
    26        echo "vous devez être root pour lancer le script"
    27        exit 1   
    28    fi
    29   
    30    {
    31    #Variables
    32    SCRIPT_PATH="$(pwd)/${0%/*}/"
    33    PROGLIST_FILE="${SCRIPT_PATH}proglist"
    34    if [ $# -gt 0 ] ;then PROGLIST_FILE="$1" ;fi
    35   
    36    if [ ! -f "$PROGLIST_FILE" ] ;then echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\" impossible" ; exit 1 ; fi
    37   
    38    echo "lecture de \"${PROGLIST_FILE#${SCRIPT_PATH}}\""
    39   
    40    #version actuelle du systeme
    41    VERSION=$(lsb_release -c | cut -c 11-)
    42   
    43    # Sauvegarde de la liste des dépots
    44    cp /etc/apt/sources.list /etc/apt/sources.list.save
    45   
    46    # rajout d'autres dépôts (et clés d'authentifications) dans sources.list s'ils sont absents
    47    if ! grep -q "deb http://fr.packages.medibuntu.org/ $VERSION free non-free" /etc/apt/sources.list #test de l'absence
    48    then
    49        echo 'ajout du dépôt medibuntu au sources.list'
    50        echo -e "\n#MEDIBUNTU\ndeb http://fr.packages.medibuntu.org/ $VERSION free non-free" >> /etc/apt/sources.list
    51        wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
    52    fi
    53   
    54    #############################################################################
    55   
    56    #Rechargement de la liste des dépôts et des paquets
    57    apt-get update
    58   
    59    #tri des paquets selon les états "non installable", "installé", "non installé"
    60    #création des fichiers temporaires recevant les noms des paquets triés
    61    >"${SCRIPT_PATH}/noninstallable"
    62    >"${SCRIPT_PATH}/noninstalle"
    63    >"${SCRIPT_PATH}/installe"
    64   
    65    install_ok=0
    66   
    67    for arg in `grep -v "#" "${PROGLIST_FILE}" | grep -vx "" | sed ':a;N;$!ba;s/\n/\ /g'` #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne
    68    do PAQUET=${arg}
    69        if apt-cache pkgnames | grep -x -q ${PAQUET} #test de l'existence du paquet dans les dépots
    70        then
    71            # test de l'état non installé du paquet
    72            if apt-cache policy ${PAQUET} | grep Installé | grep -q aucun
    73                then echo "${PAQUET} non installé"
    74                echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstalle"
    75                install_ok=1
    76                else echo "${PAQUET} installé"
    77                echo "${PAQUET}" >>"${SCRIPT_PATH}/installe"
    78            fi
    79        else
    80            echo "${PAQUET} non installable"
    81            echo "${PAQUET}" >>"${SCRIPT_PATH}/noninstallable"
    82        fi
    83    done
    84   
    85    #############################################################################
    86   
    87    #Installation des paquets installables non installés
    88    if [ $install_ok -eq 1 ]
    89    then
    90        apt-get install $(grep -v "#" "${SCRIPT_PATH}/noninstalle" | sort | uniq | sed ':a;N;$!ba;s/\n/\ /g') #installe les paquets de la liste après avoir éliminé les doublons potentiels
    91    fi
    92   
    93    #création du log d'installation
    94    echo "Paquets installés :" >"${SCRIPT_PATH}/log"
    95    cat "${SCRIPT_PATH}/noninstalle" >>"${SCRIPT_PATH}/log"
    96    echo "" >>"${SCRIPT_PATH}/log"
    97    echo "Paquets déjà installés :" >>"${SCRIPT_PATH}/log"
    98    cat "${SCRIPT_PATH}/installe" >>"${SCRIPT_PATH}/log"
    99    echo "" >>"${SCRIPT_PATH}/log"
   100    echo "Paquets absents des dépots :" >>"${SCRIPT_PATH}/log"
   101    cat "${SCRIPT_PATH}/noninstallable" >>"${SCRIPT_PATH}/log"
   102   
   103    #suppression des fichiers temporaires
   104    rm "${SCRIPT_PATH}/noninstallable"
   105    rm "${SCRIPT_PATH}/noninstalle"
   106    rm "${SCRIPT_PATH}/installe"
   107   
   108    }2>reinstall.error.log
   109    exit 0

Hors ligne

#74 Le 10/02/2013, à 23:30

sam7

Re : [Script] Réinstallation automatique des paquets sur un système neuf

ça m'a l'air sympa & pratique ce script smile bien vu

Hors ligne

#75 Le 11/02/2013, à 06:20

nesthib

Re : [Script] Réinstallation automatique des paquets sur un système neuf

Pour être honnête il s'agit d'un vieux script qui mériterait sûrement d'être récrit et dont je ne me sers pas tongue
Quand je vois le nombre de vues de la discussion j'espère qu'il a été/est utile à certains.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

Haut de page ↑