Habituellement, je cours aptitude -y install locales
ensuite dpkg-reconfigure locales
pour configurer les paramètres régionaux.
Maintenant, je veux le mettre dans un script shell, comment puis-je faire de manière fiable ce qui suit, automatiquement / sans interaction?
- Choisissez-le
en_US.UTF-8
et définissez-le comme système par défaut - Désactivez tous les autres paramètres régionaux
- (Facultatif) Vérifiez si
/etc/default/locale
contient une seule et unique entréeLANG=en_US.UTF-8
comme prévu
File "/usr/share/apt-listchanges/ALChacks.py", line 32, in <module> sys.stderr.write(_("Can't set locale; make sure $LC_* and $LANG are correct!\n"))
...locale-gen --purge en_GB.UTF-8
une installation propre, vous obtenez cette sortie inattendue: desGenerating locales (this might take a while)... en_US.UTF-8... done Generation complete.
idées sur la façon de définir la liste des paramètres régionaux comme vous le faites dans dpkg-reconfigure les paramètres régionaux de manière non interactive?Impossible d'obtenir la réponse ci-dessus pour qu'elle fonctionne. Au lieu de cela, j'utilise cette méthode (pour Dockerfiles):
la source
en_GB.UTF-8
paramètres régionaux soient configurés dans CircleCI - c'était la meilleure réponse qui fonctionnait. En espérant qu'en raison de ce commentaire, Google pourrait montrer que cela est pertinent lorsque les gens essaient de rechercher le problème que je rencontrais.Pour reconfigurer le fuseau horaire et les paramètres régionaux de manière non interactive, à partir d'un script, voici ce qui fonctionne pour moi (sous Debian):
Pour configurer le fuseau horaire, je crée d'abord '/ etc / localtime' en tant que lien logiciel vers le fichier zoneinfo approprié sous le répertoire '/ usr / share / zoneinfo'. Ensuite, j'exécute la commande dpkg-reconfigure , et tout sera mis en place. Ainsi, par exemple, pour créer le fuseau horaire «Europe / Bruxelles»:
(Notez que l'AREA est un sous-répertoire sous '/ usr / share / info', et la ZONE est un fichier sous le sous-répertoire AREA).
Pour configurer les paramètres régionaux, je lance d'abord un script sed qui créera une nouvelle copie du fichier '/etc/locale.gen', basée sur le contenu du fichier '/ usr / share / i18n / SUPPORTED'. Chaque ligne du fichier d'entrée sera copiée, mais elle sera transformée en commentaire, sauf s'il s'agit d'une entrée de paramètres régionaux UTF-8 pour une langue que je souhaite rendre disponible sur mon système (par exemple, anglais, néerlandais, français, et allemand):
Ensuite, j'ai défini les paramètres régionaux de l'environnement par défaut dans la base de données debconf, par exemple, en anglais britannique :
Je supprime ensuite le fichier '/ etc / default / locale' existant (juste pour m'assurer que son ancien contenu n'interfère pas avec mes nouveaux paramètres), et exécute la commande dpkg-reconfigure pour générer tous les paramètres régionaux sélectionnés par le script sed , et pour créer un nouveau fichier '/ etc / default / locale' avec juste une entrée pour définir la variable 'LANG' sur mes paramètres régionaux d'environnement par défaut sélectionnés:
Ensuite, en fonction de mes besoins, je souhaiterai peut-être exécuter quelques commandes de mise à jour des paramètres régionaux , pour remplacer, par exemple, les variables qui affectent la mise en forme des valeurs et les définir sur des paramètres régionaux différents (comme l'anglais irlandais ):
(J'aurais pu spécifier tous ces paramètres sur une seule invocation de la commande update-locale , mais apparemment, l'ordre dans lequel les entrées sont écrites dans le fichier '/ etc / default / locale' est imprévisible si je le fais. Je je préfère qu'ils soient toujours dans le même ordre, c'est pourquoi je les génère un par un.)
Et enfin, je voudrais peut-être exécuter la commande update-locale une dernière fois, pour configurer la variable LANGUAGE (c'est-à-dire la liste des langues dans lesquelles je veux que les messages texte traduisibles soient affichés):
Jetez tout cela ensemble dans un script bash, et vous pouvez facilement reconfigurer vos paramètres régionaux avec une simple exécution du script, qui ne nécessitera aucune autre interaction de l'utilisateur.
D'après mon expérience, cependant, les nouveaux paramètres ne seront entièrement activés qu'après avoir redémarré votre système deux fois (au moins sur Debian Jessie Xfce). Après le premier redémarrage, le gestionnaire de connexion prendra correctement les nouveaux paramètres, mais après votre connexion, votre session utilisateur continuera à utiliser les anciens paramètres; puis, après le deuxième redémarrage, votre session utilisateur prendra également les nouveaux paramètres.
la source
Basé sur l'excellent travail dans la réponse de @ EirikW. Spécifique à un
Dockerfile
:la source
Pour moi, il fallait régler les 3 ENV-Vars supplémentaires:
Cependant, merci à ErikWs pour sa réponse: ( https://serverfault.com/a/689947 )
la source