Skip to content

Default shell in Debian 6 of R is SH instead of BASH

9 messages · Harutyun Khachatryan, Johannes Ranke, Don Armstrong +1 more

#
Hi,

Am Donnerstag, 6. M?rz 2014, 23:46:28 schrieb Harutyun Khachatryan:
The comment on line 67 suggest that this variable is only used during the 
build process.
The default shell in Debian 6 is dash (it was bash before):

https://wiki.debian.org/Shell
I see no problem to use bash during the build process and have dash as the 
default shell for the system. bash and dash happily coexist.
Were you successful?
It seems to me that there is no problem.

Johannes
#
Well, R is cross-platform. If you issue system commands I think it is clear 
that it may differ depending on the system (think if Windows or Mac).

Anyway, you would need to bring this up on debian-devel or the respective 
fedora lists, as it seems to me you are complaining about the system defaults. 
As far as I can see, this is not under the control of the R packaging. Please 
correct me if I am wrong.

Johannes

Am Freitag, 7. M?rz 2014, 01:24:42 schrieb Harutyun Khachatryan:

  
    
#
It is documented in the R help file for system() that /bin/sh is used (they 
mention that it has to be used). Also there are some warnings that different 
systems behave differently. I do not see what else could be done at the moment.

Am Freitag, 7. M?rz 2014, 01:54:44 schrieb Harutyun Khachatryan:

  
    
#
Johannes is entirely correct.

Debian just assumes a sh-compatible shell.  I think we're now on dash, it was
ash for a while.  These are used to keep the _boot_ system smaller where we
have not used bash as the default /bin/sh in maybe a decade. Some, but few,
scripts were adjusted.  Users still default to bash.

R, for the record, tries very hard not to default to things like bashisms or
GNU extensions to make as it tries (and succeeds) to build everywhere.

What shell to use _locally_ is a local policy decision and can be
overridden.  If your scripts need bash, you can could
 - either rewrite them to only sh constructs (a pain)
 - override the Debian default and make bash the default

This has little to nothing to do with R-on-Debian so this list is the wrong
place.

Dirk
3 days later
#
On Fri, 07 Mar 2014, Dirk Eddelbuettel wrote:
Just for the record, if you scripts need to use bash, they should have
#!/bin/bash in the shebang line. If your scripts can use any POSIX
shell, then they should have #!/bin/sh in the shebang line. This should
resolve any of the problems you are having regardless of which shell
happens to be /bin/sh.
#
On 10 March 2014 at 11:24, Don Armstrong wrote:
| On Fri, 07 Mar 2014, Dirk Eddelbuettel wrote:
| > What shell to use _locally_ is a local policy decision and can be
| > overridden.  If your scripts need bash, you can could
| >  - either rewrite them to only sh constructs (a pain)
| >  - override the Debian default and make bash the default
| 
| Just for the record, if you scripts need to use bash, they should have
| #!/bin/bash in the shebang line. If your scripts can use any POSIX
| shell, then they should have #!/bin/sh in the shebang line. This should
| resolve any of the problems you are having regardless of which shell
| happens to be /bin/sh.

Quite so. And as I believe you were addressing this comment to the OP, I am
adding him back as a CC just in case.

Dirk