locali rotti su Beaglebone Black in esecuzione Debian


1

Quindi tutto è iniziato quando volevo installare il mio demone personalizzato sul mio Beaglebone Black con Debian usando update-rc.d mydaemon defaults 97come ho fatto molte volte durante lo sviluppo sul mio host Mint. E sono accolto con:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
   LANGUAGE = (unset),
   LC_ALL = (unset),
   LC_PAPER = "es_CL.UTF-8",
   LC_ADDRESS = "es_CL.UTF-8",
   LC_MONETARY = "es_CL.UTF-8",
   LC_NUMERIC = "es_CL.UTF-8",
   LC_TELEPHONE = "es_CL.UTF-8",
   LC_IDENTIFICATION = "es_CL.UTF-8",
   LC_MEASUREMENT = "es_CL.UTF-8",
   LC_NAME = "es_CL.UTF-8",
   LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
update-rc.d: using dependency based boot sequencing

Che in seguito ho provato a risolvere dpkg-reconfigure locales, a cui risponde

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_MONETARY = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LANG = "en_US.UTF-8"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.ISO-8859-1...locale alias file `/usr/share/locale/locale.alias' not found: No such file or directory
 done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_MONETARY = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_PAPER = "es_CL.UTF-8",
    LANG = "C"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_MONETARY = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_PAPER = "es_CL.UTF-8",
    LANG = "C"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Non ho idea di come risolvere questo dato che si rifiuta di farmi installare eventuali pacchetti o aggiornare qualcosa ... Qualcuno ha qualche idea? Sono perplesso ...

ps ho visto Configura Locales su Debian e questo non funziona per me (es. source /etc/default/locale)

pps Ho anche controllato la /etc/locales.genshell ed en_US.UTF-8 UTF-8è senza commenti come dovrebbe essere e lo script della shell suggerisce di eseguire locale-gene ottengo

Generating locales (this might take a while)...
en_US.UTF-8...locale alias file `/usr/share/locale/locale.alias' not found: No such file or directory

Risposte:


3

Quindi, dopo aver esaminato tutti i manuali Debian e la build BeagleBone, ho finalmente capito cosa è successo! Ho pensato di metterlo nel caso qualcuno incontrasse questo problema. Per correggere le impostazioni locali avevo bisogno di riscrivere manualmente il /etc/default/localefile con: (se ad esempio in nordamericano useresti "en_US.UTF-8" per tutti).

LANG="en_US.UTF-8"
LC_NUMERIC="es_CL.UTF-8"
LC_MONETARY="es_CL.UTF-8"
LC_PAPER="es_CL.UTF-8"
LC_NAME="es_CL.UTF-8"
LC_ADDRESS="es_CL.UTF-8"
LC_TELEPHONE="es_CL.UTF-8"
LC_MEASUREMENT="es_CL.UTF-8"
LC_IDENTIFICATION="es_CL.UTF-8"

È quindi necessario assicurarsi che lo script della shell /etc/locale.genabbia tutte le impostazioni locali che si intende utilizzare senza commenti sudo nano /etc/locale.gen.

È quindi necessario correggere il collegamento simbolico che le impostazioni locali si aspettano, che il kernel avrebbe dovuto effettuare al momento dell'installazione, questo è fatto da: sudo ln -s /etc/locale.alias /usr/share/locale/locale.alias

Infine, esegui dpkg-reconfigure localesper correggere il collegamento e tutto dovrebbe funzionare correttamente ora.

(Nota a margine: mi sono reso conto in seguito che si update-rc.dtratta di uno strumento legacy nelle versioni successive di Debian, come quello sul BeagleBone nero, la shell daemon dovrebbe essere installata usando insserv mydaemoninvece)


Questo ha funzionato su una build di container debian. Grazie!
bryanmac,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.