[campsite-support] campsite-backup-instance fails, popd & pushd not in shell
  • Hi

    It fails with the following error:
    * Creating tarball...sh: pushd: not found
    sh: popd: not found

    ERROR!
    Unable to create temporary archive.
    You may not have the right to write to the current directory.
    Please set the current directory to a location where you have
    the right to write.


    As pushd and popd are builtins in ksh and bash but not in sh they cant
    be found when sh is used as shell. Question is, how do I make php use
    bash instead of sh for @exec? And can it be fixed in the campsite source
    instead of in the php configs?

    --
    Erik Dal
  • 12 Comments sorted by
  • On FreeBSD I use the external variants, which are default part of OS.
    I have no idea what OS are you running.

    Ondra

    On Fri, 2006-07-28 at 17:37 +0200, Erik Dal
  • I'm using Ubuntu edgy eft

    btw, the suggestion in the error message that the permissions is wrong
    is a bit silly as it has already written tons of stuff by that time.

    Ondra Koutek wrote:
    > On FreeBSD I use the external variants, which are default part of OS.
    > I have no idea what OS are you running.
    >
    > Ondra
    >
    > On Fri, 2006-07-28 at 17:37 +0200, Erik Dal
  • What Campsite version are you using? I couldn't find any "#!/bin/sh" tag in install scripts.

    Mugur

    Erik Dal�n wrote:Hi

    It fails with the following error:
    * Creating tarball...sh: pushd: not found
    sh: popd: not found

    ERROR!
    Unable to create temporary archive.
    You may not have the right to write to the current directory.
    Please set the current directory to a location where you have
    the right to write.


    As pushd and popd are builtins in ksh and bash but not in sh they cant
    be found when sh is used as shell. Question is, how do I make php use
    bash instead of sh for @exec? And can it be fixed in the campsite source
    instead of in the php configs?

    --
    Erik Dal�n



    ---------------------------------
    See the all-new, redesigned Yahoo.com. Check it out.
  • 2.6

    It's php that uses /bin/sh to execute @exec() calls.

    Mugur Rus wrote:
    > What Campsite version are you using? I couldn't find any "#!/bin/sh" tag in install scripts.
    >
    > Mugur
    >
    > Erik Dal�n wrote:Hi
    >
    > It fails with the following error:
    > * Creating tarball...sh: pushd: not found
    > sh: popd: not found
    >
    > ERROR!
    > Unable to create temporary archive.
    > You may not have the right to write to the current directory.
    > Please set the current directory to a location where you have
    > the right to write.
    >
    >
    > As pushd and popd are builtins in ksh and bash but not in sh they cant
    > be found when sh is used as shell. Question is, how do I make php use
    > bash instead of sh for @exec? And can it be fixed in the campsite source
    > instead of in the php configs?
    >
    > --
    > Erik Dal�n
    >
    >
    >
    > ---------------------------------
    > See the all-new, redesigned Yahoo.com. Check it out.
  • We're using exec() PHP function to run these commands, I don't know if you can configure the PHP module what shell to run. But I didn't have any problem with this before, even in FreeBSD it works ok. Try the following:
    - rename /bin/sh to /bin/sh.bak
    - create a symbolic link to /bin/bash: ln -s /bin/bash /bin/sh

    Regards,
    Mugur

    Erik Dal
  • As I already wrote before, on FreeBSD I searched for external tools and
    patched the campsite sources.
    I would recommend this way of fixing and not to replace sh with bash. On
    most linux distribution the default shell is bash, but for example on
    FreeBSD this step might cause a huge problems on OS basic scripts (rc
    scripts and others) because those use standard sh.

    Therefore be carefull about the suggested solution and rather change
    campsite sources to suit your system, than to make your system to suit
    campsite.

    Ondra

    On Sun, 2006-07-30 at 09:43 -0700, Mugur Rus wrote:
    > We're using exec() PHP function to run these commands, I don't know if
    > you can configure the PHP module what shell to run. But I didn't have
    > any problem with this before, even in FreeBSD it works ok. Try the
    > following:
    > - rename /bin/sh to /bin/sh.bak
    > - create a symbolic link to /bin/bash: ln -s /bin/bash /bin/sh
    >
    > Regards,
    > Mugur
    >
    > Erik Dal
  • Ondra, can you provide a patch to fix this issue?


    Ondra Koutek wrote: As I already wrote before, on FreeBSD I searched for external tools and
    patched the campsite sources.
    I would recommend this way of fixing and not to replace sh with bash. On
    most linux distribution the default shell is bash, but for example on
    FreeBSD this step might cause a huge problems on OS basic scripts (rc
    scripts and others) because those use standard sh.

    Therefore be carefull about the suggested solution and rather change
    campsite sources to suit your system, than to make your system to suit
    campsite.

    Ondra

    On Sun, 2006-07-30 at 09:43 -0700, Mugur Rus wrote:
    > We're using exec() PHP function to run these commands, I don't know if
    > you can configure the PHP module what shell to run. But I didn't have
    > any problem with this before, even in FreeBSD it works ok. Try the
    > following:
    > - rename /bin/sh to /bin/sh.bak
    > - create a symbolic link to /bin/bash: ln -s /bin/bash /bin/sh
    >
    > Regards,
    > Mugur
    >
    > Erik Dal
  • It is a pitty I cannot, as I do not use patch in fact, but FreeBSD port
    has its own method for find/replace strings and I used this. I sent you
    all I know by yahoo messenget though.

    Ondra

    On Sun, 2006-07-30 at 10:13 -0700, Mugur Rus wrote:
    > Ondra, can you provide a patch to fix this issue?
    >
    >
    > Ondra Koutek wrote:
    > As I already wrote before, on FreeBSD I searched for external
    > tools and
    > patched the campsite sources.
    > I would recommend this way of fixing and not to replace sh
    > with bash. On
    > most linux distribution the default shell is bash, but for
    > example on
    > FreeBSD this step might cause a huge problems on OS basic
    > scripts (rc
    > scripts and others) because those use standard sh.
    >
    > Therefore be carefull about the suggested solution and rather
    > change
    > campsite sources to suit your system, than to make your system
    > to suit
    > campsite.
    >
    > Ondra
    >
    > On Sun, 2006-07-30 at 09:43 -0700, Mugur Rus wrote:
    > > We're using exec() PHP function to run these commands, I
    > don't know if
    > > you can configure the PHP module what shell to run. But I
    > didn't have
    > > any problem with this before, even in FreeBSD it works ok.
    > Try the
    > > following:
    > > - rename /bin/sh to /bin/sh.bak
    > > - create a symbolic link to /bin/bash: ln
    > -s /bin/bash /bin/sh
    > >
    > > Regards,
    > > Mugur
    > >
    > > Erik Dalén wrote:
    > > 2.6
    > >
    > > It's php that uses /bin/sh to execute @exec() calls.
    > >
    > > Mugur Rus wrote:
    > > > What Campsite version are you using? I couldn't find any
    > > "#!/bin/sh" tag in install scripts.
    > > >
    > > > Mugur
    > > >
    > > > Erik Dal�n wrote:Hi
    > > >
    > > > It fails with the following error:
    > > > * Creating tarball...sh: pushd: not found
    > > > sh: popd: not found
    > > >
    > > > ERROR!
    > > > Unable to create temporary archive.
    > > > You may not have the right to write to the current
    > > directory.
    > > > Please set the current directory to a location where you
    > > have
    > > > the right to write.
    > > >
    > > >
    > > > As pushd and popd are builtins in ksh and bash but not in
    > sh
    > > they cant
    > > > be found when sh is used as shell. Question is, how do I
    > > make php use
    > > > bash instead of sh for @exec? And can it be fixed in the
    > > campsite source
    > > > instead of in the php configs?
    > > >
    > > > --
    > > > Erik Dal�n
    > > >
    > > >
    > > >
    > > > ---------------------------------
    > > > See the all-new, redesigned Yahoo.com. Check it out.
    > >
    > >
    > >
    > >
    > >
    > >
    > ______________________________________________________________________
    > > Do you Yahoo!?
    > > Get on board. You're invited to try the new Yahoo! Mail
    > Beta.
    >
    >
    >
    >
    >
    > ______________________________________________________________________
    > How low will we go? Check out Yahoo! Messenger’s low PC-to-Phone call
    > rates.
  • thanks, this worked. I hope it will be included in the next version.

    Mugur Rus wrote:
    > Hi Erik,
    >
    > Please install the attached scripts (campsite-restore-instance.php and
    > cli_script_lib.php) into the campsite bin directory (by default
    > /usr/local/campsite/bin). It should fix your problem.
    >
    > Regards,
    > Mugur
    >
    > */Erik Dal
  • Yes, it will be in 2.6.1.

    On 8/10/06, Erik Dal
  • of course

    --- Erik Dal