#!/bin/bash MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized OS=$(head -n1 $MY_PATH/.OS) isARM=$(cat $MY_PATH/.OS | grep YES) unset err # Basics sudo apt update echo -e "${c_yellow}Mise à jours des prérequis...$c_" sudo apt install curl jq zip unzip htop tree ntpdate gnupg ssmtp mpack imagemagick qrencode bc libttspico-utils libttspico0 libttspico-data python-fourletterphat -y # Silkaj + Duniterpy silkaj() { echo -e "${c_yellow}Installation de Silkaj...$c_" libsodium=$(sudo apt search libsodium 2>/dev/null | grep -v -E "header|debug symbols" | grep "Network communication" -B1 | head -n1 | awk -F '/' '{ print $1 }') [[ $libsodium =~ " " ]] && libsodium=$(echo $libsodium | awk '{ print $2 }') sudo apt install python3-pip $libsodium -y || err+="Install python3 and $libsodium" pip3 install duniterpy || err+="Install duniterpy" pip3 install silkaj --user || err+="Install Silkaj" } # Install IPFS ipfs() { echo -e "${c_yellow}Installation d'IPFS...$c_" [[ -f /usr/local/bin/ipfs ]] && sudo service ipfs stop if [[ $isARM ]]; then wget https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-arm.tar.gz -O $MY_PATH/ipfs-update.tar.gz || err+="Download ipfs-update" else wget https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-amd64.tar.gz -O $MY_PATH/ipfs-update.tar.gz || err+="Download ipfs-update" fi echo "INSTALL ipfs-update" sudo tar -xvzf $MY_PATH/ipfs-update.tar.gz -C /usr/src/ || err+="Untar ipfs-update" rm $MY_PATH/ipfs-update.tar.gz cd /usr/src/ipfs-update/ sudo ./install.sh || err+="Install ipfs-update" cd $MY_PATH echo "INSTALL latest ipfs" sudo ipfs-update install latest || err+="Install IPFS" echo "CREATE SYSTEMD ipfs SERVICE" [[ -f /etc/systemd/system/ipfs.service ]] && sudo rm /etc/systemd/system/ipfs.service sudo cp -f $MY_PATH/templates/1/ipfs.service /etc/systemd/system/ sudo sed -i "s/_USER/$USER/g" /etc/systemd/system/ipfs.service sudo systemctl daemon-reload || err+="Restart IPFS" sudo systemctl enable ipfs || err+="Enable IPFS daemon" } # Install gammu gammu() { echo -e "${c_yellow}Installation de gammu...$c_" sudo apt install wvdial ppp screen git minicom gammu -y || err+="Install gammu requirements" sleep 1 sudo apt install gammu-smsd -y || sudo apt install -f || err+="Install gammu" sudo usermod -aG gammu $USER } # Install PHP + MySQL php() { echo -e "${c_yellow}Installation de PHP et MySQL$c_" if [[ $OS == "buster" ]]; then sudo apt -y install software-properties-common nginx php php-common php-fpm php-gettext php-gd php-mysql php-curl php-imap php-mbstring php-xml php-cli mariadb-server || err+="Install PHP and MySQL" elif [[ $OS == "stretch" ]]; then sudo apt -y install lsb-release apt-transport-https ca-certificates || err+="Install apt-transport-https" sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg || err+="Download PHP key" echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list sudo apt update sudo apt -y install software-properties-common dirmngr nginx php7.3 php7.3-common php7.3-gettext php7.3-fpm php7.3-gd php7.3-mysql php7.3-curl php7.3-imap php7.3-mbstring php7.3-xml php7.3-cli mariadb-server || err+="Install PHP and MySQL" else echo "${c_red}Votre système n'est pas pris en charge par ce script d'installation.$c_" exit 1 fi isLocalhostUsers=$(sudo mysql -e "select user from mysql.user;" | grep "localhost") isTestDB=$(sudo mysql -e "show databases" | grep "test") [[ -n $isLocalhostUsers ]] && sudo mysql -e "DROP USER ''@'localhost'; DROP USER ''@'$(hostname)'" [[ -n $isTestDB ]] && sudo mysql -e "DROP DATABASE test" sudo mysql -e "FLUSH PRIVILEGES" } # Read arguments for i in $@; do echo -e "${c_yellow}Installation de $c_light$i$c_" $i done if [[ $err ]]; then echo -e "${c_red}Installation des prérequis incomplète: $err$c_" exit 1 else echo -e "${c_green}Les prérequis ont été correctement installés$c_" exit 0 fi