# getFirefox > c'est un script bash qui télécharge les dernières versions officielles de Mozilla Firefox des différents canaux possibles: **latest** la release officielle, mais aussi **ESR** **beta**, **nightly**, et _dev_. > les mises à jour de Firefox sont par défaut autorisées et gérées par Firefox (corrections mineures permanentes, en tâche de fond, et une version majeure toutes les 6 semaines environ). > le script se mettra éventuellement à jour, sans influence sur les canaux Firefox installés. > le script installe un canal Firefox pour l'utilisateur en cours. > le script peut charger des fichiers de personnalisation et les mettra à jour périodiquement > le script peut désinstaller les canaux Firefox souhaités * les installations/désinstallations/opérations système doivent être faites avec les privilèges **root** * la mise à jour du script ou autres opérations légères peuvent être faites en utilisateur. > le programme Tor Browser est dorénavant pris en charge par [getXfox](https://kyodev.frama.io/kyopages/scripts/getXfox/) ## installation rapide du script * privilèges **root** requis ```shell wget -O getFirefox https://framagit.org/kyodev/kyopages/raw/master/scripts/getFirefox chmod +x getFirefox && ./getFirefox ``` ```text _ _____ _ __ __ _ ___| |_| ___(_)_ __ ___ / _| _____ __ / _' |/ _ \ __| |_ | | '__/ _ \ |_ / _ \ \/ / | (_| | __/ |_| _| | | | | __/ _| (_) > < \__, |\___|\__|_| |_|_| \___|_| \___/_/\_\ |___/ version 4.6.0 - 26/12/2017 getFirefox 4.6.0 installé dans le système. maintenant, appel du script par: getFirefox (sans ./) ``` * le script est maintenant dans le système et tout utilisateur peut s'en servir. * **Firefox n'est pas encore installé** * un canal Firefox peut maintenant être choisi et installé (`latest`, `esr`, `beta`, `nightly`, `dev`) ## installation d'un canal Firefox ```shell getFirefox i-canal ``` * privilèges **root** requis * `getFirefox p-all` possible * la version stable en cours de Firefox est nommée **latest** ```text _ _____ _ __ __ _ ___| |_| ___(_)_ __ ___ / _| _____ __ / _' |/ _ \ __| |_ | | '__/ _ \ |_ / _ \ \/ / | (_| | __/ |_| _| | | | | __/ _| (_) > < \__, |\___|\__|_| |_|_| \___|_| \___/_/\_\ |___/ version 4.6.0 - 26/12/2017 installation Firefox-latest - téléchargement... /tmp/getFirefox-install_ffx/firefox-latest. 100%[=============================>] 53,75M 4,66MB/s in 12s - décompression... - installation... profil Firefox latest configuré Firefox latest est le défaut système Firefox-latest installé ``` * la dernière version officielle du canal Firefox est installée, en étant directement chargée sur le site Mozilla * un lanceur par canal installé est placé dans les menus (Applications/Internet) * l'installation de Firefox sur un canal existant est refaite en **totalité**, mais **le profil n'est pas modifié** * chaque canal peut être lancé en console: `firefox-latest` `firefox-beta` `firefox-dev` `firefox-nightly` `firefox-esr` * le dernier canal installé est configuré comme défaut dans le système, c'est-à-dire comme: * cible de la commande `firefox` en console (en plus de firefox-canal) * prioritaire dans update-alternatives (si supporté) * par défaut dans le profiles.ini de Thunderbird * pour chaque canal, une option permet basculer cette priorité sur le canal choisi * les canaux par ordre croissant de versions: ` ESR <= release < beta = developer edition < nightly ` * le canal **all** est fictif et comprend _esr+latest+beta+nightly_ pour l'installation (pas de _dev_ donc) * le canal **all** comprend toutes les versions installées pour les autres opérations * pour chaque canal, une option permet de **copier** un éventuel profil _.default_. le profil _.default_ existant est laissé en place. 4 autres canaux, en dehors de latest: * Beta, qui deviendra la future version Release * Nightly, réservé aux aventuriers, mise à jour tous les jours [Mozilla Nightly](https://blog.nightly.mozilla.org/) * ESR, mise à jour majeure toutes les ans environ, avec support à plus long terme. en savoir plus [Mozilla ESR](https://developer.mozilla.org/fr/Firefox/Firefox_ESR) * Developer Edition, basée sur la beta (avec des outils de développement web?) ## help ```shell getFirefox -h ``` ```text _ _____ _ __ __ _ ___| |_| ___(_)_ __ ___ / _| _____ __ / _' |/ _ \ __| |_ | | '__/ _ \ |_ / _ \ \/ / | (_| | __/ |_| _| | | | | __/ _| (_) > < \__, |\___|\__|_| |_|_| \___|_| \___/_/\_\ |___/ version 4.6.0 - 26/12/2017 ---------------------------------------------------------------------- canaux possibles: latest, beta, nightly, dev, esr = tous les canaux exemple, installation version Release (latest): getFirefox i-latest getFirefox i-canal : installation de (root) getFirefox d-canal : copier un profil .default existant sur getFirefox m-canal : installation sur le d'une archive téléchargée manuellement (root) getFirefox r-canal : désinstallation (remove) du (root) getFirefox u-canal : profil pour l'utilisateur en cours et comme défaut système (root) getFirefox p-canal : personnalisation sur le de user.js & userChrome.css getFirefox pr-canal : suppression des personnalisations (remove) sur le getFirefox pu : mise à jour des personnalisations (update) installées getFirefox version : versions installées et en ligne ---------------------------------------------------------------------- ./getFirefox (ou ./getFirefox -i) : installation du script dans le système (root) getFirefox -h, --help : affichage aide getFirefox -r, --remove : désinstallation du script du système (root) getFirefox -u, --upgrade : mise à jour du script getFirefox -v, --version : versions du script plus d'infos: https://kyodev.frama.io/kyopages/scripts/getFirefox/ Tor Browser, voir getXfox: https://kyodev.frama.io/kyopages/scripts/getXfox/ ``` ## version ```shell getFirefox version ``` ```text _ _____ _ __ __ _ ___| |_| ___(_)_ __ ___ / _| _____ __ / _' |/ _ \ __| |_ | | '__/ _ \ |_ / _ \ \/ / | (_| | __/ |_| _| | | | | __/ _| (_) > < \__, |\___|\__|_| |_|_| \___|_| \___/_/\_\ |___/ version 4.6.0 - 26/12/2017 script en place: 4.6.0 script en ligne: 4.6.0 .....++++ Firefox en place: latest: 56.0.2 nightly: 59.0a1 Firefox en ligne: esr: 52.5.2 latest: 57.0.2 beta: 58.0b12 nightly: 59.0a1 perso. Firefox en place: esr: 0.6 latest: 0.6 beta: 0.6 nightly: 0.6 perso. Firefox en ligne: 0.6 ``` ## mise à jour Firefox * Firefox gère ses mises à jour et le script permet cet automatisme. * cette mise à jour se fait en tâche de fond et est disponible au prochain redémarrage * la mise à jour éventuelle peut être déclenchée manuellement avec le menu `Aide/A propos de Firefox` * les correctifs mineurs sont appliqués selon leur disponibilité * mise à jour majeure toutes les 6 à 8 semaines environ, la version beta descend en version Release, la version nightly, figée, descend en beta * la nightly est mise à jour quotidiennement, voir plus * si Firefox n'est pas utilisé, il ne se met pas à jour ## profil default, copie ```shell getFirefox d-canal ``` * `getFirefox d-all` possible * duplique un éventuel profil .default existant (paquet distribution par exemple) sur un canal choisi. ## nouvel utilisateur ou reconfiguration profil ```shell getFirefox u-canal ``` * privilèges **root** requis * `getFirefox d-all` possible (plus haut canal comme défaut système) * ajoute un profil pour un canal Firefox **installé**, pour l'utilisateur en cours * configure le canal comme navigateur par **défaut** (alternatives, commande firefox, profil Firefox) * évite de télécharger inutilement une nouvelle fois pour un nouvel utilisateur * pour ajouter un autre utilisateur, titi par exemple: `USER_INSTALL=titi getFirefox u-canal`, ça devrait marcher (pas testé) ## personnalisation (installation) ```shell getFirefox p-canal ``` * `getFirefox p-canal` possible * _user.js_ est ajouté dans le profil du canal souhaité * _userChrome.css_ est ajouté dans le profil du canal souhaité, sous-répertoire _chrome/_ * la version indiquée dans user.js fait référence, la version de userChrome.css est indicative * les personnalisations sont périodiquement mise à jour, comme le script (7jours) * l'url de base peut être changée aisément, les fichiers modifiés et hébergés ailleurs pour mise à jour automatique (sur une plateforme git ou un gist par exemple) * dans chaque canal concerné, la configuration se trouve trouve dans le fichier: `/home/user/.mozilla/firefox/canal/personnalisation` * l'url (première ligne) peut y être modifiée * la version est indiquée en seconde ligne * pour figer des fichiers de personnalisations et ne pas les mettre à jour, il suffit d'effacer les fichiers `personnalisation` * contenu de [user.js](https://framagit.org/kyodev/kyopages/blob/master/scripts/user.js) * contenu de [userChrome.css](https://framagit.org/kyodev/kyopages/blob/master/scripts/userChrome.css) ## personnalisation (upgrade) ```shell getFirefox pu ``` * cette tâche est exécutée périodiquement par cron/anachron et n'a pas vraiment vocation à être lancée manuellement * toutes les personnalisations installées sont mise à jour ## personnalisation (suppression) ```shell getFirefox pr-canal ``` * `getFirefox p-canal` possible ## désinstallation d'un canal Firefox ```shell getFirefox r-canal ``` * privilèges **root** requis * `getFirefox p-canal` possible * le profil pour firefox **n'est pas supprimé**, il sera donc utilisable en cas de réinstallation * si firefox-canal est ouvert, il sera fermé * le navigateur par **défaut** sera configuré sur le plus bas canal encore installé ## installation manuelle d'une archive ```shell getFirefox m-canal firefox-VERSION.fr.linux-ARCHITECTURE.tar.bz2 ``` * privilèges **root** requis * installe une archive téléchargée manuellement ## suppression d'un profil Firefox * **FERMER toutes les instances ouvertes** du canal * **en user**, lancer en terminal le profil manager de Firefox: `firefox -P` : * sélectionner le profil souhaité * cliquer sur _supprimer un profil_ * _supprimer les fichiers_, cela supprimera aussi le répertoire `~/.mozilla/firefox/profilSélectionné` le profil est **définitivement** détruit * quitter ### suppression manuelle de tous les profils si plus aucun canal de Firefox n'est installé, qu'il n'y a plus de profil manager disponible, et que vous êtes certains de vouloir supprimer tous les profils en place, en **user**: ```shell rm -rf ~/.mozilla/firefox/ ``` ## mise à jour script & personnalisation ```shell getFirefox -u ``` * test toutes les **semaines** * mise à jour du **script** si une nouvelle version est disponible en ligne. cela n'influe pas sur les canaux Firefox installés. * cette tâche est exécutée périodiquement par cron/anachron et n'a pas vraiment vocation à être lancée manuellement * _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même après l'arrêt du Pc * si une **personnalisation** est mise en place, une mise à jour possible sera elle aussi testée, pour tous les canaux concernés ## logs ```shell pager /var/log/sdeb_getFirefox.log ``` tous les évènements importants sont consignées dans le fichier _/var/log/sdeb_getFirefox.log_ consulter son contenu: ## supprimer le script ```shell getFirefox -r ``` * privilèges **root** requis * effacement du script dans le système (_/opt/bin_) * effacement de l'inscription dans crontab/anacron utilisateur * cela ne **supprime pas** les éventuels canaux Firefox installés ## sources sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFirefox) ## changelog sur [framagit](https://framagit.org/kyodev/kyopages/blob/master/scripts/getFirefox_changelog.md) ## contact pour tout problème ou suggestion concernant ce script, n'hésitez pas à ouvrir une issue [Framagit](https://framagit.org/kyodev/kyopages/issues) IRC freenode: ##sdeb ## license [LPRAB/WTFPL](https://framagit.org/kyodev/kyopages/blob/master/scripts/LICENSE.md)