Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
bunyaminergen committed Sep 25, 2023
0 parents commit fa72989
Show file tree
Hide file tree
Showing 2 changed files with 169 additions and 0 deletions.
105 changes: 105 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
64 changes: 64 additions & 0 deletions setup.sh
Original file line number Diff line number Diff line change
@@ -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!"

0 comments on commit fa72989

Please sign in to comment.