From mboxrd@z Thu Jan 1 00:00:00 1970 From: Myles English Subject: Re: locale warning and postgresql Date: Mon, 28 Nov 2016 22:25:24 +0000 Message-ID: <87d1hfi6nf.fsf@gmail.com> References: <87eg1vitxf.fsf@gmail.com> <877f7nmiu7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47225) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBUNd-00078P-Lb for help-guix@gnu.org; Mon, 28 Nov 2016 17:26:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBUNc-0006uN-Cl for help-guix@gnu.org; Mon, 28 Nov 2016 17:26:33 -0500 In-reply-to: <877f7nmiu7.fsf@gnu.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: help-guix Hi Ludo', Thanks for your help. on [2016-11-28] at 20:48 Ludovic Courtès writes: > Myles English skribis: > >> I have always had trouble with my locale after installing guix on Arch >> Linux (with zsh and a basic window manager, bspwm). I have set >> GUIX_LOCPATH in ~/.zshenv and it appears correct in my shell. The >> system-wide locale looks right. I should say that I have tried guix several times and usually (always?) get the locale warning. >> When I install postgresql it gives the usual "warning: failed to >> install locale: Invalid argument". When I try to initialise a >> database cluster, passing the locale doesn't work. >> >> Does anyone using Arch Linux and a basic WM know which file to put >> GUIX_LOCPATH in so that the warning goes away? >> >> How can I find out what guix thinks its locale is or what are available? >> >> Is there a way to use initdb even though there is a locale warning? >> >> Shell experiments: >> >> $ locale >> LANG=en_GB.UTF-8 >> LC_CTYPE="en_GB.UTF-8" >> LC_NUMERIC="en_GB.UTF-8" >> LC_TIME="en_GB.UTF-8" >> LC_COLLATE="en_GB.UTF-8" >> LC_MONETARY="en_GB.UTF-8" >> LC_MESSAGES="en_GB.UTF-8" >> LC_PAPER="en_GB.UTF-8" >> LC_NAME="en_GB.UTF-8" >> LC_ADDRESS="en_GB.UTF-8" >> LC_TELEPHONE="en_GB.UTF-8" >> LC_MEASUREMENT="en_GB.UTF-8" >> LC_IDENTIFICATION="en_GB.UTF-8" >> LC_ALL= >> >> $ echo $GUIX_LOCPATH >> /home/myles/.guix-profile/lib/locale > > What does “ls $GUIX_LOCPATH/2.24” show? $ ls $GUIX_LOCPATH/2.24 ls: cannot access '/home/myles/.guix-profile/lib/locale/2.24': No such file or directory Ah Hah! > You must make sure you have the ‘glibc-locales’ or ‘glibc-utf8-locales’ > that correspond to the glibc version of the program you are using (if > you just installed postgresql, it’s using glibc 2.24.) So I need to reinstall glibc-utf8-locales? But alas... $ guix package -i glibc-utf8-locales warning: failed to install locale: Invalid argument <<< Grrrrr! Bad guix! Naughty! The following package will be upgraded: glibc-utf8-locales 2.23 -> 2.23 /gnu/store/akx97sgcvnjrp0ywf02ab4m4wsmdzwyp-glibc-utf8-locales-2.23 substitute: warning: failed to install locale: Invalid argument <<< Stop that! substitute: updating list of substitutes from 'https://mirror.hydra.gnu.org'... 100.0% The following derivations will be built: /gnu/store/vwcisqs25j00jqhaffa9r2xfxi9xibmj-profile.drv /gnu/store/j8p555s7g8akzb1pqxq34xc9bciy2m50-ca-certificate-bundle.drv /gnu/store/c8ad0jxwwxyjk59rhmv65a850xm486a9-info-dir.drv /gnu/store/5y583gn3k7qqr1s27qriflb11xapsr0r-fonts-dir.drv 2 packages in profile guix package -i glibc-utf8-locales 7.00s user 0.30s system 49% cpu 14.627 total This is no better: $ guix package --no-substitutes -i glibc-utf8-locales Then I tried: $ guix graph --type=bag-emerged postgresql | dot -Tpdf > dag.pdf which I think shows that postgresql 9.5.3 depends on glibc-utf8-locales-2.23. How can I install glibc 2.24 ? > Then you need to make sure GUIX_LOCPATH is set both in the environment > of the postgresql daemon, and in the environment of the commands you > invoke (initdb, etc.). Ok, once I get initdb to work I'll make sure I set GUIX_LOCPATH in the systemd service file that I will construct to start the daemon. Myles