diff --git a/README.md b/README.md new file mode 100644 index 0000000..731195a --- /dev/null +++ b/README.md @@ -0,0 +1,105 @@ +# Setup Script for Linux Machines + +This setup script automates the installation of various packages and tools on a Linux machine. The script must be run as the root user. + +## Pre-requisites + +- A Linux machine with `apt` package management (Ubuntu, Debian, etc.) +- Root access to the machine + +## How to Use + +1. Download the `setup.sh` script to your machine. +2. Open a terminal and navigate to the directory where `setup.sh` is located. +3. Make the script executable: + ```bash + chmod +x setup.sh + ``` +4. Run the script as root: + ```bash + sudo ./setup.sh + ``` + +### If Using a Remote or Cloud Linux Machine + +To copy the script to a remote machine, execute the following: + +```bash +scp -i "path/to/your.pem" "path/to/setup.sh" username@remote_address:/path/to/remote/directory +``` + +To SSH into the remote machine: + +```bash +ssh -i "path/to/your.pem" username@remote_address +``` + +Then execute the following commands to run the script: + +```bash +chmod +x setup.sh +sudo ./setup.sh +``` + +## What Does The Script Do? + +- Checks if the script is being run as root +- Updates package lists +- Upgrades existing packages +- Installs basic build tools like compilers, curl, wget, git, vim, etc. +- Installs Python3, pip, and Python's `venv` module +- Installs various Python packages and libraries for data science, machine learning, and deep learning +- Installs Node.js +- Installs OpenJDK 11 (Java) +- Installs Docker +- Installs MySQL and PostgreSQL clients +- Installs additional tools like `tree` and `ncdu` + +## Packages and Tools Installed + +### Basic Build Tools + +- build-essential +- curl +- wget +- git +- vim +- tmux +- htop +- unzip + +### Python and Data Science Tools + +- python3 +- python3-pip +- python3-venv +- numpy +- pandas +- matplotlib +- scikit-learn + +### Additional Python Packages for ML and DL + +- tensorflow +- keras +- pytorch +- scikit-image +- opencv-python +- jupyterlab +- seaborn +- plotly +- xgboost +- lightgbm +- nltk +- spacy +- gensim + +### Other Tools + +- Node.js +- OpenJDK 11 +- Docker +- MySQL client +- PostgreSQL client +- tree +- ncdu diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..65f3a12 --- /dev/null +++ b/setup.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +# Check if the script is run as root +if [[ $EUID -ne 0 ]]; then + echo "This script must be run as root" + exit 1 +fi + +# Update package lists +echo "Updating package lists..." +apt update + +# Upgrade existing packages +echo "Upgrading existing packages..." +apt upgrade -y + +# Install basic build tools +echo "Installing basic build tools..." +apt install -y build-essential curl wget git vim tmux htop unzip + +# Install Python and pip +echo "Installing Python3 and pip..." +apt install -y python3 python3-pip python3-venv + +# Install Python dev tools and libraries +echo "Installing Python dev tools..." +pip3 install numpy pandas matplotlib scikit-learn + +# Install additional Python packages for ML and DL +echo "Installing additional Python packages for machine learning and deep learning..." +pip3 install tensorflow keras pytorch scikit-image opencv-python jupyterlab seaborn plotly xgboost lightgbm nltk spacy gensim + +# Install Node.js +echo "Installing Node.js..." +curl -fsSL https://deb.nodesource.com/setup_16.x | bash - +apt install -y nodejs + +# Install Java +echo "Installing Java..." +apt install -y openjdk-11-jdk + +# Install Docker +echo "Installing Docker..." +apt install -y apt-transport-https ca-certificates curl software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - +add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +apt update +apt install -y docker-ce + +# Install MySQL client +echo "Installing MySQL client..." +apt install -y mysql-client + +# Install PostgreSQL client +echo "Installing PostgreSQL client..." +apt install -y postgresql-client + +# Install additional useful tools +echo "Installing additional useful tools..." +apt install -y tree ncdu + +# Complete +echo "Setup completed!" +