Despite what it says in my ~.bashrc~, if I start a shell from Emacs with the elisp below, then `guix describe` does not work: (let ((default-directory "/ssh:me@remote:/home/me")) (shell "*shell<remote>*")) Of course, if I start a shell normally with ~M-x shell~ in Emacs, then type out the ssh command, ~/etc/profile~ does get sourced. I learned about this by following the advice of nckx from IRC, placing `set -x` in my .bash_profile. Following the former routine in Emacs I see nothing, but with the explicit ssh call I do see all the commands echo'd. Is this a bug in Guix or Emacs? In other words, should the Bash configuration files be extended to handle this case? I thought my system might be broken, but nckx showed me that I could just `. /etc/profile` and then guix describe started working again. Best Regards, Kyle
Hello Kyle, Kyle Andrews <kyle.c.andrews@gmail.com> writes: > Despite what it says in my ~.bashrc~, if I start a shell from Emacs with > the elisp below, then `guix describe` does not work: > > (let ((default-directory "/ssh:me@remote:/home/me")) > (shell "*shell<remote>*")) It works for me: /ssh:raisin:/home/mcournoyer/ #$ guix describe guix 598f728 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 598f7289db9955584457ffc11c8504f3938a1618 The remote machine is a Guix System though. If it as something else, it could be more tricky, as then the shell used may not be Bash *compiled with a non-default option* [0] to source ~/.bashrc on SSH connections. [0] https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bash.scm#n109 To force interactive mode, you could also use 'ssh remote bash -l'. I've also written script with the shebang: #/usr/bin/env -S bash -l This works where 'env' is new enough to accept -S. Useful in Jenkins shell snippets for example. Anyway, I hope that helps. I don't see a bug here. Closing. Maxim