Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/03/2008, à 20:31

libre

Script-bash pour modifier son fichier sources.list automatiquement

Grace à votre aide, j'ai partiellement réussi à créer un script qui automatise la modification du fichier /etc/apt/sources.list. Ce premier script, qui me permet de comprendre at d'apprendre est je l'espère le premier mais pas le dernier.

Voila donc ou j'en suis.

#!/bin/bash
#source=/etc/apt/sources.list
source=/etc/apt/essai.txt  #pour le test


action=`zenity --list --title "Mise à jour de /etc/apt/sources.liste" --text="ATTENTION, ce script vas modifier un fichier\rindispensable au bon fonctionnement d'ubuntu.\rAnnuler cette procédure si vous avez un doute\r\rQuelle version d'Ubuntu avez-vous ?" --column "Version" "dapper" "feisty" "gusty" "hardy"`
if [ "$?" = 1 ];
then
	exit
fi


#Remplacement des paquets d'origines
if [ $action ];
then


#sudo bash -c #mode terminal
#gksudo -- bash -c ... # mode graphique
gksudo -m "Entrer votre mot de passe pour un accès root" -- bash -c "
cat > $source <<EOF
##------------------------------------------------------------------------------------------
##                      Voiçi la liste de tous mes dépôts pour $action
##
##
## ------------------------------------------------------------------------------------------
## Remplacer le fichier d'origine /etc/apt/sources.list par celui-çi
## Vous pouvez activer ou désactiver un dépôts en supprimant ou en ajoutant #

## restricted (maintenu par la société)
## universe par la communauté (que du libre)
## multiverse (pas libre)


## -------------------------------- Dépôts officiels (ubuntu) -------------------------------
deb http://fr.archive.ubuntu.com/ubuntu/ $action main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ $action-security main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ $action-updates main restricted universe multiverse


## -------------------------------------- Backports -----------------------------------------
#deb http://fr.archive.ubuntu.com/ubuntu/ $action-backports main restricted universe multiverse


## ------------------- Commercial ('canonical', logiciels libre et non libre) ---------------
#deb http://archive.canonical.com/ $action-commercial main


## ---------------- Medibuntu (codec propriétaire mp3,divX,Xvid,dvd cryptés) ----------------
deb http://packages.medibuntu.org/ $action free non-free
## Clé pour obtenir l'autorisation d'accès au dépot, à taper dans le terminal
## wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -


## --------------------------- JBROUT (gestionnaire de photos) ------------------------------
deb http://jbrout.free.fr/download/debian binary/


## --------------------------- Qtpfsgui (faire des photos HDR) ------------------------------
deb http://ubuntu.davromaniak.eu $action-depomaniak all
#deb-src http://ubuntu.davromaniak.eu $action-depomaniak all
## Clé pour obtenir l'autorisation d'accès au dépot, à taper dans le terminal
## wget -q http://ubuntu.davromaniak.eu/1D59E694.gpg -O- | sudo apt-key add -


## ---------------------------------- Dépots sources ----------------------------------------
#deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
#deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper-security main restricted universe multiverse
#deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper-updates main restricted universe multiverse
#deb-src http://archive.canonical.com/ dapper-commercial main
#deb-src http://fr.archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse
#deb-src http://packages.medibuntu.org/ dapper free non-free
EOF"

#Activation des clés
#wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
#wget -q http://ubuntu.davromaniak.eu/1D59E694.gpg -O- | sudo apt-key add -

sudo apt-get update
fi

Sur les conseils de Saito, j'ai remplacé le premier sudo par gksudo , ce qui me permet d'entrer le mot de passe en mode graphique.
Cela fonctionne bien, mais après avoir rentré mon mot de passe (graphiquement) un second mot de passe mes demandé (sudo apt-get update).
Comment faire pour qu'un seul et unique mot de passe me soit demandé ?


La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.

Hors ligne

#2 Le 13/03/2008, à 20:42

Saito

Re : Script-bash pour modifier son fichier sources.list automatiquement

Il existe un timeout pour la sauvegarde du mot de passe rentré pour gksudo, c'est -à-dire que pendant un certain temps, gksudo enregistre ton mot de passe et ne te le demande plus. Essaie donc de mettre «gksudo apt-get update», ainsi le deuxième gksudo bénéficiera du mot de passe rentré lors du premier appel (sous réserve que la commande lancée par le premier gksudo se termine avant le timeout du mot de passe, ce qui est le cas avec ta modification du sources.list qui se fait rapidement).

De plus, il faut mieux que tu continues à utiliser gksudo plutôt que sudo car ton script est destiné à être exécuté en graphique et pas à partir d'un terminal.

Dernière modification par Saito (Le 13/03/2008, à 20:45)


Aku-Soku-Zan_Shinsengumi

Hors ligne

#3 Le 13/03/2008, à 21:10

libre

Re : Script-bash pour modifier son fichier sources.list automatiquement

