Git Product home page Git Product logo

postinstall's Introduction

postinstall.sh

ShellCheck Ubuntu 20.04 LTS

Bash Script to automate post-installation steps. Helps to install packages on different operating systems:

  • Alpine Linux
  • Android (Termux)
  • Apple macOS
  • Arch Linux
  • CentOS
  • Debian
  • Fedora
  • FreeBSD
  • Haiku
  • Mageia
  • NetBSD
  • OpenBSD
  • OpenWRT
  • Puppy
  • RedHat
  • RockyLinux
  • Slackware
  • SUSE
  • Ubuntu
  • Windows (Cygwin)

Overview

postinstall.sh is simple bash shell script which in turn generates scripts. The generation depends on the operating system and type of installation. The templates that are included in the generation can be stored in the file system or on a web server. This can also be your GitHub repository. Just fork this repository and edit it according to your needs.

postinstall.sh is not a configuration management system. If you want to install many servers automatically, you should look at ansible. But if you want to quickly reinstall your laptop or Raspberry Pi, postinstall.sh can help you.

Please check the Wiki for more information.

Installation

Download:

curl -O "https://raw.githubusercontent.com/Cyclenerd/postinstall/master/postinstall.sh"

Alternative download with short URL:

curl -fL http://bit.ly/get_postinstall -o postinstall.sh

Create a package lists and scripts as explained in this repository or in the Wiki.

Example:

mkdir install
cd install
vi packages.list

Run as root:

bash postinstall.sh -b install

Usage

Usage: postinstall.sh [-t <TYPE>] [-b <BASE>] [-h]:
        [-t <TYPE>]      sets the type of installation (default: server)
        [-b <BASE>]      sets the base url or dir (default: https://raw.githubusercontent.com/Cyclenerd/postinstall/master/base)
        [-h]             displays help (this message)

Example: postinstall.sh or postinstall.sh -t workstation

Screenshot

WSL

Program Flow

  • Determine operating system and architecture
  • Check package manager and requirements
  • Generate script to run before and after installation and list of packages to install
  • Install packages

Requirements

Only bash, curl, tput (ncurses-utils) and a package manager for the respective operating system:

  • Alpine Linux โ†’ apk
  • Apple macOS โ†’ port or brew
  • Arch Linux โ†’ pacman
  • Cygwin โ†’ apt-cyg
  • Debian / Ubuntu โ†’ apt-get
  • FreeBSD โ†’ pkg
  • Haiku โ†’ pkgman
  • Mageia โ†’ urpmi
  • NetBSD โ†’ pkg_add
  • OpenBSD โ†’ pkg_add
  • OpenWRT โ†’ opkg
  • Puppy โ†’ pkg (https://gitlab.com/sc0ttj/Pkg)
  • Red Hat / Fedora / CentOS โ†’ dnf or yum
  • Slackware โ†’ slackpkg
  • SUSE / openSUSE โ†’ zypper
  • Termux โ†’ pkg

TODO

  • More and better documentation
  • Support for even more operating systems and package managers

Help is welcome ๐Ÿ‘

License

GNU Public License version 3. Please feel free to fork and modify this on GitHub (https://github.com/Cyclenerd/postinstall).

postinstall's People

Contributors

cyclenerd avatar islander avatar mano3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

postinstall's Issues

Support for Mageia

Detect and support Mageia Linux distribution with urpmi package manager.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.