/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

Description:

As suggested by the docs, I uninstalled global react-native-cli, and use npx instead.
I encounter this error when running :
npx react-native init AwesomeProject
as the error suggests, I run
cd ./AwesomeProject/ios && pod install
But still get the same error during installation of glog as follow:

/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

React Native version:

Run `react-native info` in your terminal and copy the results here.

bash: react-native: command not found

Steps To Reproduce

  1. brew install node
  2. brew install watchman
  3. sudo gem install cocoapods -n /usr/local/bin
  4. npx react-native init AwesomeProject

Expected Results

An error during Installing glog (0.3.5).

Installing glog (0.3.5)
[!] /bin/bash -c
set -e
#!/bin/bash

Copyright (c) Facebook, Inc. and its affiliates.

This source code is licensed under the MIT license found in the

LICENSE file in the root directory of this source tree.

set -e

PLATFORM_NAME=”${PLATFORM_NAME:-iphoneos}”
CURRENT_ARCH=”${CURRENT_ARCH}”

if [ -z “$CURRENT_ARCH” ] || [ “$CURRENT_ARCH” == “undefined_arch” ]; then
# Xcode 10 beta sets CURRENT_ARCH to “undefined_arch”, this leads to incorrect linker arg.
# it’s better to rely on platform name as fallback because architecture differs between simulator and device

if [[ "$PLATFORM_NAME" == *"simulator"* ]]; then
    CURRENT_ARCH="x86_64"
else
    CURRENT_ARCH="armv7"
fi

fi

export CC=”$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME –show-sdk-path)”
export CXX=”$CC”

Remove automake symlink if it exists

if [ -h “test-driver” ]; then
rm test-driver
fi

./configure –host arm-apple-darwin

Fix build for tvOS

cat << EOF >> src/config.h

/* Add in so we have Apple Target Conditionals */
#ifdef APPLE
#include <TargetConditionals.h>
#include <Availability.h>
#endif

/* Special configuration for AppleTVOS */
#if TARGET_OS_TV
#undef HAVE_SYSCALL_H
#undef HAVE_SYS_SYSCALL_H
#undef OS_MACOSX
#endif

/* Special configuration for ucontext */
#undef HAVE_UCONTEXT_H
#undef PC_FROM_UCONTEXT
#if defined(x86_64)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
#elif defined(i386)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
#endif
EOF

Prepare exported header include

EXPORTED_INCLUDE_DIR=”exported/glog”
mkdir -p exported/glog
cp -f src/glog/log_severity.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/raw_logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/stl_logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/vlog_is_on.h “$EXPORTED_INCLUDE_DIR/”

/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

4 thoughts on “/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

  1. hat tip to elpardo farther down in this thread

    • check your git’s global autocrlf setting
      • git config --global core.autocrlf
      • repository one doesn’t matter for this issue (my repo setting was right but my global one was wrong)
    • if it isn’t already, set it to input on macOS (false also works, see documentation link below)
      • git config --global --add core.autocrlf input

    git’s core.autocrlf documentation

    Hacky workaround spoilered to avoid misleading

    used these instructions a couple of days ago after reading a few dozen comments across several threads
    for convenience, most lines can be triple clicked to copy/paste
    assumed you are comfortable editing in `vi`, if not, you’ll need to adjust as necessary

    on ios

    • starting from RN project root
    • vi node_modules/react-native/scripts/ios-configure-glog.sh
      • :w ++ff=mac
        • saves in mac line endings
    • vi node_modules/react-native/scripts/ios-install-third-party.sh
      • replace SCRIPTDIR=$(dirname "$0") with
        • SCRIPTDIR=$(pwd)/$(dirname "$0")
      • replace fetch_and_unpack glog-0.3.5.tar.gz https://github.com/google/glog/archive/v0.3.5.tar.gz 61067502c5f9769d111ea1ee3f74e6ddf0a5f9cc "\"$SCRIPTDIR/ios-configure-glog.sh\"" with
        • fetch_and_unpack glog-0.3.5.tar.gz https://github.com/google/glog/archive/v0.3.5.tar.gz 61067502c5f9769d111ea1ee3f74e6ddf0a5f9cc "sh \"$SCRIPTDIR/ios-configure-glog.sh\""
      • :wq
    • cd node_modules/react-native/scripts/ && ./ios-install-third-party.sh
    • cd third-party/ && cd glog-0.3.5/src && ./configure && ./make && cd ../..
    • cp -a glog-0.3.5/src/. ../../../../ios/Pods/glog/src/ && cp -a folly-2018.10.22.00/folly/. ../../../../ios/Pods/Folly/folly
    • cd ../../../../ios && pod update
  2. I started experiencing the above issue a few weeks ago, wanted to post on here as I narrowed it down to a git config change I made on OSX.
    Prior to this change I hadn’t experienced a blog pod install issue, and reverting to earlier commits which had built fine exhibited the same issue.
    In global git I had changed autocrlf to true. Removing this config line entirely meant RN 0.61.5 and glog 0.3.4 built and installed without an issue again.
    Hope this helps someone else!

  3. Pingback: Regression Testing
  4. Pingback: 메이저놀이터

/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

