#!/usr/bin/env bash # This script will attempt to setup the Linux dependencies for compiling QMK/TMK # This could probably go much lower, but since we are including an Arch vagrant, # making it the first match makes sense if [[ -n "$(type -P pacman )" ]]; then # Arch linux and derivatives like Apricity # Future improvements: # Allow user to speed up package installs using powerpill/wget tweaks # Always run the pacman mirror update script if possible when vagrant comes up # This will ensure that users never get stalled on a horribly slow mirror pacman -Syyu --needed --noconfirm pacman -S --needed --noconfirm \ base-devel \ avr-gcc \ avr-binutils \ avr-libc \ dfu-util elif [[ -n "$(type -P apt-get)" ]]; then # Debian and derivatives # This block performs completely non-interactive updates {{ export DEBIAN_FRONTEND=noninteractive export DEBCONF_NONINTERACTIVE_SEEN=true echo "grub-pc hold" | dpkg --set-selections apt-get -y update apt-get -y --allow-unauthenticated upgrade \ -o Dpkg::Options::="--force-confdef" \ -o Dpkg::Options::="--force-confold" # }} apt-get install -y \ build-essential \ gcc \ unzip \ wget \ zip \ gcc-avr \ binutils-avr \ avr-libc \ dfu-util elif [[ -n "$(type -P yum)" ]]; then # Fedora, CentOS or RHEL and derivatives yum -y makecache && yum -y update yum -y install \ gcc \ glibc-headers \ kernel-devel \ kernel-headers \ make \ perl \ git \ wget \ avr-binutils \ avr-gcc \ avr-libc \ dfu-util elif [[ -n "$(type -P zypper)" ]]; then # openSUSE zypper --non-interactive refresh && zypper --non-interactive update zypper --non-interactive install \ git \ make \ gcc \ kernel-devel \ patch \ wget \ dfu-programmer fi