TinyCore Linux & RVM
Solution 1
Your Tiny Core Linux install probably has a bare-minimum shell installed. This is probably busybox. You can verify this by checking if /bin/sh
is symlinked to something else:
ls -l /bin/sh
lrwxrwxrwx 1 root root 7 Dec 15 20:52 /bin/sh -> busybox
Since Tiny Core Linux loads the bare-minimum OS into RAM, this is desirable. However, if you need a more fully-featured shell you may install it via the Application Browser (See the List of available applications here, the command-line version of the application browser is tce-ab
). Tiny Core Linux currently has: bash
and tcsh
.
To install bash:
tce-load -wi bash.tcz
The default shell is still /bin/sh
, however you can spawn a bash shell by running bash
from within it.
To set the tcuser
's default shell:
which bash | sudo tee -a /etc/shells > /dev/null
sudo sed -i "/$(cat /etc/sysconfig/tcuser)/ s#:[^:]\+\$#:$(which bash)#" /etc/passwd
You might want to also install the GNU coreutils
if you're looking for more GNU standard utilities for use in bash scripts also:
tce-load -wi coreutils.tcz
Solution 2
It looks like one of the scripts is running under /bin/sh
but uses extended features of bash, possibly <<<
or <(
. You presumably have ash as /bin/sh
; that's legitimate (and ash is measurably faster and uses less memory than bash, which is why many distributions don't put bash as /bin/sh
), but occasionally you run into scripts that rely on bash yet start with #!/bin/sh
.
That you have $SHELL
set to bash is irrelevant, each script is executed by the shell indicated on the first line (the shebang, here #!/bin/sh
). I've had a quick look at the RVM scripts, and it looks like all the ones that rely on bash extensions correctly start with #!/usr/bin/env bash
. Do you have a prior existing ~/.rvm
? If so, try moving it out of the way.
You can get an execution trace for a shell script by running the shell with the -x
option. So run bash -x ./rvm
and see where the error occurs. If the error occurs in a script called indirectly from the main rvm
script, try adding set -x
in the other scripts as well (immediately below the #!
line), to see an execution trace for them. This should help locate the offending script.
Related videos on Youtube
jasonwryan
Updated on September 18, 2022Comments
-
jasonwryan over 1 year
I'm running TinyCore Linux and when I tried to install RVM (needed a portable linux distro for QA Automation) I keep getting an error
sh: syntax error:unexpected redirection
.I am unsure why I am getting this error since the
echo $SHELL
command returns BASH.Any ideas on how I could get this working or get more details on the issue?
-
Admin over 12 yearsSome more detail on what commands you ran, how far they got, etc. might be useful.
-
Admin over 12 years@karpie Unfortunately, that is as far as it got once I typed in the command: bash < <(curl -s rvm.beginrescueend.com/install/rvm)
-