kyopages/docs/scripts/getFirefox.md

365 lines
13 KiB
Markdown

# 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 versions peuvent coexister et fonctionner en parallèle
> 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
> script testé sur debian / ubuntu, mais devrait être compatible avec d'autres distributions
* 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.19.0 - 09/03/2018
getFirefox 4.19.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.19.0 - 09/03/2018
installation Firefox-latest
- téléchargement...
/tmp/getFirefox-install_ffx/fi 100%[==========================================>] 51,30M 4,66MB/s ds 11s
- 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.19.0 - 09/03/2018
----------------------------------------------------------------------
canaux possibles: latest, beta, nightly, dev, esr
<all> = tous les canaux
exemple, installation version Release (latest): getFirefox i-latest
getFirefox i-canal : installation de Firefox <canal> (root)
avec option --sauve l'archive téléchargée est sauvegardée dans le répertoire courant
getFirefox d-canal : copier un éventuel profil .default existant sur <canal>
getFirefox m-canal archi : installation sur le <canal> d'une <archi>ve téléchargée manuellement (root)
getFirefox r-canal : désinstallation (remove) du <canal> (root)
getFirefox ri : réparation icône(s) et lanceur(s) dans le menu (root)
getFirefox u-canal : profil pour l'utilisateur en cours et comme défaut système (root)
getFirefox p-canal : personnalisation sur le <canal> de user.js & userChrome.css
getFirefox pr-canal : suppression des personnalisations (remove) sur le <canal>
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 (root)
getFirefox -u, --upgrade : mise à jour du script
getFirefox -v, --version : version 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.19.0 - 09/03/2018
script en place: 4.19.0
script en ligne: 4.17.1
.....++++
Firefox en place: esr: 52.6.0 beta: 59.0
Firefox en ligne: esr: 52.6.0 latest: 58.0.2 beta: 59.0b14 nightly: 60.0a1
perso. Firefox en place: Non installé
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, dès le redémarrage 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és dans le fichier _/var/log/sdeb_getFirefox.log_
## 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)