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.

#76 Le 11/02/2013, à 05:48

BlueTak

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

C'est une piste d'amélioration de l' ins(réins)tallation d'ubuntu parce qu'étant donné le caractère aléatoire de la mise à jour en ligne qui crashe une fois sur deux, le fait de pouvoir répertorier ses logiciels et les réinstaller automatiquement lors d'une mise à jour du système ne serait pas de trop...
A chaque fois que je procède, j'y pense. Puis bien sur j'oublie et je passe à autre chose.
De même qu'à chaque install je me demande pourquoi mon beau buntu m'installe une flopée de polices de caractères inutiles type coréen dont je n'ai rien à battre et que je dois virer à chaque fois. Heureusement que depuis quelques temps déjà le répertoires .fonts existe pour nous éviter de réinstaller à la main toutes les fontes utiles.
Bref....

Hors ligne

#77 Le 25/02/2013, à 19:21

amj

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

salut
je me demandais si la sortie de cette commande convenait comme fichier source

names=$(aptitude search '~i !~M') && echo "$names" | colrm 1 4 |colrm 33

normalement ça renvoie les paquets installé manuellement (enfin j'espère big_smile )
edit:
au fait ceci est sans doute mieux

names=$(aptitude search '~i !~M') && echo "$names" | colrm 1 4 |cut -d" " -f1

Dernière modification par amj (Le 25/02/2013, à 19:30)


Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.

@amj@mastodon.xyz

Hors ligne

#78 Le 26/02/2013, à 01:16

nesthib

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

Je ne pense pas que la commande soit adéquate (à mon avis elle inclut aussi les paquets installés par défaut).

Par ailleurs, pourquoi faire « names=$(commande1) && echo "$names" | commande2 | commande 3 » là où tu peux faire « names=$(commande1|commande2|commande3) » ?

Pour finir (on va me dire que je suis obsédé par awk…) mais voici le plus efficace :

names=$(commande1 | awk '{print $2}')

(mais, encore une fois, je pense que ta commande aptitude ne fait pas l'affaire)


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ᴉsdn

Hors ligne

#79 Le 26/02/2013, à 17:15

amj

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

salut
Qu'est-ce qui te fait penser que ça inclue aussi les paquets par défaut?

Par ailleurs, pourquoi faire « names=$(commande1) && echo "$names" | commande2 | commande 3 » là où tu peux faire « names=$(commande1|commande2|commande3) »

bah je pensais faire comme toi mais j'y suis pas arrivé
je pense que echo ne le permet pas
edit:
quand je fait cette commande j'ai 232 paquets
quand je fait

names=$(aptitude search '~i') && echo "$names" | colrm 1 4 |cut -d" " -f1

j'en ai 1378
redit: ce n'est peut-être pas très significatif chez moi parce que j'ai installé mon système manuellement big_smile

edit 3 :
il n'y a pas besoin de echo

aptitude search '~i !~M'| colrm 1 4 |cut -d" " -f1

Dernière modification par amj (Le 27/02/2013, à 16:39)


Vive le logiciel libre !! Articles aléatoires sur Wikipédia sur les logiciels libre, sur linux.

@amj@mastodon.xyz

Hors ligne

#80 Le 04/04/2014, à 13:42

JujuLand

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

Bonjour,

Ce shell est global, assurant la récupération des la liste des programmes, et la réinstallation.
si je comprends tout à fait l'utilité d'un tel script, je me pose des questions sur les cas précis d'utilisation.

En suivant le fil de bout en bout, je me dis par exemple qu'il ne convient pas tel quel dans le cas d'une réinstallation, car qui dit réinstallation, dit écrasement, et d'ailleurs, ce cas avait été discuté dans un des posts.
Dans le cas d'une mise à jour, les logiciels sont mis à jour par le processus, supprimés ou conservés tels quels, donc là encore je ne vois pas l'utilité.

Les deux cas ou je vois une réelle utilité sont soit une installation fraiche, suivie de l'install d'une liste de logiciels, soit dans une réinstallation (que j'utilise, en général lors de mise à jour, car moins sujette à plantage qu'une mise à jour en ligne). Dans ces deux cas, une sauvegarde des logiciels, clés publiques et sources est nécessaire, mais avant écrasement.

Aussi, je pense que le script devrait plutôt être scindé en deux la sauvegarde, qui aura été utilisée en préalable, et l'installation basée sur cette sauvegarde ensuite. Cette liste pouvant, au passage, être modifiée (ajout, suppression).

J'installe de nombreux postes en Ubuntu pour des voisins, amis, ... et le faire manuellement me gave ...

Comment aborder le passage d'un script global tel que reinstall.sh en deux scripts.

PS: je ne suis pas ce qu'on peut appeler un pro du script, même si je met parfois les doigts dedans.

Merci de votre avis ...
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#81 Le 20/11/2016, à 18:43

Compte anonymisé

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

Bonjour,

désolé pour le déterrage du post, mais j'aime bien l'idée du script, j'en ai écrit un plus simple qui fait a peu près la même chose mais rajoute aussi les ppa aussi et a la liste des paquets à installer directement dans le script :

#!/bin/bash
for a in $(awk '/^##REP/ { f=1; next };/^##ENDREP/ { f=0 };{ if (f) print; }' "$0")
do
	sudo add-apt-repository -y "$a"
done
sudo apt update

for a in $(awk '/^##PAQ/{ f=1; next };/^##ENDPAQ/ { f=0 };{ if (f) print; }' "$0")
do
	if apt-cache pkgnames | grep -x -q $a
	then liste="$liste $a"
	else echo "erreur paquet $a non trouvé"
	fi
done
sudo apt install $liste

exit 0
##REP
ppa:ravefinity-project/ppa
ppa:antoine-merle/ppa
ppa:atareao/atareao
ppa:atareao/thumbnailers
ppa:pipelight/stable
ppa:webupd8team/y-ppa-manager
##ENDREP
##PAQ
aptitude
ubuntu-restricted-extras
libdvd-pkg
wine
gnome-exe-thumbnailer
gnome-nds-thumbnailer
ooo-thumbnailer
unar
p7zip-full
arj
lhasa
rar
unace
zoo
rpm
cdparanoia
avfs
checkinstall
build-essential
nautilus-dropbox
ttf-aenigma
fonts-crosextra-carlito
fonts-crosextra-caladea
clamav
clamtk-nautilus
oracle-java9-installer
indicator-multiload
exfat-fuse
most
ambiance-flat-colors
libreoffice-style-sifr
vlc
avidemux
sound-juicer
easytag
pyrenamer
pypar2
gimp
gimp-texturize
gimp-data-extras
gimp-plugin-registry
gimp-ufraw
luminance-hdr
hugin
palettes-extra-for-gimp
synaptic
gparted
y-ppa-manager
nfoview
chromium
##ENDPAQ

Dernière modification par Compte anonymisé (Le 20/11/2016, à 18:44)

#82 Le 11/08/2017, à 10:07

DRbuntu91

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

Bonjour
J'ai pris la version 0.2 de reinstall.sh que j’exécute avec un proglist qui est vide (j'espère obtenir la liste des programmes que j'ai installé moi-même depuis le début - cad. Janvier 2017)
A priori je dirai que mon système est a jour (fait mardi dernier)

Voici l'erreur que j'obtiens:

xwop@CLEVO:~/Perso/MonPC/MesInstalls$ sudo ./reinstall
lecture de "proglist"
ajout du dépôt medibuntu au sources.list
Atteint:1 http://mirrors.ircam.fr/pub/ubuntu/archive xenial InRelease
Ign:2 http://dl.google.com/linux/chrome/deb stable InRelease                                                                       
Atteint:3 http://ppa.launchpad.net/gezakovacs/ppa/ubuntu xenial InRelease                                                          
Atteint:4 http://archive.canonical.com/ubuntu xenial InRelease                                                                     
Ign:5 http://download.opensuse.org/repositories/home:/stevenpusser/xUbuntu_16.04  InRelease                                        
Ign:6 http://dl.google.com/linux/talkplugin/deb stable InRelease                                                                   
Atteint:7 http://ppa.launchpad.net/libreoffice/libreoffice-5-3/ubuntu xenial InRelease                                             
Réception de:8 http://fr.packages.medibuntu.org xenial InRelease                                                                   
Atteint:9 http://download.opensuse.org/repositories/home:/stevenpusser/xUbuntu_16.04  Release                                      
Atteint:10 http://mirrors.ircam.fr/pub/ubuntu/archive xenial-updates InRelease                                                     
Atteint:11 http://dl.google.com/linux/chrome/deb stable Release                                                                    
Atteint:12 http://ppa.launchpad.net/pipelight/stable/ubuntu xenial InRelease                                                       
Err:8 http://fr.packages.medibuntu.org xenial InRelease                                                                            
  Le fichier signé en clair n'est pas valable, ce qui a été reçu est « NOSPLIT ». Peut-être le réseau nécessite-t-il une authentification.
Atteint:13 http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu xenial InRelease                                                 
Réception de:14 http://dl.google.com/linux/talkplugin/deb stable Release [2 141 B]                                                 
Atteint:15 http://mirrors.ircam.fr/pub/ubuntu/archive xenial-backports InRelease                 
Réception de:16 http://dl.google.com/linux/talkplugin/deb stable Release.gpg [916 B]                          
Atteint:17 http://mirrors.ircam.fr/pub/ubuntu/archive xenial-security InRelease                               
20,5 ko réceptionnés en 0s (23,3 ko/s)                                      
Lecture des listes de paquets... Fait

Quelqu'un saurait m'aider?

PS: j'avoue que je n'ai pas regardé en détail tous les post pour voir si le pb. était connu.

Merci d'avance

willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#83 Le 11/08/2017, à 10:22

lynn

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

Bonjour,

Le dépôt medibuntu n'existe plus.

https://help.ubuntu.com/community/Medibuntu

Postes le retour de

lsb_release -a
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

En ligne

#84 Le 11/08/2017, à 10:42

DRbuntu91

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

Bonjour lynn et merci de mon aide

N'ayant pas eu cette erreur lors de ma dernière mise a jour (que je fais tj. en terminal pour voir ce qui se passe) je pensais que ce paquet est nécessaire pour le script.
Je suis donc allé vérifier ce script et effectivement il a a ceci:

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

Voici le résultat des différentes commandes que tu as demandé:

xwop@CLEVO:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.3 LTS
Release:	16.04
Codename:	xenial
xwop@CLEVO:~$ cat /etc/apt/sources.list
# deb cdrom:[Ubuntu 16.04.1 LTS _Xenial Xerus_ - Release amd64 (20160719)]/ xenial main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-updates main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial universe
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial universe
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-updates universe
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial multiverse
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-updates multiverse
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-backports main restricted universe multiverse
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner

deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://mirrors.ircam.fr/pub/ubuntu/archive/ xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

#MEDIBUNTU
deb http://fr.packages.medibuntu.org/ xenial free non-free
xwop@CLEVO:~$ ls /etc/apt/sources.list.d
gezakovacs-ubuntu-ppa-xenial.list                    palemoon.list
gezakovacs-ubuntu-ppa-xenial.list.save               palemoon.list.save
google-chrome.list                                   pipelight-ubuntu-stable-xenial.list
google-chrome.list.save                              pipelight-ubuntu-stable-xenial.list.save
google-talkplugin.list                               xenial-partner.list
google-talkplugin.list.save                          xenial-partner.list.save
libreoffice-ubuntu-libreoffice-5-3-xenial.list       yannubuntu-ubuntu-boot-repair-xenial.list
libreoffice-ubuntu-libreoffice-5-3-xenial.list.save  yannubuntu-ubuntu-boot-repair-xenial.list.save

Sais-tu pourquoi ce script a besoin de ce paquet?

PS: trouvé sur internet "As of October 2013, the Medibuntu Project has come to an end. The Medibuntu repository is unmaintained and offline"

willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#85 Le 11/08/2017, à 11:03

lynn

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

Il n y a plus besoin du dépôt medibuntu.  Édites ton sources.list

gksudo gedit /etc/apt/sources.list

et retires les dernières lignes

#MEDIBUNTU
deb http://fr.packages.medibuntu.org/ xenial free non-free

Enregistres les modifications et recharge la liste de tes paquets

sudo apt update

L'erreur aura disparu. Par contre, si tu veux te servir de ce script de nouveau, il serait bon d'enlever cette partie

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

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

En ligne

#86 Le 11/08/2017, à 11:28

DRbuntu91

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

Merci lynn
J'ai fait un update puis j'en ai profité pour faire un dist-upgrade et tout est OK a nouveau
Par contre concernant le script, je ne suis pas assez a l'aise pour le modifier
Comme je l'ai pris sur ce forum j’attends un retour du développeur (nesthib je pense)

Merci encore

willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#87 Le 11/08/2017, à 14:18

kholo

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

salut,
j'ai forké ce script et l'ai ajouté à une procédure plus complète de post installation

j'ai virer toutes les références et fonctions qui ajoutent des ppa

par contre la partie de vérification des paquets et les logs sont conservés

ça fonctionne comme le script original.
le script + un fichier avec une liste des programmes
les # sont pour conserver une entrée dans la liste sans faire l'installation

... j'ai aussi une version plus interactive qui doit être assez aboutie pour la diffuser je pense...

pour t'éviter la lecture complète :

********************************************
Les scripts
Le nom 'arbitraire' normalisé des dossiers pour y mettre des "programmes" est bin pour binaire.
on va créer un dossier bin personnel pour mettre vos futurs scripts.

mkdir ~/bin

Création du script "post-install.sh" d'installation des programmes
Votre premier script va permettre d'installer une batterie de logiciels (bien pratiques !)
NB : Ce script est utilisable plusieurs fois car il se chargera de rajouter les programmes pas encore installés wink
je vais approfondir cette section dans un fil à part : les programmes

gedit ~/bin/post-install.sh

copiez y le texte suivant :

#!/bin/bash
###########################################################################
#
# Script d'installation de programmes
# v0.2 b-001
# par nesthib modifié par CU (kholo-informatique)
#
###########################################################################

#######################
#######################
# 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
# 
# la commande de lancement du script est:
# sudo ./post-install.sh proglist
# sudo ./post-install.sh [fichier]
#######################
#######################

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 système
VERSION=$(lsb_release -c | cut -c 11-)

# Sauvegarde de la liste des dépôts
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
# (partie supprimée)
#############################################################################

#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

enregistrez et fermez gedit (ctrl + s ; puis ctrl + w ; puis ctrl + q wink )
rendre le script exécutable :

chmod +x ~/bin/post-install.sh

Création du fichier des programmes
je laisse ma liste ; vous pouvez ajouter / supprimer des programmes (avec leur nom d'installateur)
un dièze # en début de ligne fait que la ligne n'est pas prise en compte
(vous pouvez modifier le fichier à votre convenance)

gedit ~/bin/proglist

texte à copier / coller

# Liste des programme à installer sur un système neuf ou ancien
# Les lignes commentées ne sont pas prises en compte
# Attention à la casse des noms de paquets

# INTERNET
# firefox
# thunderbird
filezilla
# skype

# RESEAU
openssh-server
sshfs

# GRAPHISME
inkscape
gimp
gthumb
shotwell
sweethome3d

# MULTIMEDIA
vlc
cheese

# recordmydestop # pas 16.04
kazam

# AUDIO
#pavucontrol 
#gnome-alsamixer 
#paman 
#pavumeter 
#padevchooser 
#paprefs

# CODEC
ubuntu-restricted-extras
flashplugin-installer
#ffmpeg
#gstreamer0.10-plugins-ugly 
# gxine 
#libdvdread4 
# totem-mozilla 
icedax 
tagtool 
easytag 
id3tool 
lame 
nautilus-script-audio-convert 
#libmad0 
#mpg321 
#libavcodec-extra

# BUREAUTIQUE
#libreoffice
keepassx
shutter

# PDF
pdfmod
xournal

# TWEAK TOOLS
gparted
gufw
ppa-purge
gksu
gdebi
numlockx
# geany
# geany-plugins
gedit 
gedit-plugins
gconf-editor
unity-tweak-tool
# clamav
# clamtk
bleachbit

# SYSTEM
sysinfo
hardinfo

# DOCKS
docky
# cairo-dock

# lubuntu-software-center
brasero

# SAUVEGARDES
grsync
#deja-dup

# COMPRESSION DECOMPRESSION
unace 
rar 
unrar 
unar 
p7zip-rar 
p7zip 
zip 
unzip 
arj 
libuu0 
mpack 
sharutils 
uudeview

# BUREAUX
# gnome-shell
# gnome-shell-extensions

# kde
# lxde 
# xfce 
# mate
# cinnamon

# ......

pour lancer les installations

cd ~/bin
sudo ./post-install.sh

mot de passe en aveugle puis suivre les indications :
tous les noms sans # vont être testés puis leur installation se lancera.
des fichiers log vous informeront des retours

Hors ligne

#88 Le 11/08/2017, à 16:47

Compte anonymisé

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

mon script #81 ne te plait pas ? sniff

A part le log, il fait la même chose en plus simplement

#89 Le 11/08/2017, à 17:41

kholo

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

tous les chemins mènent au Rhum !!!
je ne raffole pas de cette mauvaise habitude de démocratiser les ppa... les infections viendront de là
et j'ai une confiance moyenne en webupd8team (ce site affole mon PiegeAConsMètre)
le script de base de nesthib et donc mon fork testent également la présence (ou non) des paquets
et en sort plusieurs logs : installable, non installable, installés,...
tu fais déjà le test, tu dois pouvoir ajouter facilement les logs...
l'auto lecture de ton script est bien pratique pour avoir tout dans un seul fichier cool

Hors ligne

#90 Le 12/08/2017, à 10:14

DRbuntu91

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

Bonjour kholo
Mon problème de départ est que je ne connais pas la liste des paquets que j'ai installé moi-même (ce n'est que en tombant sur ce sujet que je me suis rendu compte qu'un jour je pourrait être amené a tout réinstaller - mais j’espère que ça ne m'arrivera jamais).
Donc a partir de maintenant j’aimerais bien maintenir une liste mais la difficulté est d'établir l'état initial (pour un non-initié comme moi)
Exemple: pour appeler des applications, j'utilise le ClassicMenu Indicator qui dans les accessoires liste entre autre KeePassX, Météo, QtPass et CatFish
Je suis sur d'avoir installé KeePassX mais pas les autres. Comment savoir si c'est moi qui les ai installé?
Merci d'avance pour ton aide
Willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#91 Le 12/08/2017, à 10:33

Compte anonymisé

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

pour savoir ce que tu as installé manuellement tu peux utiliser mes 3 lignes de commandes disponible ici post #10

https://forum.ubuntu-fr.org/viewtopic.php?id=2013109

si tu as ubuntu 16.04, il faut comparer ce que tu as installés manuellement (apt-mark showmanual) avec ceux qui sont déjà installés.

pour avoir la liste des paquets installés par défaut (ubuntu 16.04)

wget -qO- ftp://ftp.free.fr/mirrors/ftp.ubuntu.com/releases/xenial/ubuntu-16.04.3-desktop-amd64.manifest|awk '{ print $1 }'|sort -u > orig.txt

pour avoir la liste des paquets installés par défaut (xubuntu 16.04)

wget -qO- http://ftp.free.fr/mirrors/ftp.xubuntu.com/releases/16.04/release/xubuntu-16.04-desktop-amd64.manifest|awk '{ print $1 }'|sort -u > orig.txt

pour avoir la liste des paquets installés manuellement

apt-mark showmanual|sort -u > actual.txt

pour comparer les 2 listes (supprime les lignes uniques du 2ieme fichier et les lignes communes et donc il reste ceux que tu as choisi d'installer)

comm -2 -3 actual.txt orig.txt 

Dernière modification par Compte anonymisé (Le 12/08/2017, à 10:34)

#92 Le 12/08/2017, à 10:55

DRbuntu91

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

Merci Anonyme68
J'ai exécuté tes commandes puis le résultat du diff je l'ai mis dans un fichier texte que je vais analyser plus en détail.
Mais j'ai déjà qq. questions:
- j'ai bcp. de lignes qui commencent par LIB. C'est du LibreOffice? PS: j'ai installé LO 5.3.5.2
- j'ai synaptic: ce n'est pas de base dans Ubuntu?
- j'ai ubuntu-restricted-addons: c'est venu comment (je ne pense pas avoir installé moi-même)?
Merci d'avance pour ton aide
willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#93 Le 12/08/2017, à 11:00

Compte anonymisé

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

synaptic : n'est pas de base dans ubuntu

ubuntu-restricted-addons : peut s'installer automatiquement quand tu veux lire un fichier multimedia (fenêtre greffon manquant...)

lib : paquet qui par nature ne devrait pas être installé en état "manuel" mais être des dépendances d'autres paquet, je sais pas pourquoi tu en as (tu as du faire apt install lib... lib... pour installer quelque chose d'autre), tu peux les ignorer ils s'installeront automatiquement si ils sont nécessaires.

Dernière modification par Compte anonymisé (Le 12/08/2017, à 11:03)

#94 Le 12/08/2017, à 11:26

kholo

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

l'important n'est pas qui a installé tes applications mais quelles sont les applications que tu utilises.
tu peux être amené à changer de distribution, ou que la distribution change son choix...
donc garde sous le coude la liste complète des applications installées

Hors ligne

#95 Le 12/08/2017, à 12:29

DRbuntu91

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

Bonjour kholo
Je n'envisage pas vraiment de changer de distribution avant la fin de la 16.04 LTS (enfin j'espère....)
Je n'ai pas de besoins particuliers (je suis jeune retraité donc j’utilise peu d'applications) mais ça m'arrive d'installer des applications juste pour découvrir les fonctionnalités et leur interface graphique.
Par contre malgré que mon ordi est neuf ce que je crains le plus c'est une panne matérielle (ex. le disque), ce qui m’obligerait a tout  réinstaller.
Donc pour le moment c'est plus de la "prévention".
Je continue donc d'analyser la liste que j'ai généré avec les commandes donnés par Anonyme68 pour comprendre d’où viennent toutes ces applications et ce qu'elle font (a ma grande surprise la liste est longue)
Je reviendrai vers vous pour plus de clarifications
Encore un grand merci
willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#96 Le 12/08/2017, à 12:42