Description:

As suggested by the docs, I uninstalled global react-native-cli, and use npx instead.
I encounter this error when running :
npx react-native init AwesomeProject
as the error suggests, I run
cd ./AwesomeProject/ios && pod install
But still get the same error during installation of glog as follow:

/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

React Native version:

Run `react-native info` in your terminal and copy the results here.

bash: react-native: command not found

Steps To Reproduce

  1. brew install node
  2. brew install watchman
  3. sudo gem install cocoapods -n /usr/local/bin
  4. npx react-native init AwesomeProject

Expected Results

An error during Installing glog (0.3.5).

Installing glog (0.3.5)
[!] /bin/bash -c
set -e
#!/bin/bash

Copyright (c) Facebook, Inc. and its affiliates.

This source code is licensed under the MIT license found in the

LICENSE file in the root directory of this source tree.

set -e

PLATFORM_NAME=”${PLATFORM_NAME:-iphoneos}”
CURRENT_ARCH=”${CURRENT_ARCH}”

if [ -z “$CURRENT_ARCH” ] || [ “$CURRENT_ARCH” == “undefined_arch” ]; then
# Xcode 10 beta sets CURRENT_ARCH to “undefined_arch”, this leads to incorrect linker arg.
# it’s better to rely on platform name as fallback because architecture differs between simulator and device

if [[ "$PLATFORM_NAME" == *"simulator"* ]]; then
    CURRENT_ARCH="x86_64"
else
    CURRENT_ARCH="armv7"
fi

fi

export CC=”$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME –show-sdk-path)”
export CXX=”$CC”

Remove automake symlink if it exists

if [ -h “test-driver” ]; then
rm test-driver
fi

./configure –host arm-apple-darwin

Fix build for tvOS

cat << EOF >> src/config.h

/* Add in so we have Apple Target Conditionals */
#ifdef APPLE
#include <TargetConditionals.h>
#include <Availability.h>
#endif

/* Special configuration for AppleTVOS */
#if TARGET_OS_TV
#undef HAVE_SYSCALL_H
#undef HAVE_SYS_SYSCALL_H
#undef OS_MACOSX
#endif

/* Special configuration for ucontext */
#undef HAVE_UCONTEXT_H
#undef PC_FROM_UCONTEXT
#if defined(x86_64)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
#elif defined(i386)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
#endif
EOF

Prepare exported header include

EXPORTED_INCLUDE_DIR=”exported/glog”
mkdir -p exported/glog
cp -f src/glog/log_severity.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/raw_logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/stl_logging.h “$EXPORTED_INCLUDE_DIR/”
cp -f src/glog/vlog_is_on.h “$EXPORTED_INCLUDE_DIR/”

/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

2 thoughts on “/bin/bash: ./configure: /bin/sh^M: bad interpreter: No such file or directory

  1. hat tip to elpardo farther down in this thread

    check your git’s global autocrlf setting
    git config –global core.autocrlf
    repository one doesn’t matter for this issue (my repo setting was right but my global one was wrong)
    if it isn’t already, set it to input on macOS (false also works, see documentation link below)
    git config –global –add core.autocrlf input
    git’s core.autocrlf documentation

    Hacky workaround spoilered to avoid misleading
    used these instructions a couple of days ago after reading a few dozen comments across several threads for convenience, most lines can be triple clicked to copy/paste assumed you are comfortable editing in `vi`, if not, you’ll need to adjust as necessary
    on ios

    starting from RN project root
    vi node_modules/react-native/scripts/ios-configure-glog.sh
    :w ++ff=mac
    saves in mac line endings
    vi node_modules/react-native/scripts/ios-install-third-party.sh
    replace SCRIPTDIR=$(dirname “$0”) with
    SCRIPTDIR=$(pwd)/$(dirname “$0”)
    replace fetch_and_unpack glog-0.3.5.tar.gz https://github.com/google/glog/archive/v0.3.5.tar.gz 61067502c5f9769d111ea1ee3f74e6ddf0a5f9cc “\”$SCRIPTDIR/ios-configure-glog.sh\”” with
    fetch_and_unpack glog-0.3.5.tar.gz https://github.com/google/glog/archive/v0.3.5.tar.gz 61067502c5f9769d111ea1ee3f74e6ddf0a5f9cc “sh \”$SCRIPTDIR/ios-configure-glog.sh\””
    :wq
    cd node_modules/react-native/scripts/ && ./ios-install-third-party.sh
    cd third-party/ && cd glog-0.3.5/src && ./configure && ./make && cd ../..
    cp -a glog-0.3.5/src/. ../../../../ios/Pods/glog/src/ && cp -a folly-2018.10.22.00/folly/. ../../../../ios/Pods/Folly/folly
    cd ../../../../ios && pod update

  2. I started experiencing the above issue a few weeks ago, wanted to post on here as I narrowed it down to a git config change I made on OSX.
    Prior to this change I hadn’t experienced a blog pod install issue, and reverting to earlier commits which had built fine exhibited the same issue.
    In global git I had changed autocrlf to true. Removing this config line entirely meant RN 0.61.5 and glog 0.3.4 built and installed without an issue again.
    Hope this helps someone else!