Last active
February 24, 2025 04:23
-
-
Save kevupton/fde6c7075c507c193615ca7fc913f4e1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Exit on error | |
| set -e | |
| echo "π Setting up Linux environment for React Native development..." | |
| # Update package lists | |
| echo "π¦ Updating package lists..." | |
| sudo apt-get update | |
| # Install basic dependencies | |
| echo "π Installing basic dependencies..." | |
| sudo apt-get install -y \ | |
| curl \ | |
| git \ | |
| wget \ | |
| unzip \ | |
| zip \ | |
| build-essential \ | |
| gcc \ | |
| g++ \ | |
| make \ | |
| python3 \ | |
| libtool \ | |
| autoconf \ | |
| pkg-config \ | |
| libssl-dev | |
| # Install Node.js LTS | |
| echo "π’ Installing Node.js LTS..." | |
| curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - | |
| sudo apt-get install -y nodejs | |
| # Install pnpm | |
| echo "π¦ Installing pnpm..." | |
| curl -fsSL https://get.pnpm.io/install.sh | sh - | |
| source ~/.bashrc | |
| # Install OpenJDK 17 | |
| echo "β Installing OpenJDK 17..." | |
| sudo apt-get install -y openjdk-17-jdk | |
| export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 | |
| echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> ~/.bashrc | |
| # Install Android Studio dependencies | |
| echo "π€ Installing Android Studio dependencies..." | |
| sudo apt-get install -y \ | |
| libc6:i386 \ | |
| libncurses5:i386 \ | |
| libstdc++6:i386 \ | |
| lib32z1 \ | |
| libbz2-1.0:i386 | |
| # Download and install Android Command Line Tools | |
| echo "π± Installing Android Command Line Tools..." | |
| ANDROID_HOME="/usr/local/android-sdk" | |
| sudo mkdir -p $ANDROID_HOME | |
| sudo chown $USER:$USER $ANDROID_HOME | |
| CMDLINE_TOOLS_URL="https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip" | |
| CMDLINE_TOOLS_ZIP="commandlinetools.zip" | |
| wget -O $CMDLINE_TOOLS_ZIP $CMDLINE_TOOLS_URL | |
| unzip -q $CMDLINE_TOOLS_ZIP -d $ANDROID_HOME | |
| rm $CMDLINE_TOOLS_ZIP | |
| # Rename and organize cmdline-tools directory structure as required by Android SDK | |
| mkdir -p "$ANDROID_HOME/cmdline-tools/latest" | |
| mv $ANDROID_HOME/cmdline-tools/* "$ANDROID_HOME/cmdline-tools/latest" 2>/dev/null || true | |
| # Set up Android SDK environment variables | |
| echo "π§ Setting up Android SDK environment variables..." | |
| echo "export ANDROID_HOME=/usr/local/android-sdk" >> ~/.bashrc | |
| echo "export PATH=\$PATH:\$ANDROID_HOME/cmdline-tools/latest/bin" >> ~/.bashrc | |
| echo "export PATH=\$PATH:\$ANDROID_HOME/platform-tools" >> ~/.bashrc | |
| # Source the updated environment | |
| source ~/.bashrc | |
| # Install Android SDK packages | |
| echo "π² Installing Android SDK packages..." | |
| yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses | |
| $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.0" | |
| # Install Watchman | |
| echo "π Installing Watchman..." | |
| sudo apt-get install -y watchman | |
| # Install React Native CLI globally using pnpm | |
| echo "βοΈ Installing React Native CLI..." | |
| pnpm add -g react-native-cli | |
| echo "β Setup completed successfully!" | |
| echo "π Your Linux environment is now ready for React Native development!" | |
| echo " | |
| Please make sure to: | |
| 1. Restart your terminal or run 'source ~/.bashrc' | |
| 2. Install Android Studio manually if you need the IDE | |
| 3. Configure your device or emulator for testing | |
| " |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment