GNU bug report logs -
#42600
/etc/profile not being sourced from interactive non-login shell
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#42600: /etc/profile not being sourced from interactive non-login shell
which was filed against the guix package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 42600 <at> debbugs.gnu.org.
--
42600: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42600
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hello Kyle,
Kyle Andrews <kyle.c.andrews <at> 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 <at> 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
[Message part 3 (message/rfc822, inline)]
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 <at> 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
This bug report was last modified 2 years and 309 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.