(shell #~#$dash) -- compiles too, but again: bob $ su - mom Password: /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: /gnu/store/bqmib4vf9mr8dkqx4dqpcqrnb93giwci-dash-0.5.10.2: Is a directory bob $
this works all right: (shell (file-append dash "/bin/dash")) May 4, 2019 11:12 AM, "rendaw" <7e9wc56emja...@s.rendaw.me> wrote: > On 5/4/19 7:53 PM, zna...@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