DroboApp announcement: bash 4.2-042 for both FS and 5N

Here’s the latest version of bash for both the DroboFS and the Drobo5N.

This is basically the same as the previous version (4.2-037), just with the latest patches included. The only major thing is, of course, that this is the first publicly available DroboApp for the 5N.

You can find the TGZs here:

  1. DroboFS: http://www.droboports.com/app-repository/bash-4-2-042/drobofs
  2. Drobo5N: http://www.droboports.com/app-repository/bash-4-2-042/drobo5n

I’m taking this opportunity to overhaul the DroboPorts site. The “main” page for the DroboApp will contain the nitty gritty compilation and packaging details (in this case http://www.droboports.com/app-repository/bash-4-2-042 ), and there will be subpages with installation instructions for each platform, as you can see above.

Feedback is very welcome.

Awesome work, Ricardo.

I’m wondering if going forward, we should be using /mnt/DroboNAS when using absolute paths, as this will work for migrated and native disk packs…I always wondered why that symlink was there, and now it makes sense!

That is an excellent question. It remains to be seen whether in a native Drobo5N diskpack the DroboNAS symlink will point to the proper location.

EDIT: Ack! It was running /bin/bash, which is failing - not the DroboPort bash. First off it’s off because I thought my $PATH was set to keep DroboApp paths prioritized, and secondly it’s odd because - well, why wouldn’t the built-in “bash” work? I also noticed the built-in isn’t a symlink to busybox as I expected, but rather a full-on binary. Just one that doesn’t appear to work.

FYI, I tried out the new Drobo5N bash… and unfortunately ran into the same error as before. Since you’re not seeing it, I’m wondering what’s different about my unit from yours.

[code]jochs@mini ~ $ ssh drobo
$ sudo LD_LIBRARY_PATH="$LD_LIBRARY_PATH" su && sleep 1 && exit
$ cd /mnt/DroboFS/Shares/DroboApps/
$ DroboApps.sh install
Installing /mnt/DroboFS/Shares/DroboApps/bash.tgz.
$ exit
Connection to drobo closed.

jochs@mini ~ $ ssh drobo
$ bash
bash: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
$ [/code]

Yup, you found one of the 5N’s dirty little secrets: it ships with bash, but its version of bash is broken (and larger than my version, yay for proper compiler flags).

That’s just damned bizarre. I no longer worry about replacing it with the DroboPort version, as clearly the Drobo isn’t using it for anything. :slight_smile:

Strangest thing - my normal user’s bash login already has a bunch of aliases defined, and I can’t find them anywhere in either my home directory or anywhere on the DroboApp share. I noticed it today when “ls” failed because it had options not supported by busybox:

alias af='ps af' alias bc='calc -Cd ' alias calc='calc -Cd ' alias cls='clear' alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 ' alias ll='/bin/ls --color=tty -laFh' alias ls='/bin/ls --color=tty -F' alias minicom='minicom -c on' alias ps1='ps faxo "%U %t %p %a" ' alias ps2='ps facux '

sudo-launching bash to a root prompt yields a clean bash environment. For now I worked around it by adding “unalias -a” to my ~/.bashrc. Any idea where these extra aliases could be coming from, if not in my user’s home directory or the DroboApp’s bash files?

EDIT: I found them in “/etc/profile”. Did this exist in firmware 3.0? Any way to prevent bash from processing it?

Yes, they are part of the 5N’s firmware. What I did is rename that file and symlink the etc/profile that ships with the bash DroboApp in its place.

Setting up my new 5n!!! I went ahead and cleared my DroboApps and am reinstalling. Maybe I did not need to, but I figured it could be like rebuilding a computer. I will not bother with installing the apps that I dont really need.

As far as bash goes, what do I need to do to get it to run as the default. I followed the instructions on Droboports, but do I need to copy /etc/passwd to /etc/.passwd so it will not revert on a reboot?

So…what is bash and do I need it?

I love that the droboports webpage list so many useful apps, but I don’t know what most of them do.

hi dragon, if you look at the top-nav

and then for each app listed on the left, it brings up a page all about that app
and each page has an “overview” section (usually a few lines/paragraph to explain a bit about what it does)

might help :)[hr]
(if any such app pages still are not clear what they do, just let ricardo know and am sure he could add a few lines if needed etc)

Looks like it is solved. As I was reinstalling the usenet bundle and dealing with the users and groups, it started using bash as default after one of the restarts. So I guess we are good as far as this goes.

Please don’t take this the wrong way, but I think it needs to be said. The golden rule of the internet when it comes to software is “if you don’t know what it is, don’t install it.”

There is a somewhat twisted reason why I haven’t put too much effort in making people install stuff from DroboPorts. The reason is that the way Drobos are setup, users have way too many ways to screw up their Drobos in pretty severe ways.

In other words: although I take every precaution to make sure that just installing a DroboApp from DroboPorts won’t kill your Drobo, the very presence of some apps enable people to make huge mistakes.

Bash is one of those apps. Bash is a shell interpreter that is very common on Linux-based systems, such as the Drobo. In fact, it is the default interpreter in almost all Debian derivatives (Ubuntu, Mint, etc) and Redhat derivatives (Centos, Scientific, etc). As you can imagine, when people familiar with those operating systems discover that the Drobo also runs Linux, their first thought is to reproduce the environment that they have on their machines.

Unfortunately, the Drobo ships with a limited shell environment called Busybox. There’s nothing intrisincally wrong with Busybox, since its main goal is to provide as much functionality from a standard Linux environment in as little bytes as possible. This means some features get left out.

This is where the Bash DroboApp enters the scene. Although it makes sense for the embedded firmware to ship with Busybox (the flash memory on the Drobo is only 64 MB - Think about it, a whole operating system in less than 64 MB!), there is no reason why once a diskpack is in place that one should have to stay with Busybox. So you can install Bash and have the same work environment as your other Linux machines.

Now, if you have a troubleshooting-oriented mind, you might be thinking “wait a minute, but then what happens if I remove the diskpack where Bash is installed? Won’t that upset the Drobo?” Well, it depends. If you did go the full monty and replaced the default Busybox shell with Bash (and forgot to undo the change before removing the diskpack), then you won’t be able to login over SSH anymore. There are several ways to fix the problem, but you see what I mean. Some apps shouldn’t be installed unless you know exactly what you are doing and why.

To paraphrase an old saying about owning a yacht: “if you have to ask if you need bash, then you don’t need bash.”[hr]

As you should. The Drobo 5N has a lot more resources (CPU, RAM) than the FS, but it is not exactly a rack server. Everyone should just install only the apps they need, under pain of severe performance loss.

You can edit /etc/passwd to make sure that bash is the default shell, and then copy it to /etc/.passwd. Just make sure to have a backup copy of /etc/.passwd somewhere safe just in case.

[quote=“ricardo, post:13, topic:49610”]

Please don’t take this the wrong way, but I think it needs to be said. The golden rule of the internet when it comes to software is “if you don’t know what it is, don’t install it.”[/quote]
I completely agree and follow this practice.

Is there any way to set timezone with this? I’ve dug and dug, but it appears that the Drobo does not come with the standard linux timezones.[hr]
Nevermind! Found a conversation about crond where Ricardo killed it with documentation!

I now have “CST+6CDT,M3.2.0/2,M11.1.0/2” in my profile. Alls well here.

Hello Ricardo, all,

I’m a big fan of droboports and use several of the available apps to breathe new life into my DroboFS.

With the newly reported “Shellshock” bug, is there any plan to recompile bash for drobo with a newer version that fixes this bug?

Thanks in advance!


Sure, it is on the top of my list.

New version up: http://www.drobospace.com/forums/showthread.php?tid=142531

hi ricardo,
is it worth mentioning a quick note on your actual bash page, that it includes the shellshock fix?

Sure thing. I’ll update it accordingly.