kyopages/docs/scripts/getFirefox.md

365 lines
12 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 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 doivent être faites avec les privilèges **root**
* les opérations sur l'utilisateur, ou sur la mise à jour du script, 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.0.0 - 22/12/2017
getFirefox 4.0.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.0.0 - 22/12/2017
installation Firefox-latest
- téléchargement...
/tmp/getFirefox-install-23584/firefox-nig 100%[===============================>] 57,26M 5,09MB/s in 13s
- décompression...
- installation...
Firefox latest est le canal par défaut du système
Firefox-nightly 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é)
* 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.0.0 - 22/12/2017
----------------------------------------------------------------------
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)
getFirefox d-canal : copier un profil .default existant sur <canal>
getFirefox m-canal : installation sur le <canal> d'une archive téléchargée manuellement (root)
getFirefox r-canal : désinstallation (remove) de Firefox <canal> (root)
getFirefox s-canal : canal comme défaut du système (update-alternatives & commande firefox) (root)
getFirefox u-canal : ajouter un profil pour l'utilisateur en cours
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 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/
```
## version
```shell
getFirefox version
```
```text
_ _____ _ __
__ _ ___| |_| ___(_)_ __ ___ / _| _____ __
/ _' |/ _ \ __| |_ | | '__/ _ \ |_ / _ \ \/ /
| (_| | __/ |_| _| | | | | __/ _| (_) > <
\__, |\___|\__|_| |_|_| \___|_| \___/_/\_\
|___/
version 4.0.0 - 22/12/2017
script en place: 4.0.0
script en ligne: 3.16.0
.....++++
Firefox en place: esr : 52.5.2 latest : 56.0.2 beta : 56.0 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 mise à 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
```
* `getFirefox d-all` possible
* ajoute un profil pour un canal Firefox **installé**
* évite de télécharger inutilement une nouvelle fois pour un nouvel utilisateur:
* ajout à l'utilisateur en cours
* ajout pour un autre utilisateur, titi pas exemple: `USER_INSTALL=titi getFirefox u-beta`
## 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é
* update-alternatives, si supportée, sera configurée sur le plus bas canal installé
* la commande en console `firefox` sera aussi configurée pour le plus bas canal 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
tous les évènements importants sont consignées dans le fichier _/var/log/sdeb_getFirefox.log_
consulter son contenu:
```shell
pager /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)