#51 Le 14/08/2010, à 12:27
- fabux
Re : [Script] Réinstallation automatique des paquets sur un système neuf
Install hier soir: impeccable (j'ai bien fait d'ajouter l'ouverture du sources.list, j'avais oublié
)
Je le garde bien au chaud celui-là, merci nesthib
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#52 Le 14/08/2010, à 12:48
- nesthib
Re : [Script] Réinstallation automatique des paquets sur un système neuf
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#53 Le 11/10/2010, à 02: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
Hors ligne
#54 Le 11/10/2010, à 03: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, à 03:37)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#55 Le 11/10/2010, à 04: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.
Hors ligne
#56 Le 11/10/2010, à 10: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, à 10:56)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#57 Le 11/10/2010, à 12: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
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#58 Le 11/10/2010, à 18:11
- mel4
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
Ah! Merci. Je l'ai eu!
melanie@melanie-laptop:~$ sudo ./reinstall.sh proglist
Dernière modification par mel4 (Le 11/10/2010, à 18:12)
Hors ligne
#59 Le 12/04/2011, à 10: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 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, à 10:52)
Hors ligne
#60 Le 12/04/2011, à 14: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, à 16: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, à 16:15)
Hors ligne
#62 Le 12/04/2011, à 18: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.
Dernière modification par choops (Le 12/04/2011, à 18:06)
Hors ligne
#63 Le 25/04/2011, à 11: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
Fonctionnement en dual boot depuis la 7.04 et full Ubuntu depuis la 9.04
Tous les PCs de la maison sont sous Ubuntu (portables et fixes)
Plus raspberry Pi sous raspbian
Cubox sous 14.04 FR (sarge)
Hors ligne
#64 Le 25/04/2011, à 14: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, à 14:53)
Hors ligne
#65 Le 25/04/2011, à 19: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
Fonctionnement en dual boot depuis la 7.04 et full Ubuntu depuis la 9.04
Tous les PCs de la maison sont sous Ubuntu (portables et fixes)
Plus raspberry Pi sous raspbian
Cubox sous 14.04 FR (sarge)
Hors ligne
#66 Le 28/04/2011, à 10: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 ! Grand merci pour ce gain de temps !
Hors ligne
#67 Le 25/05/2011, à 08: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™ i7-2600 CPU @ 3.40GHz × 4- 8 GB - NVIDIA GeForce GTX 560 - Ubuntu 24.04
Hors ligne
#68 Le 25/05/2011, à 12: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 ?
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#69 Le 25/05/2011, à 12: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, à 13:27
- nesthib
Re : [Script] Réinstallation automatique des paquets sur un système neuf
@SurferSansSouci : merci beaucoup
@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
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#71 Le 20/05/2012, à 19: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, à 19:19)
Hors ligne
#72 Le 21/05/2012, à 16: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, à 16:03)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#73 Le 09/02/2013, à 14: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, à 22:30
- sam7
Re : [Script] Réinstallation automatique des paquets sur un système neuf
ça m'a l'air sympa & pratique ce script bien vu
sam7 @ http://www.sam7.blog/
Hors ligne
#75 Le 11/02/2013, à 05: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
Quand je vois le nombre de vues de la discussion j'espère qu'il a été/est utile à certains.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne