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 \
25 elif [[ -n "$(type -P apt-get)" ]]; then
26 # Debian and derivatives
27 # This block performs completely non-interactive updates {{
28 export DEBIAN_FRONTEND=noninteractive
29 export DEBCONF_NONINTERACTIVE_SEEN=true
30 echo "grub-pc hold" | dpkg --set-selections
32 apt-get -y --allow-unauthenticated upgrade \
33 -o Dpkg::Options::="--force-confdef" \
34 -o Dpkg::Options::="--force-confold"
48 binutils-arm-none-eabi \
49 libnewlib-arm-none-eabi \
52 elif [[ -n "$(type -P yum)" ]]; then
53 # Fedora, CentOS or RHEL and derivatives
54 yum -y makecache && yum -y update
70 binutils-arm-none-eabi \
71 libnewlib-arm-none-eabi \
73 # The listed eabi pacackes do unfortunately not exist for CentOS,
74 # But at least in Fedora they do, so try to install them anyway
75 # TODO: Build them from sources, if the installation fails
77 elif [[ -n "$(type -P zypper)" ]]; then
79 zypper --non-interactive refresh && zypper --non-interactive update
80 zypper --non-interactive install \
89 # TODO: The avr and eabi tools are not available as default packages, so we need
90 # another way to install them