2 # This script will attempt to setup the Linux dependencies for compiling QMK/TMK
4 # This could probably go much lower, but since we are including an Arch vagrant,
5 # making it the first match makes sense
7 if [[ -n "$(type -P pacman )" ]]; then
8 # Arch linux and derivatives like Apricity
10 # Allow user to speed up package installs using powerpill/wget tweaks
11 # Always run the pacman mirror update script if possible when vagrant comes up
12 # This will ensure that users never get stalled on a horribly slow mirror
13 pacman -Syyu --needed --noconfirm
14 pacman -S --needed --noconfirm \
21 arm-none-eabi-binutils \
22 arm-none-eabi-newlib \
26 elif [[ -n "$(type -P apt-get)" ]]; then
27 # Debian and derivatives
28 # This block performs completely non-interactive updates {{
29 export DEBIAN_FRONTEND=noninteractive
30 export DEBCONF_NONINTERACTIVE_SEEN=true
31 echo "grub-pc hold" | dpkg --set-selections
33 apt-get -y --allow-unauthenticated upgrade \
34 -o Dpkg::Options::="--force-confdef" \
35 -o Dpkg::Options::="--force-confold"
49 binutils-arm-none-eabi \
50 libnewlib-arm-none-eabi \
54 elif [[ -n "$(type -P yum)" ]]; then
55 # Fedora, CentOS or RHEL and derivatives
56 yum -y makecache && yum -y update
71 arm-none-eabi-gcc-cs \
72 arm-none-eabi-newlib \
75 # The listed eabi pacackes do unfortunately not exist for CentOS,
76 # But at least in Fedora they do, so try to install them anyway
77 # TODO: Build them from sources, if the installation fails
79 elif [[ -n "$(type -P zypper)" ]]; then
81 zypper --non-interactive refresh && zypper --non-interactive update
82 zypper --non-interactive install \
92 # TODO: The avr and eabi tools are not available as default packages, so we need
93 # another way to install them