react-native: /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
- brew install node
- brew install watchman
- sudo gem install cocoapods -n /usr/local/bin
- 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 © 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
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 22
hat tip to elpardo farther down in this thread
git config --global core.autocrlf
input
on macOS (false
also works, see documentation link below)git config --global --add core.autocrlf input
git’s
core
.autocrlf
documentationHacky 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 necessaryon ios
vi node_modules/react-native/scripts/ios-configure-glog.sh
:w ++ff=mac
vi node_modules/react-native/scripts/ios-install-third-party.sh
SCRIPTDIR=$(dirname "$0")
withSCRIPTDIR=$(pwd)/$(dirname "$0")
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\""
withfetch_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
git config --global core.autocrlf input solve for mac https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings
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!
@ASaputra2019 open the file node_modules/react-native/scripts/ios-configure-glog.sh in Sublime Text editor, change the line endings with View > Line Endings > Mac OS 9, save and try pod install, it works. Note: It doesn’t works when you change to Unix line endings so must to Mac OS 9 in sublime text or some equivalent mac line ending from other tools.