Cannot install Pi-Hole

command is stil not found

-bash: pihole: command not found

Okay, run the install curl again then, it's basically the same thing.

@DanSchaper

i had to use

sudo tee /etc/resolv.conf <<< 'nameserver 8.8.8.8'

to gain a dns access for the reinstallation. but its lasted too long ( like at the beginning of this topic ) so the part where pihole dowload FTL fail.

InstallError2

[✓] Detected ARM-hf architecture (armv6 or lower) Using ARM binary
[i] Checking for existing FTL binary...
[✗] Downloading and Installing FTL
Error: Unable to get latest release location from GitHub
[✗] FTL Engine not installed
pi@Pi-Hole:~ $ pihole
-bash: pihole: command not found
pi@Pi-Hole:~ $

and the pihole command still doesn't work.

I'll try to find a Zero and see if I can duplicate. If you want to run curl -sSL https://install.pi-hole.net | sudo bash -x in the mean time we can see what the actual errors are.

i wish we could VM a rasberry pi !

well this time, it doesnt even reach FTL part. ( tryed twice )

EDIT: after few try i was was enough to reach FTL again so i have changed the log.

pi@Pi-Hole:~ $ sudo tee /etc/resolv.conf <<< 'nameserver 8.8.8.8'
nameserver 8.8.8.8
pi@Pi-Hole:~ $ curl -sSL https://install.pi-hole.net | bash -x
+ set -e
++ cat
+ DNS_SERVERS='Google (ECS);8.8.8.8;8.8.4.4;2001:4860:4860:0:0:0:0:8888;2001:4860:4860:0:0:0:0:8844
OpenDNS (ECS);208.67.222.222;208.67.220.220;2620:119:35::35;2620:119:53::53
Level3;4.2.2.1;4.2.2.2;;
Comodo;8.26.56.26;8.20.247.20;;
DNS.WATCH;84.200.69.80;84.200.70.40;2001:1608:10:25:0:0:1c04:b12f;2001:1608:10:25:0:0:9249:d69b
Quad9 (filtered, DNSSEC);9.9.9.9;149.112.112.112;2620:fe::fe;2620:fe::9
Quad9 (unfiltered, no DNSSEC);9.9.9.10;149.112.112.10;2620:fe::10;2620:fe::fe:10
Quad9 (filtered + ECS);9.9.9.11;149.112.112.11;2620:fe::11;
Cloudflare;1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001'
+ installLogLoc=/etc/pihole/install.log
+ setupVars=/etc/pihole/setupVars.conf
+ lighttpdConfig=/etc/lighttpd/lighttpd.conf
+ coltable=/opt/pihole/COL_TABLE
+ webroot=/var/www/html
+ webInterfaceGitUrl=https://github.com/pi-hole/AdminLTE.git
+ webInterfaceDir=/var/www/html/admin
+ piholeGitUrl=https://github.com/pi-hole/pi-hole.git
+ PI_HOLE_LOCAL_REPO=/etc/.pihole
+ PI_HOLE_FILES=(chronometer list piholeDebug piholeLogFlush setupLCD update version gravity uninstall webpage)
+ PI_HOLE_INSTALL_DIR=/opt/pihole
+ PI_HOLE_CONFIG_DIR=/etc/pihole
+ PI_HOLE_BIN_DIR=/usr/local/bin
+ PI_HOLE_BLOCKPAGE_DIR=/var/www/html/pihole
+ useUpdateVars=false
+ adlistFile=/etc/pihole/adlists.list
+ regexFile=/etc/pihole/regex.list
+ IPV4_ADDRESS=
+ IPV6_ADDRESS=
+ QUERY_LOGGING=true
+ INSTALL_WEB_INTERFACE=true
+ PRIVACY_LEVEL=0
+ '[' -z pi ']'
+ '[' -t 0 ']'
+ screen_size='24 80'
+ printf -v rows %d 24
+ printf -v columns %d 80
+ r=12
+ c=40
+ r=20
+ c=70
+ skipSpaceCheck=false
+ reconfigure=false
+ runUnattended=false
+ INSTALL_WEB_SERVER=true
+ [[ -f /opt/pihole/COL_TABLE ]]
+ COL_NC='\e[0m'
+ COL_LIGHT_GREEN='\e[1;32m'
+ COL_LIGHT_RED='\e[1;31m'
+ TICK='[\e[1;32m✓\e[0m]'
+ CROSS='[\e[1;31m✗\e[0m]'
+ INFO='[i]'
+ DONE='\e[1;32m done!\e[0m'
+ OVER='\r\033[K'
+ binary=tbd
+ counter=0
+ [[ '' != true ]]
+ main
+ local 'str=Root user check'
+ printf '\n'

+ [[ 1000 -eq 0 ]]
+ printf '  %b %s\n' '[\e[1;31m✗\e[0m]' 'Root user check'
  [✗] Root user check
+ printf '  %b %bScript called with non-root privileges%b\n' '[i]' '\e[1;31m' '\e[0m'
  [i] Script called with non-root privileges
+ printf '      The Pi-hole requires elevated privileges to install and run\n'
      The Pi-hole requires elevated privileges to install and run
+ printf '      Please check the installer for any concerns regarding this requirement\n'
      Please check the installer for any concerns regarding this requirement
+ printf '      Make sure to download this script from a trusted source\n\n'
      Make sure to download this script from a trusted source

+ printf '  %b Sudo utility check' '[i]'
  [i] Sudo utility check+ is_command sudo
+ local check_command=sudo
+ command -v sudo
+ printf '%b  %b Sudo utility check\n' '\r\033[K' '[\e[1;32m✓\e[0m]'
  [✓] Sudo utility check
+ exec curl -sSL https://raw.githubusercontent.com/pi-hole/pi-hole/master/automated%20install/basic-install.sh
+ sudo bash

  [✓] Root user check

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

  [i] Existing PHP installation detected : PHP version 7.3.11-1~deb10u1
  [✓] Disk space check
  [✓] Update local cache of available packages

  [✓] Checking apt-get for upgraded packages... up to date!

  [i] Installer Dependency checks...
  [✓] Checking for apt-utils
  [✓] Checking for dialog
  [✓] Checking for debconf
  [✓] Checking for dhcpcd5
  [✓] Checking for git
  [✓] Checking for iproute2
  [✓] Checking for whiptail

  [i] Using Google (ECS)
  [i] Static IP already configured
  [i] Unable to find IPv6 ULA/GUA address, IPv6 adblocking will not be enabled
  [i] IPv4 address: 192.168.2.42/24
  [i] IPv6 address:
  [i] Web Interface On
  [i] Web Server On
  [i] Logging On.
  [✓] Check for existing repository in /etc/.pihole
  [✓] Update repo in /etc/.pihole

  [✓] Check for existing repository in /var/www/html/admin
  [✓] Update repo in /var/www/html/admin

  [i] Main Dependency checks...
  [✓] Checking for cron
  [✓] Checking for curl
  [✓] Checking for dnsutils
  [✓] Checking for iputils-ping
  [✓] Checking for lsof
  [✓] Checking for netcat
  [✓] Checking for psmisc
  [✓] Checking for sudo
  [✓] Checking for unzip
  [✓] Checking for wget
  [✓] Checking for idn2
  [✓] Checking for sqlite3
  [✓] Checking for libcap2-bin
  [✓] Checking for dns-root-data
  [✓] Checking for resolvconf
  [✓] Checking for libcap2
  [✓] Checking for lighttpd
  [✓] Checking for php7.3-common
  [✓] Checking for php7.3-cgi
  [✓] Checking for php7.3-sqlite3

  [✓] Enabling lighttpd service to start on reboot...

  [i] FTL Checks...

  [✓] Detected ARM-hf architecture (armv6 or lower) Using ARM binary
  [i] Checking for existing FTL binary...
  [i] Downloading and Installing FTL...curl: (56) OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 104
  [✗] Downloading and Installing FTL
  Error: URL https://github.com/pi-hole/FTL/releases/download/v4.3.1/pihole-FTL-arm-linux-gnueabi not found
  [✗] FTL Engine not installed
pi@Pi-Hole:~ $

Use that exact command otherwise the output is of no use.

pi@Pi-Hole:~ $ sudo tee /etc/resolv.conf <<< 'nameserver 8.8.8.8'
nameserver 8.8.8.8
pi@Pi-Hole:~ $ curl -sSL https://install.pi-hole.net | sudo bash -x
+ set -e
++ cat
+ DNS_SERVERS='Google (ECS);8.8.8.8;8.8.4.4;2001:4860:4860:0:0:0:0:8888;2001:4860:4860:0:0:0:0:8844
OpenDNS (ECS);208.67.222.222;208.67.220.220;2620:119:35::35;2620:119:53::53
Level3;4.2.2.1;4.2.2.2;;
Comodo;8.26.56.26;8.20.247.20;;
DNS.WATCH;84.200.69.80;84.200.70.40;2001:1608:10:25:0:0:1c04:b12f;2001:1608:10:25:0:0:9249:d69b
Quad9 (filtered, DNSSEC);9.9.9.9;149.112.112.112;2620:fe::fe;2620:fe::9
Quad9 (unfiltered, no DNSSEC);9.9.9.10;149.112.112.10;2620:fe::10;2620:fe::fe:10
Quad9 (filtered + ECS);9.9.9.11;149.112.112.11;2620:fe::11;
Cloudflare;1.1.1.1;1.0.0.1;2606:4700:4700::1111;2606:4700:4700::1001'
+ installLogLoc=/etc/pihole/install.log
+ setupVars=/etc/pihole/setupVars.conf
+ lighttpdConfig=/etc/lighttpd/lighttpd.conf
+ coltable=/opt/pihole/COL_TABLE
+ webroot=/var/www/html
+ webInterfaceGitUrl=https://github.com/pi-hole/AdminLTE.git
+ webInterfaceDir=/var/www/html/admin
+ piholeGitUrl=https://github.com/pi-hole/pi-hole.git
+ PI_HOLE_LOCAL_REPO=/etc/.pihole
+ PI_HOLE_FILES=(chronometer list piholeDebug piholeLogFlush setupLCD update version gravity uninstall webpage)
+ PI_HOLE_INSTALL_DIR=/opt/pihole
+ PI_HOLE_CONFIG_DIR=/etc/pihole
+ PI_HOLE_BIN_DIR=/usr/local/bin
+ PI_HOLE_BLOCKPAGE_DIR=/var/www/html/pihole
+ useUpdateVars=false
+ adlistFile=/etc/pihole/adlists.list
+ regexFile=/etc/pihole/regex.list
+ IPV4_ADDRESS=
+ IPV6_ADDRESS=
+ QUERY_LOGGING=true
+ INSTALL_WEB_INTERFACE=true
+ PRIVACY_LEVEL=0
+ '[' -z root ']'
+ '[' -t 0 ']'
+ screen_size='24 80'
+ printf -v rows %d 24
+ printf -v columns %d 80
+ r=12
+ c=40
+ r=20
+ c=70
+ skipSpaceCheck=false
+ reconfigure=false
+ runUnattended=false
+ INSTALL_WEB_SERVER=true
+ [[ -f /opt/pihole/COL_TABLE ]]
+ COL_NC='\e[0m'
+ COL_LIGHT_GREEN='\e[1;32m'
+ COL_LIGHT_RED='\e[1;31m'
+ TICK='[\e[1;32m✓\e[0m]'
+ CROSS='[\e[1;31m✗\e[0m]'
+ INFO='[i]'
+ DONE='\e[1;32m done!\e[0m'
+ OVER='\r\033[K'
+ binary=tbd
+ counter=0
+ [[ '' != true ]]
+ main
+ local 'str=Root user check'
+ printf '\n'

+ [[ 0 -eq 0 ]]
+ printf '  %b %s\n' '[\e[1;32m✓\e[0m]' 'Root user check'
  [✓] Root user check
