59 votes

apt-get warning : Pas de support pour la locale : en_US.utf8

J'obtiens cette erreur à chaque fois que je mets à jour le système en utilisant apt-get. Que signifie cette erreur ? Avez-vous des idées sur la façon de la corriger ? (Je suis sous Ubuntu 11.10)

64voto

Paul Beckingham Points 7460

En général, cette erreur signifie que vous avez pu changer de langue (locale) et que quelque chose a provoqué une erreur.

Vous pourriez essayer de régénérer votre liste de locales avec

sudo dpkg-reconfigure locales

Pour moi, le résultat a été :

Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

Puis réinitialiser votre locale avec :

sudo update-locale LANG=en_US.UTF-8

c.-à-d. utiliser une des valeurs Locale dans la sortie ci-dessus

46voto

Dean Points 340

Dans mon cas, le problème était que /usr/share/initramfs-tools/hooks/root_locale s'attend à voir des répertoires de paramètres locaux individuels dans le répertoire /usr/lib/locale けど locale-gen est configuré pour générer un fichier d'archive par défaut.

Je l'ai réparé en courant :

sudo locale-gen --purge --no-archive

1voto

Gildas Points 111

Le problème peut provenir de la minuscule dans le "utf8" au lieu de "UTF8" ? ??

Warning: No support for locale: en_US.utf8

Ce code semble résoudre le problème.

> sudo update-locale LANG=en_US.UTF-8
> echo $LANG
en_US.UTF-8

Il est également possible, en théorie, d'y aller dans le cadre des langues locales.

enter image description here

Ensuite, "Apply System-Wide" devrait également mettre à jour le local.

1voto

hillbllie Points 21

Je vois que vous utilisez ubuntu11.10 (oneric) @2011, bien que les réponses ci-dessus aient pu résoudre ce problème dans cette version, le message d'avertissement existe toujours, et les réponses fournies n'ont pas résolu le problème dans mon cas :

À partir d'une installation fraîche d'Ubuntu 14,04 (trusty [Mint 17.1 ISO]) et de la mise à niveau vers ubuntu 18.04 (bionic [Mint 19.3]) en appliquant 6 mises à niveau au total. J'ai ignoré le message d'avertissement persistant, car il n'a pas affecté le fonctionnement de mon système dans une mise à niveau donnée ni les modifications que j'ai apportées à mon noyau.

Mais, perplexe, j'ai trouvé ce qui suit :

En inspectant de près, j'ai trouvé le fichier situé à /usr/share/initramfs-tools/hooks/root_locale (date Mar 11 2011 !) dont je présume qu'il est exécuté par ../hook-functions (trouvé dans initramfs-tools dans l'affaire susmentionnée Les versions d'Ubuntu se trouvent ici et plus encore !, l'origine des avertissements, dans mon cas, est ici :

[ -r /etc/default/locale ] && . /etc/default/locale

[ -z "$ROOT_LOCALE" ] && ROOT_LOCALE=`echo $LANG | sed -e 's/UTF/utf/' -e 's/utf-8/utf8/'`

if [ -n "$ROOT_LOCALE" ] && [ -d /usr/lib/locale/$ROOT_LOCALE ]; then
        [ "${verbose}" = "y" ] && echo "Adding locale: $ROOT_LOCALE"
        mkdir -p "$DESTDIR/usr/lib/locale"
        cp -r /usr/lib/locale/$ROOT_LOCALE "$DESTDIR/usr/lib/locale"
        echo "ROOT_LOCALE=$ROOT_LOCALE" > $CONF
        echo "export ROOT_LOCALE" >> $CONF
        echo "export FSTYPE" >> $CONF
else
        echo "Warning: No support for locale: $ROOT_LOCALE" >&2
fi

Notez que ce script fait explicitement référence à /usr/lib/locale/en_US.utf8 qui est analysé sans succès dans mon cas.

Au moment où cette réponse a été postée, aucune des autres solutions données ci-dessus n'aborde le problème avec les éléments suivants utf8 étant en minuscules, à savoir dans ubuntu 14 > 20, locale-gen analyse simplement chaque ligne dans /etc/locale.gen à localedef voir Pages de manuel Ubuntu locale-gen de 16.04 à 20.04 (et n'a pas cualquier des options données ci-dessus), ni locale.gen ont une seule entrée utilisant utf8 minuscules.

Pour résoudre ce problème :

Tout d'abord, vérifiez la langue que vous utilisez dans votre Distro basée sur Ubuntu/Debian :

echo $LANG

Ensuite, changez en_US ci-dessous, à votre __lang__uage (par ex. fr_FR )

cd /usr/lib/locale

localedef -f UTF-8 -i en_US ./en_US.utf8

Cela crée la structure suivante :

ls /usr/lib/locale/en_US.utf8/

LC_ADDRESS LC_IDENTIFICATION LC_MONETARY LC_PAPER LC_COLLATE LC_MEASUREMENT LC_NAME LC_TELEPHONE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_TIME

Note1 : Les deux sites locale-gen (Shell Shell) et dpkg-reconfigure locales (qui appelle localedef ), il suffit d'analyser /etc/locale.gen dans les versions 16.04 > 20.04 d'Ubuntu, votre distribution peuvent fournir des fonctionnalités différentes.

Note2 : Je n'ai aucune idée de l'endroit où ___/usr/share/initramfs-tools/hooks/root_locale___ est venu comme il est pas que l'on trouve dans les libère Je ne peux que supposer qu'il s'agit d'une partie de Mint 17.1, votre distribution peut être différente.

0voto

Réinstallation de locales a fonctionné pour moi

sudo apt reinstall locales

Avant d'exécuter la commande ci-dessus, je verrais ceci

$ locale -a                    
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.UTF-8
POSIX
$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
...
Generating locales (this might take a while)...
  en_AG.UTF-8...[error] cannot open locale definition file `en_GB': No such file or directory
 done
  en_AU.UTF-8...[error] cannot open locale definition file `en_AU': No such file or directory
...

Après la réinstallation locales je vois la sortie correcte

$ locale -a                       
C
C.UTF-8
...
en_US.utf8
...
$ sudo dpkg-reconfigure locales         
Generating locales (this might take a while)...
...
  en_US.UTF-8... done
...
Generation complete.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X