* bug#42600: /etc/profile not being sourced from interactive non-login shell
@ 2020-07-29 15:17 Kyle Andrews
2022-07-14 2:52 ` Maxim Cournoyer
0 siblings, 1 reply; 2+ messages in thread
From: Kyle Andrews @ 2020-07-29 15:17 UTC (permalink / raw)
To: 42600
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#42600: /etc/profile not being sourced from interactive non-login shell
2020-07-29 15:17 bug#42600: /etc/profile not being sourced from interactive non-login shell Kyle Andrews
@ 2022-07-14 2:52 ` Maxim Cournoyer
0 siblings, 0 replies; 2+ messages in thread
From: Maxim Cournoyer @ 2022-07-14 2:52 UTC (permalink / raw)
To: Kyle Andrews; +Cc: 42600-done
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-07-14 2:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-29 15:17 bug#42600: /etc/profile not being sourced from interactive non-login shell Kyle Andrews
2022-07-14 2:52 ` Maxim Cournoyer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).