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)
Réponses
Trop de publicités?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
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
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.
Ensuite, "Apply System-Wide" devrait également mettre à jour le local.
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.
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.