This commit is contained in:
kyodev 2017-06-08 14:09:19 +02:00
parent 26323d3884
commit 19744e36b8
2 changed files with 178 additions and 238 deletions

View File

@ -1,11 +1,6 @@
# getFlashPlayer # getFlashPlayer
**version 0.7.x** **version 0.8.x**
## voir les sources
sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer)
## charger le script ## charger le script
@ -14,18 +9,22 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer
chmod +x getFlasPlayer chmod +x getFlasPlayer
``` ```
## installation rapide ## installation
en **root**
```shell ```shell
su su
# le script est dans le système ./getFlashPlayer
./getFlashPlayer sysinstall exit
# FlashPlayer est installé
getFlashPlayer install
``` ```
* le script est maintenant dans le système et tout utilisateur peut s'en servir.
* si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois ( en juin 2017),
il sera **désinstallé**.
si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant.
## lancer le script sans arguments
`./getFlashPlayer` ## help, script sans arguments
`getFlashPlayer`
``` ```
_ _____ _ _ ____ _ _ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __ __ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
@ -33,28 +32,25 @@ getFlashPlayer install
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
pour Firefox sur Debian, version 0.7.0rc
pour Firefox sur Debian, version 0.8.0 - 08/06/2017
----------------------------------------------------------------------- -----------------------------------------------------------------------
getFlashPlayer install : téléchargement et installation de FlashPlayer ./getFlashPlayer : installation du script dans le système, en ROOT
getFlashPlayer install : téléchargement & installation de FlashPlayer
getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : récupération version en ligne de FlashPlayer getFlashPlayer version : version en ligne de FlashPlayer
getFlashPlayer test : installation version de test alternative getFlashPlayer test : installation version de test de FlashPlayer
getFlashPlayer sysinstall : installation du script dans le système getFlashPlayer sysremove : désinstall du script du système, en ROOT
getFlashPlayer sysremove : désinstallation du script dans le système
ce script agit sur TOUS les utilisateurs déclarés du système
----------------------------------------------------------------------- -----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour
Ce script doit être exécuté avec les droits administrateur root l'installation et la suppresion du script dans le système.
uniquement pour les installations et la suppresion du script dans
le système.
Il désinstallera le paquet flashplugin-nonfree si présent. Il désinstallera le paquet flashplugin-nonfree si présent.
Seul le plugin sera installé, en tant que plugin Mozilla Firefox. Seul le plugin sera installé, en tant que plugin mozilla Firefox.
Ce script devrait fonctionner sur Ubuntu. Ce script devrait fonctionner sur Ubuntu.
----------------------------------------------------------------------- -----------------------------------------------------------------------
FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on
ne peut pas connaître le code source, ni l'utiliser sans conditions, ne peut pas connaître le code source, ni l'utiliser sans conditions,
ni le distribuer librement. ni le distribuer librement.
@ -66,67 +62,45 @@ getFlashPlayer install
``` ```
## lancer l'installation de la version _release_ ## installation plugin version _release_
en **root**: `./getFlashPlayer install` `getFlashPlayer install`
* l'installation sera faite pour tous les utilisateurs configurés dans le système. * FlashPlayer est installé, en étant directement chargé du site Adobe.
* FlashPlayer est chargé du site Adobe. Après installation, les fichiers inutiles sont effacés. * l'installation est faite pour l'utilisateur courant.
* si le paquet `flashplugin-nonfree` est présent, non fonctionnel depuis des mois (juin 2017), il sera désinstallé. * lancer le script pour chaque utilisateur, en **utilisateur**, pas en root.
si ce paquet devait être ré-installé, il semble préférable de de désinstaller _getFlashPlayer_ auparavant.
* si un nouvel utilisateur est ajouté ultérieurement, l'installation devra être relancée
* seule la bibliothèque est installée comme plugin Firefox (uniquement). FlashPlayer pourra être configuré * seule la bibliothèque est installée comme plugin Firefox (uniquement). FlashPlayer pourra être configuré
au clic droit dans le navigateur. le système n'est pas encombré. au clic droit dans le navigateur. le système n'est pas encombré.
* après installation, les fichiers inutiles sont effacés.
## désinstallation ## désinstallation plugin
`./getFlashPlayer remove` `getFlashPlayer remove`
* les plugins seront effacés des profils Mozilla de tous les utilisateurs * le plugin sera effacé du profil Mozilla de l'utilisateur courant.
* lancer le script pour chaque utilisateur, en **utilisateur**, pas en root.
* si le répertoire _plugins_ est vide, il sera effacé * si le répertoire _plugins_ est vide, il sera effacé
## voir la version en ligne ## version en ligne
`./getFlashPlayer version`: affiche la dernière version en ligne de FlashPlayer. `getFlashPlayer version`: affiche la version en ligne de FlashPlayer.
## lancer l'installation de la version _test_ ## installation plugin version _test_
en **root**: `./getFlashPlayer test` `getFlashPlayer test`
* utilise une version de test sur une adresse alternative. la pérennité de cette url ou * utilise une version de test sur une adresse alternative. la pérennité de cette url ou
la fiabilité de cette version n'est pas connue. la fiabilité de cette version n'est pas connue.
## installer le script sur le systeme
en **root**: `./getFlashPlayer sysinstall`
le script téléchargé est **effacé**
le script est copié dans `/opt/bin/`
un lien est créé dans `/usr/local/bin/`
le script doit alors être appelé sous ces formes:
* getFlashPlayer install
* getFlashPlayer remove
* getFlashPlayer version
* getFlashPlayer test
* getFlashPlayer sysinstall
* getFlashPlayer sysremove
non installé dans le système, le script doit donc être appelé dans le répertoire de téléchargement, qui ne
fait pas partie du PATH, avec le préfixe `./` soit:
* **./**getFlashPlayer install
* **./**getFlashPlayer remove
* **./**getFlashPlayer version
* **./**getFlashPlayer test
* **./**getFlashPlayer sysinstall
* **./**getFlashPlayer sysremove
## supprimer le script sur le systeme ## supprimer le script sur le systeme
en **root**: `getFlashPlayer sysinstall` en **root**: `getFlashPlayer sysremove`
## sources
sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFlashPlayer)

View File

@ -1,13 +1,14 @@
#!/bin/bash #!/bin/bash
version="0.7.1rc" version="0.8.0"
projet="A définir" projet="A définir"
contact="A venir" contact="A venir"
date="08/06/2017"
##### licence LPRAB/WTFPL ##### licence LPRAB/WTFPL
# auteur kyodev # auteurs: kyodev
# contibuteurs naguam / coyotus / arpinux # contibuteurs: coyotus
# 06/2017 # idée: naguam
##### #####
#### définition couleurs ----------------------------------------------- #### définition couleurs -----------------------------------------------
@ -17,6 +18,7 @@ YELLOW=`printf "\033[0;33m"` # ?
COLOR=`printf "\033[0m"` # standard COLOR=`printf "\033[0m"` # standard
RED=`printf "\033[0;31m"` # alerte RED=`printf "\033[0;31m"` # alerte
#### entete ============================================================ #### entete ============================================================
clear clear
echo "$BLUE" echo "$BLUE"
@ -27,14 +29,15 @@ cat << 'EOF'
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ | | (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_| \__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/ |___/ |___/
EOF EOF
echo -e "$YELLOW pour Firefox sur Debian, \t version $version\n$COLOR" echo -e "$YELLOW pour Firefox sur Debian, \t version $version - $date\n$COLOR"
#### fonctions diverses ================================================ #### fonctions diverses ================================================
# sortie sur erreur # sortie sur erreur
f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu f_error() { # affichage paramètre 1 en rouge pour le premier, les suivants optionnels en bleu, sortie du script
echo -e "\n$RED Erreur critique: $1 $COLOR" echo -e "\n$RED Erreur critique: $1 $COLOR"
for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done for (( i=2 ; i<=$# ; i++ )); do echo " $BLUE${!i}"; done
echo "$COLOR" echo "$COLOR"
@ -48,40 +51,35 @@ f_info() { # tous les paramètres en ligne en couleur bleue, accepte \n, ligne
#debian? return 0 else 1 #debian? return 0 else 1
f_debian(){ f_debian(){
if [ -f /etc/debian_version ]; then if [ -f /etc/debian_version ]; then return 0; else return 1; fi
return 0
else
return 1
fi
} }
# root? return 0 else 1 # root? return 0 else 1
f_root(){ f_root(){
if [ $EUID -eq 0 ]; then if [ $EUID -eq 0 ]; then return 0; else return 1; fi
return 0
else
return 1
fi
} }
# liste des users déclarés dans le système, assigne $listeUsers # script en /bin? return 0 si bin, 1 si local
f_allUsers(){ f_scriptBin(){
# valeurs séparées par espace # echo egrep: "-$(echo $0 | grep -Eo '\.\/')-"
listeUsers=$(cat /etc/passwd | sed -En 's/^(.*):x:[0-9]{4}.*$/\1/p' | grep -v 'nobody' | tr '\n' ' ') if [ "$(echo $0 | grep -Eo '\.\/')" != "./" ]; then return 0; else return 1; fi
} }
# version Flash en ligne, assign $verFlash, assigne $user_agent , $urlOnline , $verFlash
#### fonctions script ==================================================
# version Flash en ligne, $verFlash, $user_agent, $urlOnline, $verFlash
f_versionFlash(){ f_versionFlash(){
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/20100101 Firefox/52.0" user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:45.0) Gecko/20100101 Firefox/52.0"
urlOnline="https://get.adobe.com/flashplayer/" urlOnline="https://get.adobe.com/flashplayer/"
verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \ verFlash=$(wget --no-check-certificate --tries=1 --timeout=15 --user-agent=$user_agent -nv -qO - $urlOnline | \
grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]') grep "AUTO_ID_columnleft_p_version" | grep -o '[0-9].*[0-9]')
f_info "Version FlashPlayer en ligne: $verFlash."
} }
# pas bô ce soft :( ================================================ # pas bô ce soft :(
f_avertissement(){ f_avertissement(){
cat << 'EOF' cat << 'EOF'
FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on FlashPlayer n'est pas libre, c'est un programmme propriétaire dont on
ne peut pas connaître le code source, ni l'utiliser sans conditions, ne peut pas connaître le code source, ni l'utiliser sans conditions,
ni le distribuer librement. ni le distribuer librement.
@ -94,178 +92,146 @@ cat << 'EOF'
EOF EOF
} }
#### traitements arguments ============================================= # affichage help
if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments" f_help(){
elif [ "$1" == "install" ]; then cmd="install" printf $BLUE
elif [ "$1" == "remove" ]; then cmd="remove"
elif [ "$1" == "version" ]; then cmd="version"
elif [ "$1" == "test" ]; then cmd="installTest"
elif [ "$1" == "sysinstall" ]; then cmd="sysinstall"
elif [ "$1" == "sysremove" ]; then cmd="sysremove"
else cmd="help"
fi
if [ "$cmd" == "help" ]; then
# HELP si pas d'arguments ou mauvais argument
echo "$BLUE"
cat << 'EOF' cat << 'EOF'
----------------------------------------------------------------------- -----------------------------------------------------------------------
getFlashPlayer install : téléchargement et installation de FlashPlayer ./getFlashPlayer : installation du script dans le système, en ROOT
getFlashPlayer install : téléchargement & installation de FlashPlayer
getFlashPlayer remove : désinstallation de FlashPlayer getFlashPlayer remove : désinstallation de FlashPlayer
getFlashPlayer version : récupération version en ligne de FlashPlayer getFlashPlayer version : version en ligne de FlashPlayer
getFlashPlayer test : installation version de test alternative getFlashPlayer test : installation version de test de FlashPlayer
getFlashPlayer sysinstall : installation du script dans le système
getFlashPlayer sysremove : désinstallation du script dans le système
ce script agit sur TOUS les utilisateurs déclarés du système getFlashPlayer sysremove : désinstall du script du système, en ROOT
-----------------------------------------------------------------------
EOF EOF
echo $COLOR printf $COLOR
cat << 'EOF' cat << 'EOF'
Ce script doit être exécuté avec les droits administrateur root -----------------------------------------------------------------------
uniquement pour les installations et la suppresion du script dans Ce script doit être exécuté avec les droits root uniquement pour
le système. l'installation et la suppresion du script dans le système.
Il désinstallera le paquet flashplugin-nonfree si présent. Il désinstallera le paquet flashplugin-nonfree si présent.
Seul le plugin sera installé, en tant que plugin Mozilla Firefox. Seul le plugin sera installé, en tant que plugin mozilla Firefox.
Ce script devrait fonctionner sur Ubuntu. Ce script devrait fonctionner sur Ubuntu.
----------------------------------------------------------------------- -----------------------------------------------------------------------
EOF EOF
f_avertissement printf $COLOR
exit 1 }
fi
# install du script dans le système
#### fonction version en ligne ========================================= f_sysinstall(){
if [ "$cmd" == "version" ]; then
f_versionFlash
# fin de script
f_info "Version FlashPlayer en ligne: $verFlash."
exit 0
fi
#### remove, on vire flash =============================================
if [ "$cmd" == "remove" ]; then
# on récupère la liste des users dans $listeUsers
f_allUsers
# on efface, pour *chaque user déclaré* sur le système
for user in $listeUsers; do
rm -f /home/"$user"/.mozilla/plugins/libflashplayer.*
done
rm -d /home/"$user"/.mozilla/plugins/ &>/dev/null
f_info "$GREEN""FlashPlayer est désinstallé pour tous les utlisateurs.\n"
# fin de script
exit 0
fi
#### système install ===================================================
if [ "$cmd" == "sysinstall" ]; then
# root? sinon dehors
if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi if ! f_root ; then f_error "vous devez être ROOT pour installer ce script dans le système"; fi
# on vire 'flashplugin-nonfree' si installé
if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi
# installation dans /opt # installation dans /opt
mkdir -p /opt/bin/ mkdir -p /opt/bin/
cp -d $0 /opt/bin/ cp -d $0 /opt/bin/
link /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null ln -s /opt/bin/getFlashPlayer /usr/local/bin/getFlashPlayer &>/dev/null
rm $0 &>/dev/null #### rm $0 &>/dev/null
f_info "$GREEN""le script est installé dans le système.\n" f_info "$GREEN""le script est installé dans le système.\n$BLUE appel du script par$GREEN getFlashPlayer$BLUE (sans ./)"
exit 0 exit 0
fi }
# suppression du script dans le système
#### système remove ==================================================== f_sysremove(){
if [ "$cmd" == "sysremove" ]; then
# root? sinon dehors
if ! f_root ; then f_error "vous devez être ROOT pour supprimer ce script dans le système"; fi if ! f_root ; then f_error "vous devez être ROOT pour supprimer ce script dans le système"; fi
# suppression de /opt # suppression de /opt
rm /opt/bin/getFlashPlayer &>/dev/null rm /opt/bin/getFlashPlayer &>/dev/null
unlink /usr/local/bin/getFlashPlayer &>/dev/null unlink /usr/local/bin/getFlashPlayer &>/dev/null
f_info "$GREEN""le script est supprimé du système.\n" f_info "$GREEN""le script est supprimé du système.\n"
exit 0 }
# suppression du plugin
f_remove(){
if f_root ; then f_error "vous ne pouvez pas désinstaller le plugin en tant que ROOT"; fi
# on efface le plugin et le répertoire si vide
rm -f "/home/$USER/.mozilla/plugins/"libflashplayer.*
rm -d "/home/$USER/.mozilla/plugins/" &>/dev/null
f_info "$GREEN""FlashPlayer est désinstallé.\n"
}
# install plugin dans config user mozilla
f_install(){
if f_root ; then f_error "vous ne pouvez pas installer le plugin en tant que ROOT"; fi
# debian? sinon dehors / utile? /
if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi
# information soft daube
f_avertissement
# architecture > $architecture (version release)
if [ "$(dpkg --print-architecture)" = "amd64" ]; then architecture='x86_64'; else architecture='i386'; fi
# calcul $file, affichage version pendant l'install, calcul $url
file="flash_player_npapi_linux.$architecture.tar.gz"
if [ "$flashTest" == "yes" ]; then
# on change l'architecture pour test
if [ $architecture == "x86_64" ]; then architecture='linux64'; else architecture='linux32'; fi
f_info "installation FlashPlayer, version alternative de test"
url="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/$architecture/"
else
f_versionFlash
f_info "installation FlashPlayer, version $verFlash"
url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/"
fi
# dossier temporaire de travail
fileTemp="/tmp/flash-file/"
mkdir -p "$fileTemp"
# chargement flash / à peaufiner les sorties wget /
wget --user-agent="$user_agent" -O $fileTemp$file $url$file &>/dev/null
# gestion erreur wget / à peaufiner /
if [ "$?" != "0" ]; then
f_error "problème au chargement, connexion défaillante?" \
"Si persistance, merci de prévenir $projet" \
"$contact"
fi
# décompression archive téléchargée dans dossier de travail
tar xaf $fileTemp$file -C $fileTemp
# création répertoire, copie de la biblio dans la config user mozilla et droits(utile?), on efface te temporaire
mkdir -p "/home/$USER/.mozilla/plugins"
cp "$fileTemp"libflashplayer.so "/home/$USER/.mozilla/plugins/"
rm -Rf "$fileTemp"
# the end
f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/"
}
#### traitements arguments =============================================
if [ "$#" -gt 1 ]; then cmd="help" && f_info "$RED trop d'arguments"
elif [ "$1" == "install" ]; then cmd="install"; flashTest='no'
elif [ "$1" == "remove" ]; then cmd="remove"
elif [ "$1" == "version" ]; then cmd="version"
elif [ "$1" == "test" ]; then cmd="install"; flashTest='yes'
elif [ "$1" == "sysremove" ]; then cmd="sysremove"
else cmd="help"
fi fi
#### installation script si pas dans le système ========================
if ! f_scriptBin ; then f_sysinstall; fi
#### help ==============================================================
if [ "$cmd" == "help" ]; then f_help; f_avertissement; fi
#### système remove ====================================================
if [ "$cmd" == "sysremove" ]; then f_sysremove; fi
#### fonction version en ligne =========================================
if [ "$cmd" == "version" ]; then f_versionFlash; fi
#### remove, on vire flash =============================================
if [ "$cmd" == "remove" ]; then f_remove; fi
#### installation ====================================================== #### installation ======================================================
if [ "$cmd" == "install" ]; then f_install; fi
# root? sinon dehors
if ! f_root ; then f_error "vous devez être ROOT pour installer"; fi
# debian? sinon dehors / utile? /
if ! f_debian ; then f_error "désolé, vous n'utilisez pas Debian :( adieu o/"; fi
# information soft daube
f_avertissement
#on récupère la version en ligne
f_versionFlash
# affichage version en ligne pendant l'install version release
if [ "$cmd" == "install" ]; then
f_info "installation FlashPlayer, version $verFlash"
else
f_info "installation FlashPlayer, version alternative de test"
fi
# on vire 'flashplugin-nonfree' si installé
if dpkg-query -l flashplugin-nonfree &> /dev/null; then apt-get purge flashplugin-nonfree; fi
# architecture? & url alternative pour version test
if [ "$(dpkg --print-architecture)" = "amd64" ]; then
architecture='x86_64'
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux64/"
else
architecture='i386'
urlTest="https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/linux32/"
fi
# dossier temporaire de travail
fileTemp="/tmp/flash-file/"
mkdir -p "$fileTemp"
# variables daube release
url="https://fpdownload.adobe.com/get/flashplayer/pdc/$verFlash/"
file="flash_player_npapi_linux.$architecture.tar.gz"
# chargement flash / à peaufiner les sorties wget /
if [ "$cmd" == "installTest" ]; then
wget --user-agent="$user_agent" -O $fileTemp$file $urlTest$file &>/dev/null
else
wget --user-agent="$user_agent" -O $fileTemp$file $url$file &>/dev/null
fi
# gestion erreur wget
#1 Generic error code.
#2 Parse error---for instance, when parsing command-line options, the .wgetrc or .netrc...
#3 File I/O error.
#4 Network failure.
#5 SSL verification failure.
#6 Username/password authentication failure.
#7 Protocol errors.
#8 Server issued an error response.
if [ "$?" != "0" ]; then
f_error "problème au chargement, connexion défaillante?" \
"Si persistance, merci de prévenir $projet" \
"$contact"
fi
# décompression archive téléchargée dans dossier de travail
tar xaf $fileTemp$file -C $fileTemp
# on récupère la liste de tous les users dans $listeUsers
f_allUsers
# copie de la biblio dans la config user mozilla, pour *chaque user déclaré* sur le système
for user in $listeUsers; do
mkdir -p /home/"$user"/.mozilla/plugins
cp "$fileTemp"libflashplayer.so /home/"$user"/.mozilla/plugins/
chown -R "$user":"$user" /home/"$user"/.mozilla/plugins
done
# on efface le dossier temporaire
rm -Rf "$fileTemp"
# the end
f_info "$GREEN""FlashPlayer est installé.\n\t""$BLUE""Pour tester: http://get.adobe.com/flashplayer/about/"
exit 0 exit 0