From mboxrd@z Thu Jan 1 00:00:00 1970 From: rendaw <7e9wc56emjakcm@s.rendaw.me> Subject: Re: G-Expressions manual. change user shell in guix config.scm Date: Sat, 4 May 2019 20:06:45 +0900 Message-ID: <47df8d6d-9d34-5abe-a7f7-c4f5a1c6a7f2@s.rendaw.me> References: <020ade7dd57cfe2182b3aa360a8cf13d@disroot.org> <768fb29d220fa00af3cb133b0909b870@disroot.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([209.51.188.92]:39528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hMsVH-0008Ga-J3 for help-guix@gnu.org; Sat, 04 May 2019 07:06:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hMsVG-000186-GZ for help-guix@gnu.org; Sat, 04 May 2019 07:06:51 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:60849) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <7e9wc56emjakcm@s.rendaw.me>) id 1hMsVF-00017k-Rl for help-guix@gnu.org; Sat, 04 May 2019 07:06:50 -0400 In-Reply-To: <768fb29d220fa00af3cb133b0909b870@disroot.org> Content-Language: en-US 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: znavko@disroot.org, help-guix@gnu.org On 5/4/19 7:53 PM, znavko@disroot.org wrote: > For $~#$dash it says unbound variable: > > (use-mosules ... > (gnu packages shells) > (guix gexp) > ) > ... > (user-account (name "mom") (group "users") > (supplementary-groups '("wheel" "netdev" "audio" "video")) > (home-directory "/home/mom") > (shell $~#$dash)) > > # guix system reconfigure config.scm > /root/config.scm:24:32: error: #{$~#$dash}#: unbound variable > hint: Did you forget a `use-modules' form? You have $~#$ but you should have #~#$ instead.  But this is the same as just having `(shell dash)` which causes the next error: > > > For just a string 'shell dash' compilation is ok, but after user login in terminal it says 'dash is a directry' and does not allow login: > > (user-account (name "mom") (group "users") > (supplementary-groups '("wheel" "netdev" "audio" "video")) > (home-directory "/home/mom") > (shell dash)) > > # guix system reconfigure config.scm > ..ok... > > bob $ > bob $ su - mom > Password: > /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: Is a directory > bob $ `dash` is a package object which is "lowered" and becomes a string of the path to the directory: `/gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2` `(shell ...)` needs a path to an executable (the shell program), that is: `/gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2/bin/dash` Therefore you need the string-append or file-append expressions to add the final "/bin/dash".  See the examples from my previous email. Cheers, rendaw