Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

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.

#1 Le 10/08/2017, à 09:16

kholo

[tuto]post-installation Ubuntu 16.04 : le PC à kiki : LES PROGRAMMES

Je met ici cette partie spécifique à la post installation : le choix des programmes.
J'ai encore du travail pour condenser et organiser les processus mais l'idée est là...
ceux qui font beaucoup d'installations et de post installations comprendront l'aspect pratique de ma démarche

sans doute trop pressé, je limite, pour le moment les infos pour limiter l'usage à ceux qui savent ce qu'ils font ;
débutant passe ta route...

avant tout, les programmes sur serveurs qui se démocratisent ne changeront pas la donne. On continuera à avoir un ensemble de programme choisis ou imposés avec lesquels nous devrons avoir un lien ; que ce soit le logiciel lui même ou une façon d'éditer ses fichiers propriétaires.
voici une bonne façon de voir la liste des programmes des dépôts :

apt list

et laissez vous bercer quelques secondes à dizaine de secondes du spectacle de cette liste !
Ctrl + C pour arrêter net le flot !

comme ce n'est pas intelligent de vouloir installer la totalité de ces paquets on va choisir un panel pouvant couvrir la majeur partie des besoins et voir pourquoi et surtout comment limiter ce nombre

ma liste plus ou moins actuelle en est là :

# Liste des programme à installer
# Les lignes entières commentées ne sont pas prises en compte
# Attention à la casse des noms de paquets

# Francisation
language-pack-fr 
language-pack-fr-base 
language-pack-gnome-fr 
language-pack-gnome-fr-base
manpages-fr 
manpages-fr-extra

# INTERNET
firefox
thunderbird
#icedove
#icedove-l10n-fr
filezilla
# skype

# RESEAU
openssh-server
#sshfs
network-manager-gnome
nmap

# IMPRESSION
# cups
# gutenprint
# ghostscript
# hplip

# GRAPHISME
inkscape
gimp
gimp-plugin-registry 
gimp-data-extras 
gimp-data
gimp-data-extras
#gthumb
shotwell
sweethome3d
#blender
scribus
#gmic
#glabels
#imagination
darktable
#shutter
#ufraw
#mypaint
#krita
#calligra-l10n-fr

# MULTIMEDIA
vlc
cheese

# recordmydestop # pas 16.04
kazam

# AUDIO
audacity
#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
h264enc
#libmad0 
mpg321 
libavcodec-extra

# BUREAUTIQUE
libreoffice
# libreoffice-style-breeze
# libreoffice-style-crystal
# libreoffice-style-galaxy
# libreoffice-style-hicontrast
# libreoffice-style-human
# libreoffice-style-oxygen
# libreoffice-style-sifr
# libreoffice-style-tango
verbiste-gnome
keepassx
shutter

# PDF
pdfmod
pdfshuffler
xournal

# EDITEURS TEXTES
geany
geany-plugins
gedit 
gedit-plugins

# TWEAK TOOLS
gufw
ppa-purge
gksu
gdebi
#synaptic 
#screenfetch
numlockx
gconf-editor
dconf-tools
unity-tweak-tool
# clamav
# clamtk
bleachbit

# SYSTEM
inxi
sysinfo
hardinfo
htop
gparted
gnome-disk-utility
lm-sensors
hddtemp
tlp

# DOCKS
docky
#cairo-dock
conky
conky-all

# 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 mémo : ubuntu conserve certains des paquets installés

ls /var/cache/apt/archives/

petit plus ; un script qui va récupérer la liste et les infos de TOUS les paquets des dépôts :
attention : long (plusieurs minutes) ;

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION="récupère la liste de tous les programmes installables depuis les dépôts 
récupère les informations de chaque programme (TRES TRES LONG)
copie les infos dans un fichier texte individuel"
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..." ;

# APT="apt-cache"
APT="apt"

# Sortie des descriptions à l'unité
DOSSIER_OUT="descriptions"
[ -d "${DOSSIER_OUT}" ] || mkdir "${DOSSIER_OUT}"

# on construit un index en même temps
INDEX_OUT="tousLesProgrammes"
[ -f "${INDEX_OUT}" ] || touch "${INDEX_OUT}"

# LISTE DE TOUS LES PROGRAMMES DES DEPOTS EN REFERENCE
# dans /etc/apt/sources.list*
PROGRAMMES=$(apt list)

listeDeTousLesProgrammes=()