+ show_ascii_berry
+ echo -e '
        \e[1;32m.;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           '\''ccll:;ll .oooodc
             .;cll.;;looo:.
                 \e[1;31m.. '\'','\''.
                .'\'',,,,,,'\''.
              .'\'',,,,,,,,,,.
            .'\'',,,,,,,,,,,,....
          ....'\'''\'''\'',,,,,,,'\''.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'\''......
            ....'\'',,,,,,,,,,,,.
               .'\'',,,,,,,,,'\''.
                .'\'',,,,,,'\''.
                  ..'\'''\'''\''.\e[0m
'

        .;;,.
        .ccccc:,.
         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
             .;cll.;;looo:.
                 .. ','.
                .',,,,,,'.
              .',,,,,,,,,,.
            .',,,,,,,,,,,,....
          ....''',,,,,,,'.......
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........
          ........,,,,,,,'......
            ....',,,,,,,,,,,,.
               .',,,,,,,,,'.
                .',,,,,,'.
                  ..'''.

+ make_temporary_log
++ mktemp /tmp/pihole_temp.XXXXXX
+ TEMPLOG=/tmp/pihole_temp.DMAM2W
+ exec
+ rm /tmp/pihole_temp.DMAM2W
+ distro_check
+ is_command apt-get
+ local check_command=apt-get
+ command -v apt-get
+ PKG_MANAGER=apt-get
+ UPDATE_PKG_CACHE='apt-get update'
+ PKG_INSTALL=(${PKG_MANAGER} --yes --no-install-recommends install)
+ PKG_COUNT='apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true'
+ APT_SOURCES=/etc/apt/sources.list
+ awk 'BEGIN{a=1;b=0}/bionic main/{a=0}/bionic.*universe/{b=1}END{exit a + b}' /etc/apt/sources.list
+ apt-get install --dry-run iproute2
+ iproute_pkg=iproute2
+ is_command php
+ local check_command=php
+ command -v php
++ php
+ printf '  %b Existing PHP installation detected : PHP version %s\n' '[i]' 7.3.11-1~deb10u1
  [i] Existing PHP installation detected : PHP version 7.3.11-1~deb10u1
++ php
+ printf -v phpInsMajor %d 7
++ php
+ printf -v phpInsMinor %d 3
+ '[' 7 -ge 7 ']'
+ phpInsNewer=true
+ [[ true != true ]]
+ phpVer=php7.3
+ apt-get install --dry-run php7.3-sqlite3
+ phpSqlite=sqlite3
+ INSTALLER_DEPS=(apt-utils dialog debconf dhcpcd5 git ${iproute_pkg} whiptail)
+ PIHOLE_DEPS=(cron curl dnsutils iputils-ping lsof netcat psmisc sudo unzip wget idn2 sqlite3 libcap2-bin dns-root-data resolvconf libcap2)
+ PIHOLE_WEB_DEPS=(lighttpd ${phpVer}-common ${phpVer}-cgi ${phpVer}-${phpSqlite})
+ LIGHTTPD_USER=www-data
+ LIGHTTPD_GROUP=www-data
+ LIGHTTPD_CFG=lighttpd.conf.debian
+ [[ -f /etc/pihole/setupVars.conf ]]
+ [[ false == true ]]
+ verifyFreeDiskSpace
+ local 'str=Disk space check'
+ local required_free_kilobytes=51200
+ local existing_free_kilobytes
++ df -Pk
++ grep -m1 '\/$'
++ awk '{print $4}'
+ existing_free_kilobytes=12985012
+ [[ 12985012 =~ ^([0-9])+$ ]]
+ [[ 12985012 -lt 51200 ]]
+ printf '  %b %s\n' '[\e[1;32m✓\e[0m]' 'Disk space check'
  [✓] Disk space check
+ update_package_cache
+ local 'str=Update local cache of available packages'
+ printf '  %b %s...' '[i]' 'Update local cache of available packages'
  [i] Update local cache of available packages...+ eval 'apt-get update'
+ printf '%b  %b %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Update local cache of available packages'
  [✓] Update local cache of available packages
+ notify_package_updates_available
+ local 'str=Checking apt-get for upgraded packages'
+ printf '\n  %b %s...' '[i]' 'Checking apt-get for upgraded packages'

  [i] Checking apt-get for upgraded packages...++ eval 'apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true'
+++ apt-get -s -o Debug::NoLocking=true upgrade
+++ grep -c '^Inst'
+++ true
+ updatesToInstall=0
++ uname -r
+ [[ -d /lib/modules/4.19.75+ ]]
+ [[ 0 -eq 0 ]]
+ printf '%b  %b %s... up to date!\n\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Checking apt-get for upgraded packages'
  [✓] Checking apt-get for upgraded packages... up to date!

+ install_dependent_packages apt-utils dialog debconf dhcpcd5 git iproute2 whiptail
+ counter=1
+ [[ 1 == 1 ]]
+ printf '  %b Installer Dependency checks...\n' '[i]'
  [i] Installer Dependency checks...
+ declare -a installArray
+ is_command debconf-apt-progress
+ local check_command=debconf-apt-progress
+ command -v debconf-apt-progress
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' apt-utils
  [i] Checking for apt-utils...+ dpkg-query -W '-f=${Status}' apt-utils
+ grep 'ok installed'
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' apt-utils
  [✓] Checking for apt-utils
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' dialog
  [i] Checking for dialog...+ grep 'ok installed'
+ dpkg-query -W '-f=${Status}' dialog
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' dialog
  [✓] Checking for dialog
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' debconf
  [i] Checking for debconf...+ grep 'ok installed'
+ dpkg-query -W '-f=${Status}' debconf
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' debconf
  [✓] Checking for debconf
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' dhcpcd5
  [i] Checking for dhcpcd5...+ dpkg-query -W '-f=${Status}' dhcpcd5
+ grep 'ok installed'
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' dhcpcd5
  [✓] Checking for dhcpcd5
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' git
  [i] Checking for git...+ grep 'ok installed'
+ dpkg-query -W '-f=${Status}' git
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' git
  [✓] Checking for git
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' iproute2
  [i] Checking for iproute2...+ dpkg-query -W '-f=${Status}' iproute2
+ grep 'ok installed'
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' iproute2
  [✓] Checking for iproute2
+ for i in "$@"
+ printf '  %b Checking for %s...' '[i]' whiptail
  [i] Checking for whiptail...+ grep 'ok installed'
+ dpkg-query -W '-f=${Status}' whiptail
+ printf '%b  %b Checking for %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' whiptail
  [✓] Checking for whiptail
+ [[ 0 -gt 0 ]]
+ printf '\n'

+ return 0
+ checkSelinux
+ is_command getenforce
+ local check_command=getenforce
+ command -v getenforce
+ [[ false == false ]]
+ welcomeDialogs
+ whiptail --msgbox --backtitle Welcome --title 'Pi-hole automated installer' '\n\nThis installer will transform your device into a network-wide ad blocker!' 20 70
+ whiptail --msgbox --backtitle Plea --title 'Free and open source' '\n\nThe Pi-hole is free, but powered by your donations:  http://pi-hole.net/donate' 20 70
+ whiptail --msgbox --backtitle 'Initiating network interface' --title 'Static IP Needed' '\n\nThe Pi-hole is a SERVER so it needs a STATIC IP ADDRESS to function properly.

In the next section, you can choose to use your current network settings (DHCP) or to manually edit them.' 20 70
+ mkdir -p /etc/pihole/
+ get_available_interfaces
++ ip --oneline link show up
++ grep -v lo
++ awk '{print $2}'
++ cut -d: -f1
++ cut -d@ -f1
+ availableInterfaces=eth0
+ chooseInterface
+ interfacesArray=()
+ local interfacesArray
+ local interfaceCount
+ local chooseInterfaceCmd
+ local chooseInterfaceOptions
+ local firstLoop=1
++ wc -l
+ interfaceCount=1
+ [[ 1 -eq 1 ]]
+ PIHOLE_INTERFACE=eth0
+ setDNS
+ local DNSSettingsCorrect
+ DNSChooseOptions=()
+ local DNSServerCount=0
+ OIFS='
'
+ IFS='
'
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='Google (ECS)'
+ DNSChooseOptions[DNSServerCount]='Google (ECS)'
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='OpenDNS (ECS)'
+ DNSChooseOptions[DNSServerCount]='OpenDNS (ECS)'
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName=Level3
+ DNSChooseOptions[DNSServerCount]=Level3
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName=Comodo
+ DNSChooseOptions[DNSServerCount]=Comodo
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName=DNS.WATCH
+ DNSChooseOptions[DNSServerCount]=DNS.WATCH
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='Quad9 (filtered, DNSSEC)'
+ DNSChooseOptions[DNSServerCount]='Quad9 (filtered, DNSSEC)'
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='Quad9 (unfiltered, no DNSSEC)'
+ DNSChooseOptions[DNSServerCount]='Quad9 (unfiltered, no DNSSEC)'
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='Quad9 (filtered + ECS)'
+ DNSChooseOptions[DNSServerCount]='Quad9 (filtered + ECS)'
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName=Cloudflare
+ DNSChooseOptions[DNSServerCount]=Cloudflare
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=Custom
+ ((  DNSServerCount=DNSServerCount+1  ))
+ DNSChooseOptions[DNSServerCount]=
+ IFS='
'
++ whiptail --separate-output --menu 'Select Upstream DNS Provider. To use your own, select Custom.' 20 70 7 'Google (ECS)' '' 'OpenDNS (ECS)' '' Level3 '' Comodo '' DNS.WATCH '' 'Quad9 (filtered, DNSSEC)' '' 'Quad9 (unfiltered, no DNSSEC)' '' 'Quad9 (filtered + ECS)' '' Cloudflare '' Custom ''
+ DNSchoices='Google (ECS)'
+ printf '  %b Using ' '[i]'
  [i] Using + [[ Google (ECS) == \C\u\s\t\o\m ]]
+ OIFS='
'
+ IFS='
'
+ for DNSServer in ${DNS_SERVERS}
++ cut '-d;' -f1
+ DNSName='Google (ECS)'
+ [[ Google (ECS) == \G\o\o\g\l\e\ \(\E\C\S\) ]]
+ printf '%s\n' 'Google (ECS)'
Google (ECS)
++ cut '-d;' -f2
+ PIHOLE_DNS_1=8.8.8.8
++ cut '-d;' -f3
+ PIHOLE_DNS_2=8.8.4.4
+ break
+ IFS='
'
+ chooseBlocklists
+ [[ -f /etc/pihole/adlists.list ]]
+ mv /etc/pihole/adlists.list /etc/pihole/adlists.list.old
+ cmd=(whiptail --separate-output --checklist "Pi-hole relies on third party lists in order to block ads.\\n\\nYou can use the suggestions below, and/or add your own after installation\\n\\nTo deselect any list, use the arrow keys and spacebar" "${r}" "${c}" 6)
+ options=(StevenBlack "StevenBlack's Unified Hosts List" on MalwareDom "MalwareDomains" on Cameleon "Cameleon" on DisconTrack "Disconnect.me Tracking" on DisconAd "Disconnect.me Ads" on HostsFile "Hosts-file.net Ads" on)
++ whiptail --separate-output --checklist 'Pi-hole relies on third party lists in order to block ads.\n\nYou can use the suggestions below, and/or add your own after installation\n\nTo deselect any list, use the arrow keys and spacebar' 20 70 6 StevenBlack 'StevenBlack'\''s Unified Hosts List' on MalwareDom MalwareDomains on Cameleon Cameleon on DisconTrack 'Disconnect.me Tracking' on DisconAd 'Disconnect.me Ads' on HostsFile 'Hosts-file.net Ads' on
+ choices='StevenBlack
MalwareDom
Cameleon
DisconTrack
DisconAd
HostsFile'
+ for choice in ${choices}
+ appendToListsFile StevenBlack
+ case $1 in
+ echo https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
+ for choice in ${choices}
+ appendToListsFile MalwareDom
+ case $1 in
+ echo https://mirror1.malwaredomains.com/files/justdomains
+ for choice in ${choices}
+ appendToListsFile Cameleon
+ case $1 in
+ echo http://sysctl.org/cameleon/hosts
+ for choice in ${choices}
+ appendToListsFile DisconTrack
+ case $1 in
+ echo https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
+ for choice in ${choices}
+ appendToListsFile DisconAd
+ case $1 in
+ echo https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
+ for choice in ${choices}
+ appendToListsFile HostsFile
+ case $1 in
+ echo https://hosts-file.net/ad_servers.txt
+ use4andor6
+ local useIPv4
+ local useIPv6
+ cmd=(whiptail --separate-output --checklist "Select Protocols (press space to select)" ${r} ${c} 2)
+ options=(IPv4 "Block ads over IPv4" on IPv6 "Block ads over IPv6" on)
++ whiptail --separate-output --checklist 'Select Protocols (press space to select)' 20 70 2 IPv4 'Block ads over IPv4' on IPv6 'Block ads over IPv6' on
+ choices='IPv4
IPv6'
+ for choice in ${choices}
+ case ${choice} in
+ useIPv4=true
+ for choice in ${choices}
+ case ${choice} in
+ useIPv6=true
+ [[ -n true ]]
+ find_IPv4_information
+ local route
+ local IPv4bare
++ ip route get 8.8.8.8
+ route='8.8.8.8 via 192.168.2.1 dev eth0 src 192.168.2.42 uid 0
    cache '
++ printf 192.168.2.42 uid 0 cache
+ printf -v IPv4bare 192.168.2.42
++ printf 192.168.2.1 dev eth0 src 192.168.2.42 uid 0 cache
+ printf -v IPv4gw 192.168.2.1
+ valid_ip 192.168.2.42
+ local ip=192.168.2.42
+ local stat=1
+ [[ 192.168.2.42 =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
+ OIFS='
'
+ IFS=.
+ ip=(${ip})
+ IFS='
'
+ [[ 192 -le 255 ]]
+ [[ 168 -le 255 ]]
+ [[ 2 -le 255 ]]
+ [[ 42 -le 255 ]]
+ stat=0
+ return 0
++ ip -oneline -family inet address show
++ grep 192.168.2.42/
++ awk 'END {print}'
++ awk '{print $4}'
+ IPV4_ADDRESS=192.168.2.42/24
+ getStaticIPv4Settings
+ local ipSettingsCorrect
+ whiptail --backtitle 'Calibrating network interface' --title 'Static IP Address' --yesno 'Do you want to use your current network settings as a static address?
          IP address:    192.168.2.42/24
          Gateway:       192.168.2.1' 20 70
+ whiptail --msgbox --backtitle 'IP information' --title 'FYI: IP Conflict' 'It is possible your router could still try to assign this IP to a device, which would cause a conflict.  But in most cases the router is smart enough to not do that.
If you are worried, either manually set the address, or modify the DHCP reservation pool so it does not include the IP you want.
It is also possible to use a DHCP reservation, but if you are going to do that, you might as well set a static address.' 20 70
+ setStaticIPv4
+ local IFCFG_FILE
+ local CONNECTION_NAME
+ [[ -r /etc/sysconfig/network/ifcfg-eth0 ]]
+ [[ -f /etc/dhcpcd.conf ]]
+ setDHCPCD
+ grep -q 192.168.2.42/24 /etc/dhcpcd.conf
+ printf '  %b Static IP already configured\n' '[i]'
  [i] Static IP already configured
+ return 0
+ [[ -n true ]]
+ useIPv6dialog
+ IPV6_ADDRESSES=($(ip -6 address | grep 'scope global' | awk '{print $2}'))
++ ip -6 address
++ awk '{print $2}'
++ grep 'scope global'
+ [[ ! -z '' ]]
+ [[ ! -z '' ]]
+ printf '  %b Unable to find IPv6 ULA/GUA address, IPv6 adblocking will not be enabled\n' '[i]'
  [i] Unable to find IPv6 ULA/GUA address, IPv6 adblocking will not be enabled
+ IPV6_ADDRESS=
+ [[ ! -z '' ]]
+ printf '  %b IPv4 address: %s\n' '[i]' 192.168.2.42/24
  [i] IPv4 address: 192.168.2.42/24
+ printf '  %b IPv6 address: %s\n' '[i]' ''
  [i] IPv6 address:
+ [[ ! -n true ]]
+ setAdminFlag
+ local WebToggleCommand
+ local WebChooseOptions
+ local WebChoices
+ WebToggleCommand=(whiptail --separate-output --radiolist "Do you wish to install the web admin interface?" ${r} ${c} 6)
+ WebChooseOptions=("On (Recommended)" "" on Off "" off)
++ whiptail --separate-output --radiolist 'Do you wish to install the web admin interface?' 20 70 6 'On (Recommended)' '' on Off '' off
+ WebChoices='On (Recommended)'
+ case ${WebChoices} in
+ printf '  %b Web Interface On\n' '[i]'
  [i] Web Interface On
+ INSTALL_WEB_INTERFACE=true
+ [[ true == true ]]
+ WebToggleCommand=(whiptail --separate-output --radiolist "Do you wish to install the web server (lighttpd)?\\n\\nNB: If you disable this, and, do not have an existing webserver installed, the web interface will not function." "${r}" "${c}" 6)
+ WebChooseOptions=("On (Recommended)" "" on Off "" off)
++ whiptail --separate-output --radiolist 'Do you wish to install the web server (lighttpd)?\n\nNB: If you disable this, and, do not have an existing webserver installed, the web interface will not function.' 20 70 6 'On (Recommended)' '' on Off '' off
+ WebChoices='On (Recommended)'
+ case ${WebChoices} in
+ printf '  %b Web Server On\n' '[i]'
  [i] Web Server On
+ INSTALL_WEB_SERVER=true
+ setLogging
+ local LogToggleCommand
+ local LogChooseOptions
+ local LogChoices
+ LogToggleCommand=(whiptail --separate-output --radiolist "Do you want to log queries?" "${r}" "${c}" 6)
+ LogChooseOptions=("On (Recommended)" "" on Off "" off)
++ whiptail --separate-output --radiolist 'Do you want to log queries?' 20 70 6 'On (Recommended)' '' on Off '' off
+ LogChoices='On (Recommended)'
+ case ${LogChoices} in
+ printf '  %b Logging On.\n' '[i]'
  [i] Logging On.
+ QUERY_LOGGING=true
+ setPrivacyLevel
+ local LevelCommand
+ local LevelOptions
+ LevelCommand=(whiptail --separate-output --radiolist "Select a privacy mode for FTL. https://docs.pi-hole.net/ftldns/privacylevels/" "${r}" "${c}" 6)
+ LevelOptions=("0" "Show everything" on "1" "Hide domains" off "2" "Hide domains and clients" off "3" "Anonymous mode" off "4" "Disabled statistics" off)
++ whiptail --separate-output --radiolist 'Select a privacy mode for FTL. https://docs.pi-hole.net/ftldns/privacylevels/' 20 70 6 0 'Show everything' on 1 'Hide domains' off 2 'Hide domains and clients' off 3 'Anonymous mode' off 4 'Disabled statistics' off
+ PRIVACY_LEVEL=0
+ printf '  %b Privacy level %d' '[i]' 0
  [i] Privacy level 0+ clone_or_update_repos
+ [[ false == true ]]
+ getGitFiles /etc/.pihole https://github.com/pi-hole/pi-hole.git
+ local directory=/etc/.pihole
+ local remoteRepo=https://github.com/pi-hole/pi-hole.git
+ local 'str=Check for existing repository in /etc/.pihole'
+ printf '  %b %s...' '[i]' 'Check for existing repository in /etc/.pihole'
  [i] Check for existing repository in /etc/.pihole...+ is_repo /etc/.pihole
+ local directory=/etc/.pihole
+ local curdir
+ local rc
+ curdir=/home/pi
+ [[ -d /etc/.pihole ]]
+ cd /etc/.pihole
+ git status --short
+ cd /home/pi
+ return 0
+ printf '%b  %b %s\n' '\r\033[K' '[\e[1;32m✓\e[0m]' 'Check for existing repository in /etc/.pihole'
  [✓] Check for existing repository in /etc/.pihole
+ update_repo /etc/.pihole
+ local directory=/etc/.pihole
+ local curdir
+ local 'str=Update repo in /etc/.pihole'
+ curdir=/home/pi
+ cd /etc/.pihole
+ printf '  %b %s...' '[i]' 'Update repo in /etc/.pihole'
  [i] Update repo in /etc/.pihole...+ git stash --all --quiet
+ git clean --quiet --force -d
+ git pull --quiet
+ return 1
+ printf '\n  %b: Could not update local repository. Contact support.%b\n' '\e[1;31m' '\e[0m'

  : Could not update local repository. Contact support.
+ exit 1
pi@Pi-Hole:~ $

Those commands are failing.

What does this do?

cd /etc/.pihole
sudo git clean
sudo git pull

@DanSchaper Here you go !

pi@Pi-Hole:~ $ cd /etc/.pihole
pi@Pi-Hole:/etc/.pihole $ sudo git clean
fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean
pi@Pi-Hole:/etc/.pihole $ sudo git pull
fatal: unable to access 'https://github.com/pi-hole/pi-hole.git/': Could not resolve host: github.com
pi@Pi-Hole:/etc/.pihole $

Something keeps changing your /etc/resolv.conf to localhost and that's causing problems since there is no active resolver yet on localhost.

this was my main problems i have been trying to figure out, this only happen after pihole get partially installed

i have used a brand new SD card i just bought to make some test.

you told me last time binary wasnt right. but now i'm ok with this test

pi@Pi-Hole:~ $ readelf -A /usr/bin/pihole-FTL

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "6"
  Tag_CPU_arch: v6
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv2
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_rounding: Needed
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: Deprecated
  Tag_ABI_VFP_args: VFP registers
  Tag_CPU_unaligned_access: v6

i'm back at the "DNS service NOT running" but with the right binary. if you prefer to work on this one ( also pihole command work on this one )

Debug token : phe295m51k

also :

pi@Pi-Hole:~ $ pihole-FTL dnsmasq-test
dnsmasq: syntax check OK.
pi@Pi-Hole:~ $
pi@Pi-Hole:~ $ sudo service pihole-FTL status
Unit pihole-FTL.service could not be found.
pi@Pi-Hole:~ $
pi@Pi-Hole:~ $ sudo netstat -nltup | grep 'Proto\|:53 \|:5053 \|:5353 \|:8953 \|:67 \|:80 \|:471'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1204/lighttpd
tcp6       0      0 :::80                   :::*                    LISTEN      1204/lighttpd
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           240/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                240/avahi-daemon: r
pi@Pi-Hole:~ $

What exactly did you do with this new SD card. Did you run the curl command and only the curl command or have to done anything else? Did you manually download any binaries or run multiple curl commands?

i manually downlaoded binary with

sudo wget https://github.com/pi-hole/FTL/releases/download/v4.3.1/pihole-FTL-arm-linux-gnueabi -O /usr/bin/pihole-FTL`

`sudo chmod +x /usr/bin/pihole-FTL

Since it was where i lost my connection to dns with the install

after i ran the auto install curl

What does sudo systemctl status --full --no-pager pihole-FTL show?

sudo systemctl status --full --no-pager pihole-FTL

Unit pihole-FTL.service could not be found.

The installer did not complete the installation, files that should have been copied have not been installed in the proper place.

If i run a pihole -r it skip over because he see the FTL part.

Repair or reconfigure?

i tryed both of them, i dont know if i run it pihole -r -x it will give full log ?