kholo

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

pour moi, les applications, c'est masturbatoire... (j'en utilise peu lol )
les fichiers et les infos contenues sont la base... un disque externe et le tour est joué
ensuite les préférences des applications :
- particulières dans le dossier personnel
- et plus générales dans le dossier /etc (je fais une sauvegarde régulière automatique du dossier)

Hors ligne

#97 Le 12/08/2017, à 13:23

DRbuntu91

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

Hmm...
J'ai récemment mis en place un backup de mon Home. J'avais commencé avec DéjàDup et suite a certains commentaires dans ce forum j'ai mis en place BackInTime.
Mais en regardant plus en détail je pense par défaut BackInTime n'archive pas les fichiers cachés (je suppose que c'est ce que tu appelles "préférences des applications particulières dans le dossier personnel")
Puis le dossier /ETC est encore un mystère pour moi, cad. je ne comprend pas pourquoi il y a du paramétrage a 2 endroits (ETC et HOME) et comment les trouver (par ce que ETC contient des milliers de fichiers que je considère perso comme du "système")
Mais j'ai une question plus basique: dans l'hypothèse que j'archive tous ces fichiers de paramétrage, comment les retrouver le jour que j'en aurai besoin (cad. lors d'une réinstallation)?

PS: je pars de l'hypothèse que "si" je dois réinstaller alors je pars de ma clef USB de base (qui est une 16.04.01) puis je fais une mise a jour. Ensuite j'installe les applications manquantes (avec le script ou manuellement) et j'applique le paramétrage. Correct?


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#98 Le 13/08/2017, à 07:54

kholo

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

bien que j'ai un PC portable attitré, j'installe à tour de bras, ne serait ce qu'en VM
donc j'ai besoin de retrouver des programmes et leurs paramètres rapidement.

/etc garde des paramétrages de programmes proches du système
/home/utilisateur garde les paramètres de utilisateur.
les paramètres de linux sont des fichiers texte
donc il est simple de récupérer tout ou partie d'une conf et l'appliquer à une autre
des fois, c'est pratique ne serait ce que pour avoir un exemple de configuration...
faut il encore savoir quoi et où...
il suffit de conserver un dossier dans un coin pour y noter et copier, quand tu y penses,
les programmes dont tu souhaites garder la conf en cherchant le dossier ou fichier associé.

dans le /home :
pour se rendre compte, dans un navigateur de fichier : Ctrl + h (affiche les dossiers et fichiers cachés)
sans doute le plus important : .config

nautilus "$HOME/.config"

on a des profiles (dossier contenant UNE configuration)
système (personnel), applications comme mozilla : firefox, thunderbird (et à une autre époque sunbird)
j'aime bien mozilla. Ils ont un fichier "profile.ini" qu'il suffit de modifier pour pointer sur un dossier.
Et on peux en mettre plusieurs et passer par un lanceur avec :

firefox -P 

ou

thunderdird -P

tout n'est pas en permanence accessible et un profile peut disparaître un moment car
sur une autre machine qui est éteinte... wink

j'ai un profile pour geany parce que j'ai mes petites habitudes (raccourcis claviers)

sur mon réseau perso, je peux facilement, en live, monter une machine en ssh (sftp)
et récupérer une configuration.

j'ai parlé de .config mais tu verras par toi même sur ta machine
les configurations de pas mal de programmes que tu utilises.
donc outre certains programmes spécifiques dont tu conserveras une trace,
beaucoup d'autres auront leurs paramétrages standards et/ou automatiques.

mais on peut aussi faire autrement :
pour nautilus j'ai un script qui configure avec gsettings,
voilà ce que j'applique :

command gsettings set com.canonical.Unity always-show-menus false
command gsettings set com.canonical.Unity.ApplicationsLens display-available-apps false
command gsettings set com.canonical.Unity.ApplicationsLens display-recent-apps false
command gsettings set com.canonical.Unity.Lenses remote-content-search none
...

je passe les 20 ou 30 lignes supplémentaires.
pour dire que ce sont des conf comme la base de registre de Windows
pour connaître une valeur "gsettings get", pour la modifier "gsettings set"
pour avoir la liste complète des paramètres

gsettings list-schemas

de ton système :
par exemple :

gsettings list-keys org.gnome.Empathy

me renvoie :

autoaway
file-transfer-default-folder
autoconnect
sanity-cleaning-number
use-conn

et

gsettings get org.gnome.Empathy autoaway

me renvoie

true

donc c'est simple de récupérer tout ou partie de cette base !

ce script est pour récupérer toute ta configuration dans un script qui pourra la ré-appliquer

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="récupération des paramètres par gsettings"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..." ;

fichierDeSortie="script_de_configuration_avec_gsettings"

# [ -f "${fichierDeSortie}" ] && echo '' > "${fichierDeSortie}" || touch "${fichierDeSortie}"
[ -f "${fichierDeSortie}" ] && > "${fichierDeSortie}"

# mettre enTETE
echo "#!/bin/bash
# ce script configure une installation sur une base récupérée d'une autre installation
" >> "${fichierDeSortie}"

# on récupère les schémas et on scan chacun
SCHEMAS="$(gsettings list-schemas)"
lesSchemas=( ${SCHEMAS} )
# on scan chaque schéma
for unSchema in ${lesSchemas[@]}
do
	echo "
	# ==============================
	# $unSchema
	# ==============================" 2>&1 | tee -a "${fichierDeSortie}"
	# on récupère les clés et on scan chacune
	KEYS="$(gsettings list-keys $unSchema)"
	lesKeys=( ${KEYS} )
	# on scan chaque clé
	for uneKey in ${lesKeys[@]}
	do
		echo "$unSchema $uneKey"
		echo "gsettings set $unSchema $uneKey $(gsettings get $unSchema $uneKey)" 2>&1 | tee -a "${fichierDeSortie}"
		# sleep 0.5 # pour se laisser le temps de voir ce qui se passe
		# echo "# ------------------------------" 2>&1 | tee -a "${fichierDeSortie}"
	done
	
	# echo "	# ==============================" 2>&1 | tee -a "${fichierDeSortie}"
done

# mettre Pied
echo "
exit 0
" >> "${fichierDeSortie}"

chmod -x "${fichierDeSortie}"

echo "
# ==============================
pour voir le fichier, faire
editeur ${fichierDeSortie}

gedit ${fichierDeSortie}
"

exit 0

comme la configuration d'une machine selon son type et sa distribution est trop spécifique,
on peut mettre ça dans un autre script bash...
j'ai créé un script lanceur de script.
chaque script qui me sert pour mes optimisations est séparé
et j'ai une liste de choix à cocher pour appliquer tel ou tel script
cette liste se crée dynamiquement au lancement du script.
j'ai amassé des scripts identiques un peu partout sur le net et j'essaie de centraliser tout ça...

et la page de la doc

Hors ligne

#99 Le 13/08/2017, à 08:08

DRbuntu91

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

Merci kholo pour toutes ces informations
Je vais analyser ça calmement (je vois que j'ai encore bcp. a apprendre). je reviendrai vers toi si j'ai d'autre questions.
Bon dimanche
Willy


Portable CLEVO W55SU1, Intel i5-4200M, RAM=8Go, DD=500Go mSATA, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + DEBIAN-Buster
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne