Date: Tue, 30 Oct 2007 13:39:12 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: Stephen Allen <p0036343@brookes.ac.uk> Cc: freebsd-questions@freebsd.org Subject: Re: Dangers of using a non-base shell Message-ID: <20071030113912.GB3941@kobe.laptop> In-Reply-To: <472647A0.3030009@brookes.ac.uk> References: <472647A0.3030009@brookes.ac.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2007-10-29 20:50, Stephen Allen <p0036343@brookes.ac.uk> wrote: > It's been drawn to my attention not to use bash from the ports > collection, because if one of it's dependencies (gettext or libiconv) > fails or is updated significantly, it could break, and prevent > login. The suggested solution was to use a base shell (such as sh) and > append 'bash -l' to .shrc to automatically enter bash. > > The quite annoying side-effect is having to type 'exit' twice to get > out of a su shell or screen. > > Would it be a better idea to use the pre-compiled binary for bash? > And if I did so, could I be alerted to updates as easy as using > 'pkg_version -v' when checking if any ports need updating? I've been using the following for some time: keramida> su - Password: ******** root# exec env SHELL=/usr/local/bin/bash bash -l The same trick works with s/bash/mksh/ or s/bash/pdksh/, as far as I can tell, and tcsh's history mechanism makes it easy to run the same command later. All I have to type is "exec " and hit the arrow-up key :) The env(1) trick makes sure that sub-shells use bash(1) too, and 'exec' reduces the number of 'exit' commands I have to type. Now, if there's a problem with bash(1), I will probably have to su again, but that's less trouble than being locked out because gettext has broken, the *default* root shell is bash and _that_ fails all the time. - Giorgos
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071030113912.GB3941>