pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Bootstrapping pkgsrc on Android, was: Can anybody come with a creative solution to the "/bin/sh: bad interpreter" problem?



On Fri, Jan 27, 2017 at 11:48:16PM +0000, Ottavio Caruso wrote:
> On Thursday, 26 January 2017, Ottavio Caruso <ottavio2006-netbsd%yahoo.com@localhost>
> wrote:
> 
> > Hi all,
> >
> > I've been away from pkgsrc and all things Netbsd for a while.
> >
> > I've always toyed with the idea of bootstrapping pkgsrc on my Nexus 7
> > (Android 6.1) and I decided to give it a go.
> >
> > Ive installed the excellent Termux app:
> > https://termux.com/
> >
> > Installed a bunch of packages from the built in package manager apt,
> > finally downloaded pkgsrc via CVS and then proceeded to bootstrap.
> >
> > This is where problems start.
> >
> > Most, if not all, pkgsrc scripta are simple shell scripts that start with
> > the canonical shebang:
> > #! /bin/sh
> >
> > The Android filesystem is a non standard Linux-like filesystem where most
> > executables reside in /system/bin.
> >
> > Termux adds a bunch of its own executables in
> > /data/data/com.termux/files/usr/bin.
> >
> > The /bin directory does not exist and cannot be created unless one roots
> > the device, which I'm not willing to do yet. As a consequence one cannot
> > create a link to /bin/sh.
> >
> >
> >
> OK, a little update.
> 
> I'm getting a partial positive result to the above mentioned problem.
> 
> What I have done is:
> 
> export CONFIG_SHELL=/data/data/com.termux/files/usr/bin/bash
> export SH=/data/data/com.termux/files/usr/bin/bash
> bash bootstrap --unprivileged
> 
> I'm not sure which one of the lines have done the job, probably $
> CONFIG_SHELL.

In my case, both were required, although I’ve set them to /system/bin/sh.

> So, now configure starts and it fails at:
> 
> configure: creating cache config.cache
> checking build system type... mkdir: cannot create directory
> '/tmp/cg8478-32379': No such file or directory
> mkdir: cannot create directory '/tmp/cg-8478': No such file or directory
> config.guess: cannot create a temporary directory in /tmp
> configure: error: cannot guess build type; you must specify one
> ===> exited with status 1
> aborted.
> 
> So, probably I'd have to create a variable pointing to a temp directory
> within my permissions.
> 
> Any help is appreciated.

For me, the following has helped:
export TMPDIR="$(dirname "$(mktemp -u)")"

Good luck!

-- 
Mateusz Poszwa


Home | Main Index | Thread Index | Old Index