IFS=$'\n' PROGRAMMES=( $PROGRAMMES )
NumProg=0
for PROGRAMME in ${PROGRAMMES[@]}
do
	[[ ${PROGRAMME} == "Listing…" ]] && echo "${PROGRAMME}" || {
		((NumProg++))
		unProgramme="${PROGRAMME%%/*}"

		# LES_INFOS="$(apt show $unProgramme 2>/dev/null )"
		LES_INFOS="$($APT show $unProgramme 2>/dev/null )"

		DESCRIPTION="$(echo -e "$LES_INFOS" | grep Description)"
		DESCRIPTION=${DESCRIPTION##*:}
		listeDeTousLesProgrammes+=( "$unProgramme # $DESCRIPTION" )
		
		# [ $NumProg -lt 10 ] || break
		echo "$NumProg - $unProgramme"
		echo "$DESCRIPTION"
		echo "---------------------------------------------"
		clear
		echo "$unProgramme # $DESCRIPTION" | tee -a "${INDEX_OUT}"
		echo -e "$LES_INFOS" > "${DOSSIER_OUT}/${unProgramme}.txt"
		}
done

echo "listeDeTousLesProgrammes"
# echo "${listeDeTousLesProgrammes[@]}"
for i in ${listeDeTousLesProgrammes[@]}
do
		echo "-> $i"
done

exit 0

on pourra se servir de cette liste pour des recherches plus rapides dans un autre script...

enfin un script pour créer et maintenir la première liste

#!/bin/bash
# ----------------------------------------------
nomlogiciel="${0##*/}"
FONCTION=""
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..."

APT="apt-cache"

function fichierProglist {
	if [ -f "${PROGLIST}" ];
	then
		> "${PROGLIST}" # vide le fichier
	else
		echo "Création du fichier PROGLIST : ${PROGLIST}"
		touch "${PROGLIST}";
	fi
}
function ListCheckListArray () {
# SEPARATOR=","
SEPARATOR=$'\n'

duTEXTE="sélectionnez les programmes à installer

NB les lignes qui commencent par des # sont des Titres ou des infos
"

zenity --list --checklist --separator="${SEPARATOR}" \
--width=1250 --height=500 \
--title="Choisir des programmes" \
--text "$duTEXTE" \
--column="" \
--column="valeur" \
--column="description" \
--print-column="2" "${array[@]}"
}
function ajouterProgramme () {
	echo "$@" | tee -a "${PROGLIST}" >/dev/null;
}

# ******************************************************
array=()
PROGLIST="proglist" # fichier de sortie

fichier="tousLesProgrammes" # tous Les Programmes
letexte="$(cat "$fichier")"
IFS=$'\n' lignes=( $letexte )
nbrePgmInstall=0
PROBLEME=()

for ligne in ${lignes[@]}
do
	# echo -e "$ligne \nligne $n; nombre de caractères : ${#ligne}"

	# echo -e "# traitement de -> ${ligne}"
	echo -e "# ${ligne}"
	# sleep 1
	case ${ligne:0:2} in
		\#\#)		# echo "double" 
					# ligne="${ligne##*#}"
					# array+=( FALSE "${ligne}" "" ) # facultatives
					;;
		\#' ')		# echo "simple espace"
					# ligne="${ligne##*# }"
					array+=( FALSE "${ligne}" "" )
					;;
		\#[a-z])	# echo "simple"
					ligne="${ligne#*#}"
					LES_INFOS="$($APT show ${ligne} 2>/dev/null | grep Description)" ;
					[ $? -eq 1 ] && PROBLEME+=( ${ligne} ) # && zenity --info --text="${ligne} \n$LES_INFOS "
					LES_INFOS="${LES_INFOS#*: }"
					array+=( FALSE "${ligne}" "${LES_INFOS}" )
					;;

		# \#\#|\#[a-z]|\#' ') array+=( FALSE "${ligne}" ) ;;

		*)			# echo "autre"
					((nbrePgmInstall++)) # si besoin, compte les programmes à installer
					LES_INFOS="$($APT show ${ligne} 2>/dev/null | grep Description)" ;
					LES_INFOS="${LES_INFOS#*: }"
					array+=( TRUE "${ligne}" "${LES_INFOS}" ) 
					;;
	esac
	# echo "ARRAY= ${array[@]}"
	# echo "Problèmes= ${PROBLEME[@]}"
done #| zenity --progress --title="traitement de -> " ;
# [ $? -eq 1 ] && exit 100

echo "
**************************************
Problèmes :
$(for i in ${PROBLEME[@]}
do
	echo $i
done
)
**************************************
"

zenity --info --text="ces paquets ne pourront pas être installés :
$(for i in ${PROBLEME[@]}
do
	echo $i
done
)
" 
# --no-wrap

echo "************************************************************
choix :"

REPONSE="$(ListCheckListArray)"
[ $? -eq 0 ] && {
	# clear

	# echo "ouverture de Proglist"
	# fichierProglist
	if [ -f "${PROGLIST}" ]; 
	then 
		> "${PROGLIST}" # vide le fichier
	else
		echo "Création du fichier PROGLIST : ${PROGLIST}"
		touch "${PROGLIST}";
	fi

	REPONSE=( ${REPONSE} )
	for i in ${REPONSE[@]}
	do
		# echo "Ajouter -> $i"
		# ajouterProgramme "$i"
		echo "$i" | tee -a "${PROGLIST}"
	done
	} || {
	# clear
	echo "L'utilisateur a annulé"
	}

exit 0

Hors ligne