«gksudo apt-get update» ok ça fonctionne.
Je cherche à remplacer zenity --list pour une commande bash qui trouverais  de lui même la version d'ubuntu. J'ai bien trouver uname -a mais cela ne me dit pas que c'est dapper,feisty ou autre.


La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.

Hors ligne

#4 Le 13/03/2008, à 21:15

libre

Re : Script-bash pour modifier son fichier sources.list automatiquement

Peut être cat /etc/issue mais cela me donne la version et pas le nom


La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.

Hors ligne

#5 Le 13/03/2008, à 21:21

libre

Re : Script-bash pour modifier son fichier sources.list automatiquement

J'ai trouvé ça : lsb_release -a | grep Codename


La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.

Hors ligne

#7 Le 19/03/2008, à 12:00

libre

Re : Script-bash pour modifier son fichier sources.list automatiquement

Merci frafa. J'ai modifié mon script en conséquence, il n'est pas terminé mais j'y travaille.

#!/bin/bash
#Variables
#source=/etc/apt/sources.list
source=/etc/apt/essai.txt  #pour le test
resultat=/tmp/resultat_sources.txt


#Detection de la version d'ubuntu
#version=`lsb_release -a | grep Codename | cut -c11-`
version=`lsb_release -c | awk '{print $2}'`

#Message préventif
zenity --question --title "Mise à jour de sources.list pour $version" --text="ATTENTION, ce script vas modifier le fichier /etc/apt/sources.list,\rfichier indispensable au bon fonctionnement d'ubuntu.\rAnnuler cette procédure si vous avez un doute" || exit 1


#sudo bash -c (mode terminal)
#gksudo  -m "Entrer votre mot de passe pour un accès root" -- bash -c   # (mode graphique)

{gksudo  -m "Entrer votre mot de passe pour un accès root" -- bash -c "
cat > $source <<EOF 
##--------------------------------------------------------------------------------------------------
##                      Voiçi la liste de tous mes dépôts pour $version
##
##
## -------------------------------------------------------------------------------------------------
## Remplacer le fichier d'origine /etc/apt/sources.list par celui-çi
## Vous pouvez activer ou désactiver un dépôts en supprimant ou en ajoutant #

## restricted (maintenu par la société)
## universe par la communauté (que du libre)
## multiverse (pas libre)


## -------------------------------- Dépôts officiels (ubuntu) --------------------------------------
deb http://fr.archive.ubuntu.com/ubuntu/ $version main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ $version-security main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ $version-updates main restricted universe multiverse


## -------------------------------------- Backports ------------------------------------------------
#deb http://fr.archive.ubuntu.com/ubuntu/ $version-backports main restricted universe multiverse


## ------------------- Commercial ('canonical', logiciels libre et non libre) ----------------------
#deb http://archive.canonical.com/ $version-commercial main


## ---------------- Medibuntu (codec propriétaire mp3,divX,Xvid,dvd cryptés) -----------------------
deb http://packages.medibuntu.org/ $version free non-free
## Clé pour obtenir l'autorisation d'accès au dépot, à taper dans le terminal
## wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -


## --------------------------- JBROUT (gestionnaire de photos) -------------------------------------
deb http://jbrout.free.fr/download/debian binary/


## --------------------------- Qtpfsgui (faire des photos HDR) -------------------------------------
deb http://ubuntu.davromaniak.eu $version-depomaniak all
#deb-src http://ubuntu.davromaniak.eu $version-depomaniak all
## Clé pour obtenir l'autorisation d'accès au dépot, à taper dans le terminal
## wget -q http://ubuntu.davromaniak.eu/1D59E694.gpg -O- | sudo apt-key add -


## ---------------------------------- Dépots sources -----------------------------------------------
#deb-src http://fr.archive.ubuntu.com/ubuntu/ $version main restricted universe multiverse
#deb-src http://fr.archive.ubuntu.com/ubuntu/ $version-security main restricted universe multiverse
#deb-src http://fr.archive.ubuntu.com/ubuntu/ $version-updates main restricted universe multiverse
#deb-src http://archive.canonical.com/ $version-commercial main
#deb-src http://fr.archive.ubuntu.com/ubuntu/ $version-backports main restricted universe multiverse
#deb-src http://packages.medibuntu.org/ $version free non-free
EOF"} && echo "Ok   - Changement sources.list" > $resultat ||  echo "Nok - Changement sources.list" > $resultat  

#Activation des clés
#wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && echo "Activation clé medibuntu: ok" >> $resultat || echo "Activation clé medibuntu: Nok" >> $resultat 
#wget -q http://ubuntu.davromaniak.eu/1D59E694.gpg -O- | sudo apt-key add - && echo "Activation clé davromaniak: ok" >> $resultat ||  echo "Activation clé davromaniak: Nok" >> $resultat 


gksudo apt-get update && echo "Ok   - Mise à jour des paquets" >> $resultat || echo "Nok - Mise à jour des paquets" >> $resultat 

zenity  --text-info --title "Résultats de l'opération" --filename=$resultat

Dernière modification par libre (Le 19/03/2008, à 12:01)


La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.

Hors ligne