Re: [O] How to use org mode shell with ssh?
I got it :) After reading http://orgmode.org/cgit.cgi/org-mode.git/tree/lisp/ob-shell.el#n57, I found I can simply specify the shell name in the block. On Fri, Sep 23, 2016 at 6:50 PM Fabrice Popineau < fabrice.popin...@centralesupelec.fr> wrote: > 2016-09-23 10:32 GMT+02:00 Xi Shen : > >> Hi, >> >> On my Windows system, I have Cygwin setup, with Emacs as part of the >> Cygwin installation. >> > > Cygwin Emacs is not a native Emacs (AFAIK). The difference is in the way > it groks pathnames > and other stuff like the default shell. > > I also setup my Cygwin environment to use zsh. I started my Emacs from >> this zsh environment. I think that's where org inherited this setting. >> >> I think when org execute my block, it some how assumed that it should use >> the same shell at the remote end. >> > > The portion of code I pointed out does not make sense to me and it may be > responsible for your problem. > > Fabrice > -- Thanks, David S.
Re: [O] How to use org mode shell with ssh?
2016-09-23 10:32 GMT+02:00 Xi Shen : > Hi, > > On my Windows system, I have Cygwin setup, with Emacs as part of the > Cygwin installation. > Cygwin Emacs is not a native Emacs (AFAIK). The difference is in the way it groks pathnames and other stuff like the default shell. I also setup my Cygwin environment to use zsh. I started my Emacs from this > zsh environment. I think that's where org inherited this setting. > > I think when org execute my block, it some how assumed that it should use > the same shell at the remote end. > The portion of code I pointed out does not make sense to me and it may be responsible for your problem. Fabrice
Re: [O] How to use org mode shell with ssh?
Hi, On my Windows system, I have Cygwin setup, with Emacs as part of the Cygwin installation. I also setup my Cygwin environment to use zsh. I started my Emacs from this zsh environment. I think that's where org inherited this setting. I think when org execute my block, it some how assumed that it should use the same shell at the remote end. P.S. OpenWRT is the router OS. It is just a tiny Linux. Most people would not install zsh on it :P On Fri, Sep 23, 2016 at 4:35 AM Fabrice Popineau < fabrice.popin...@supelec.fr> wrote: > My $0.02 > > As I'm using Emacs on Windows, with MSYS2+MingW64, I tried this. > There is a problem with using bash from a _native_ MingW64 Emacs: > bash is a MSYS2 app and Emacs is a MingW64 app. > > From emacs, I would have used the plink protocol, so that's what I did. > And I got this message in the *Org-Babel Error Output* buffer > > /bin/sh: 1: C:/Local/Emacs/bin/cmdproxy.exe: not found > > So I looked at ob-eval.el and the org-babel-eval function. > And there are at least 2 big problems. > 1- when entering this function, the `command' parameter is > "C:/Local/Emacs/bin/cmdproxy.exe" > 2 - the `shell-file-name' variable has the same value > So the following won't work for Windows : > ;; Unfortunately, `executable-find' does not support file name > ;; handlers. Therefore, we could use it in the local case > ;; only. > (shell-file-name > (cond ((and (not (file-remote-p default-directory)) > (executable-find shell-file-name)) > shell-file-name) > ((file-executable-p > (concat (file-remote-p default-directory) shell-file-name)) > shell-file-name) > ("/bin/sh"))) > > BTW I don't see the point concatenating shell-file-name with > default-directory when the later is remote. > Do we expect to find the shell in the remote directory ? > > Anyway, there is little chance this stuff will work under Windows with a > native Emacs. > If I find time, I may try to propose some fix. > > Fabrice > > > 2016-09-22 16:52 GMT+02:00 Nick Dokos : > >> Colin Baxter writes: >> >> >> >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 >> >> ls -al >> >> #+END_SRC >> >> >> >> The error, I think, is from the remote end. >> >> >> >> /bin/sh: /bin/zsh: not found >> >> >> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system >> only has ash installed. Is >> >> there's way to specify the shell to use on the remote end? >> >> >> > >> > I can't help you here. I've never used openwrt. All I can suggest is to >> > search openwrt documentation or try with cgywin. >> > >> >> IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt >> (except of course, that >> the remote node may be a router which has been flashed with OpenWrt, but >> that should make no >> difference to ssh/tramp). >> >> -- >> Nick >> >> >> > > > -- > Fabrice Popineau > - > SUPELEC > Département Informatique > 3, rue Joliot Curie > 91192 Gif/Yvette Cedex > Tel direct : +33 (0) 169851950 > Standard : +33 (0) 169851212 > -- > > -- Thanks, David S.
Re: [O] How to use org mode shell with ssh?
My $0.02 As I'm using Emacs on Windows, with MSYS2+MingW64, I tried this. There is a problem with using bash from a _native_ MingW64 Emacs: bash is a MSYS2 app and Emacs is a MingW64 app. >From emacs, I would have used the plink protocol, so that's what I did. And I got this message in the *Org-Babel Error Output* buffer /bin/sh: 1: C:/Local/Emacs/bin/cmdproxy.exe: not found So I looked at ob-eval.el and the org-babel-eval function. And there are at least 2 big problems. 1- when entering this function, the `command' parameter is "C:/Local/Emacs/bin/cmdproxy.exe" 2 - the `shell-file-name' variable has the same value So the following won't work for Windows : ;; Unfortunately, `executable-find' does not support file name ;; handlers. Therefore, we could use it in the local case ;; only. (shell-file-name (cond ((and (not (file-remote-p default-directory)) (executable-find shell-file-name)) shell-file-name) ((file-executable-p (concat (file-remote-p default-directory) shell-file-name)) shell-file-name) ("/bin/sh"))) BTW I don't see the point concatenating shell-file-name with default-directory when the later is remote. Do we expect to find the shell in the remote directory ? Anyway, there is little chance this stuff will work under Windows with a native Emacs. If I find time, I may try to propose some fix. Fabrice 2016-09-22 16:52 GMT+02:00 Nick Dokos : > Colin Baxter writes: > > > >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 > >> ls -al > >> #+END_SRC > >> > >> The error, I think, is from the remote end. > >> > >> /bin/sh: /bin/zsh: not found > >> > >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system > only has ash installed. Is > >> there's way to specify the shell to use on the remote end? > >> > > > > I can't help you here. I've never used openwrt. All I can suggest is to > > search openwrt documentation or try with cgywin. > > > > IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt > (except of course, that > the remote node may be a router which has been flashed with OpenWrt, but > that should make no > difference to ssh/tramp). > > -- > Nick > > > -- Fabrice Popineau - SUPELEC Département Informatique 3, rue Joliot Curie 91192 Gif/Yvette Cedex Tel direct : +33 (0) 169851950 Standard : +33 (0) 169851212 --
Re: [O] How to use org mode shell with ssh?
On Thu, Sep 22 2016, Xi Shen wrote: > Instead of using ssh, I tried with scp. This time I got a different error. > > #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 > ls -al > #+END_SRC > > The error, I think, is from the remote end. > > /bin/sh: /bin/zsh: not found > > Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has > ash installed. Is > there's way to specify the shell to use on the remote end? > I can't help you here. I've never used openwrt. All I can suggest is to search openwrt documentation or try with cgywin. Good luck.
Re: [O] How to use org mode shell with ssh?
Colin Baxter writes: >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 >> ls -al >> #+END_SRC >> >> The error, I think, is from the remote end. >> >> /bin/sh: /bin/zsh: not found >> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has >> ash installed. Is >> there's way to specify the shell to use on the remote end? >> > > I can't help you here. I've never used openwrt. All I can suggest is to > search openwrt documentation or try with cgywin. > IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt (except of course, that the remote node may be a router which has been flashed with OpenWrt, but that should make no difference to ssh/tramp). -- Nick
Re: [O] How to use org mode shell with ssh?
I'm not familiar with remote execution like this, but are you specifying /zsh/ on the Windows side or is it somehow inherently being assumed for the remote? A quick little hack to try may be to copy the /zsh/ executable on Windows to /ash/ and see if it fools the remote side. On 09/22/2016 07:00 AM, Colin Baxter wrote: > On Thu, Sep 22 2016, Xi Shen wrote: > >> Instead of using ssh, I tried with scp. This time I got a different error. >> >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 >> ls -al >> #+END_SRC >> >> The error, I think, is from the remote end. >> >> /bin/sh: /bin/zsh: not found >> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has >> ash installed. Is >> there's way to specify the shell to use on the remote end? >> > I can't help you here. I've never used openwrt. All I can suggest is to > search openwrt documentation or try with cgywin. > > Good luck.
Re: [O] How to use org mode shell with ssh?
Xi Shen writes: > Instead of using ssh, I tried with scp. This time I got a different error. > > #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 > ls -al > #+END_SRC > Try opening the file in tramp directly - that should tell you where the error lies: tramp or org? > The error, I think, is from the remote end. > > /bin/sh: /bin/zsh: not found > > Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has > ash installed. Is there's way to specify the shell to use on the remote end? > Even more: try ssh to your box from the command line. Once you figure out how that works, then you can teach tramp to use that method. > On Thu, Sep 22, 2016 at 8:15 PM Xi Shen wrote: > > Hi, > > I just tried with: > > #+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1 > ls -al > #+END_SRC > > But still got the same error. I wonder on which end threw me this error. > Maybe it is because I am using Emacs on Windows, and some thing is missing? > Or maybe it is because the remote > system is OpenWRT which has limited function? > > On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter wrote: > > On Wed, Sep 21 2016, William Denton wrote: > > > On 22 September 2016, Xi Shen wrote: > > > >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1 > >> ls -al > >> #+END_SRC > > > > Just use ssh, not sshx, and it should work. > > > > Bill > > In babel it is now (shell . t). The form (sh . t) is depreciated as > from > org-mode version 8.2.10 at least. > > Best wishes. > > -- > > Thanks, > David S. > > -- > > Thanks, > David S. > -- Nick
Re: [O] How to use org mode shell with ssh?
Instead of using ssh, I tried with scp. This time I got a different error. #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1 ls -al #+END_SRC The error, I think, is from the remote end. /bin/sh: /bin/zsh: not found Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has ash installed. Is there's way to specify the shell to use on the remote end? On Thu, Sep 22, 2016 at 8:15 PM Xi Shen wrote: > Hi, > > I just tried with: > > #+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1 > ls -al > #+END_SRC > > But still got the same error. I wonder on which end threw me this error. > Maybe it is because I am using Emacs on Windows, and some thing is missing? > Or maybe it is because the remote system is OpenWRT which has limited > function? > > > On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter wrote: > >> On Wed, Sep 21 2016, William Denton wrote: >> >> > On 22 September 2016, Xi Shen wrote: >> > >> >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1 >> >> ls -al >> >> #+END_SRC >> > >> > Just use ssh, not sshx, and it should work. >> > >> > Bill >> >> In babel it is now (shell . t). The form (sh . t) is depreciated as from >> org-mode version 8.2.10 at least. >> >> Best wishes. >> > -- > > > Thanks, > David S. > -- Thanks, David S.
Re: [O] How to use org mode shell with ssh?
Hi, I just tried with: #+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1 ls -al #+END_SRC But still got the same error. I wonder on which end threw me this error. Maybe it is because I am using Emacs on Windows, and some thing is missing? Or maybe it is because the remote system is OpenWRT which has limited function? On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter wrote: > On Wed, Sep 21 2016, William Denton wrote: > > > On 22 September 2016, Xi Shen wrote: > > > >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1 > >> ls -al > >> #+END_SRC > > > > Just use ssh, not sshx, and it should work. > > > > Bill > > In babel it is now (shell . t). The form (sh . t) is depreciated as from > org-mode version 8.2.10 at least. > > Best wishes. > -- Thanks, David S.
Re: [O] How to use org mode shell with ssh?
On Wed, Sep 21 2016, William Denton wrote: > On 22 September 2016, Xi Shen wrote: > >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1 >> ls -al >> #+END_SRC > > Just use ssh, not sshx, and it should work. > > Bill In babel it is now (shell . t). The form (sh . t) is depreciated as from org-mode version 8.2.10 at least. Best wishes.
Re: [O] How to use org mode shell with ssh?
On 22 September 2016, Xi Shen wrote: #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1 ls -al #+END_SRC Just use ssh, not sshx, and it should work. Bill -- William Denton :: Toronto, Canada :: https://www.miskatonic.org/ Caveat lector.