Greška "Unable to open env file: /etc/default/locale"

Greška "Unable to open /etc/default/locale" je bezazlena greška, ako se uopće može greškom nazvati. Neke kolege je uznemirila, jer se pojavljuje u kontekstu naredbe su (koja podiže privilegije korisnika na razinu drugog korisnika, najčešće administratora). No, radi se samo o nepostojanju datoteke koja određuje osnovni locale sustava (lokalizacijske postavke, poput datuma, sortiranja i poruka sustava itd.). Prijava problema koju smo zaprimili je glasila:

> To: logcheck@domena.hr
> Subject: server.domena.hr 2010-10-28 10:02 Security Events
>
>
> Security Events for su
> =-=-=-=-=-=-=-=-=-=-=-
> Oct 28 09:04:34 server su[822]: pam_env(su:session): Unable to open env file:
> /etc/default/locale: No such file or directory
> Oct 28 09:20:35 server su[2650]: pam_env(su:session): Unable to open env file:
> /etc/default/locale: No such file or directory
>
> o cemu se ovdje radi, jel nesto opasno ili mogu ignorirati?

Ova datoteka se jos od distribucije Debian Etch rabi umjesto stare datoteke /etc/environment. Neki je programi eksplicitno traže, iako ona može biti potpuno prazna. Datoteka /etc/default/locale se nije kreirala ili je obrisana vjerojatno prilikom nadogradnje sustava ili paketa locales.

Ukoliko samo želite brzo rješenje, bit će dovoljno napraviti:

# touch /etc/default/locale

Time ste "ušutkali" sve programe koje traže da ova datoteka postoji. No, pravi put bi bio rekonfiguriranje paketa locales. S naredbom  "dpkg-reconfigure locales" možete odabrati novi osnovni locale. Naravno, možete odabrati i "None", pa sustav neće imati osnovni locale, nego samo ugrađeni minimalni ("C"). Prvo, trebate odabrati sve locale koje želite izgenerirati:

# dpkg-reconfigure locales

Nakon toga odabirete osnovni locale sustava, u ovom slučaju "None":

Generating locales (this might take a while)...
en_US.ISO-8859-1... done
en_US.UTF-8... done
hr_HR.ISO-8859-2... done
hr_HR.UTF-8... done
Generation complete.

Datoteka /etc/default/locale će se kreirati, ali bez definicije localea, dakle efektivno će biti prazna (osim komentara u njoj):

server$ cat /etc/default/locale
# File generated by update-locale

server$

Ukoliko u drugom prozoru odaberete bilo što osim "None", to će postati osnovni locale za sustav, pa će tako i pisati u /etc/default/locale.

server$ cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
server$

Eto, nadamo se da smo vas naučili dvije stvari jednim člankom: kako popraviti "grešku" koju vam dojavljuje sustav, te kako promijeniti locale na sustavu (ukoliko želite ispisivanje datuma na hrvatskom i slično).

 

Kuharice: 
Vote: 
0
No votes yet