Edit /etc/resolv.conf
and change 127.0.0.1 to something remote (8.8.8.8 or 1.1.1.1) and then run the above command. That will output the error that apt-get
is generating and causing the installer to fail.
Run which command?
Here:
pi@raspberrypi: ~/Pi-hole/automated install $ 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.lzbMn1
+ exec
+ rm /tmp/pihole_temp.lzbMn1
+ 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
+ [[ '' != true ]]
+ apt-get install --dry-run php
+ phpVer=php
+ apt-get install --dry-run php-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=26901428
+ [[ 26901428 =~ ^([0-9])+$ ]]
+ [[ 26901428 -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...+ dpkg-query -W '-f=${Status}' dialog
+ grep 'ok installed'
+ 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...+ dpkg-query -W '-f=${Status}' debconf
+ grep 'ok installed'
+ 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...+ dpkg-query -W '-f=${Status}' whiptail
+ grep 'ok installed'
+ 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
++ cut -d: -f1
++ grep -v lo
++ awk '{print $2}'
++ cut -d@ -f1
+ availableInterfaces='wlan0
eth0'
+ chooseInterface
+ interfacesArray=()
+ local interfacesArray
+ local interfaceCount
+ local chooseInterfaceCmd
+ local chooseInterfaceOptions
+ local firstLoop=1
++ wc -l
+ interfaceCount=2
+ [[ 2 -eq 1 ]]
+ read -r line
+ mode=OFF
+ [[ 1 -eq 1 ]]
+ firstLoop=0
+ mode=ON
+ interfacesArray+=("${line}" "available" "${mode}")
+ read -r line
+ mode=OFF
+ [[ 0 -eq 1 ]]
+ interfacesArray+=("${line}" "available" "${mode}")
+ read -r line
+ chooseInterfaceCmd=(whiptail --separate-output --radiolist "Choose An Interface (press space to select)" ${r} ${c} ${interfaceCount})
++ whiptail --separate-output --radiolist 'Choose An Interface (press space to select)' 20 70 2 wlan0 available ON eth0 available OFF
+ chooseInterfaceOptions=wlan0
+ for desiredInterface in ${chooseInterfaceOptions}
+ PIHOLE_INTERFACE=wlan0
+ printf ' %b Using interface: %s\n' '[i]' wlan0
[i] Using interface: wlan0
+ 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.1.1 dev eth0 src 192.168.1.61 uid 0
cache '
++ printf 192.168.1.61 uid 0 cache
+ printf -v IPv4bare 192.168.1.61
++ printf 192.168.1.1 dev eth0 src 192.168.1.61 uid 0 cache
+ printf -v IPv4gw 192.168.1.1
+ valid_ip 192.168.1.61
+ local ip=192.168.1.61
+ local stat=1
+ [[ 192.168.1.61 =~ ^[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 ]]
+ [[ 1 -le 255 ]]
+ [[ 61 -le 255 ]]
+ stat=0
+ return 0
++ grep 192.168.1.61/
++ awk '{print $4}'
++ awk 'END {print}'
++ ip -oneline -family inet address show
+ IPV4_ADDRESS=192.168.1.61/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.1.61/24
Gateway: 192.168.1.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-wlan0 ]]
+ [[ -f /etc/dhcpcd.conf ]]
+ setDHCPCD
+ grep -q 192.168.1.61/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.1.61/24
[i] IPv4 address: 192.168.1.61/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/Pi-hole/automated install'
+ [[ -d /etc/.pihole ]]
+ cd /etc/.pihole
+ git status --short
+ cd '/home/pi/Pi-hole/automated install'
+ 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/Pi-hole/automated install'
+ 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@raspberrypi** : **~/Pi-hole/automated install $**
sudo apt-get --yes --no-install-recommends install dnsutils lsof netcat idn2 sqlite3 dns-root-data resolvconf lighttpd php-common php-cgi php-sqlite3
Now that shows an error with the local repository. Check that with:
cd /etc/.pihole
sudo git status
Oh - I didn't realize that was a command, it came up on its own. Ran that, then checked .pihole and now it's there:
"On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean"
Ran installer again, still receiving
" [i] Update repo in /etc/.pihole...
: Could not update local repository. Contact support."
EDIT: Ugh, right, because I didn't change the dns back first. Now I can't change it again...
It's just an endless loop because resolve.conf keeps changing back to 127.0.0.1 or whatever. It gets so far through the install or any other operation and inevitably hits a point where it can't resolve. Or /etc.pihole doesn't exist.
" [i] Clone GitHub - pi-hole/pi-hole: A black hole for Internet advertisements into /etc/.pihole...
Error: Could not update local repository. Contact support."
Which directory is /etc supposed to be in? I can't find it...
Trying to learn something new. Tell me why I shouldn't throw in the towel?
/etc
is in the root.
Have you made a completely new Buster image to a completely different SDCard?
Try the below commands, they are exactly what the installer runs.
sudo rm -rf /etc/.pihole
sudo git clone https://github.com/pi-hole/pi-hole /etc/.pihole
I've tried another sd with the same result, so I've switched back to this new class 10 I have. Completely new image before I started messing with this tonight.
Ran the below commands with no issues, pihole is back in etc, now what?
curl -sSL https://install.pi-hole.net | sudo bash -x
I was hoping you wouldn't say that
Checking nameservers first...
Yeah, changed name server back to 8.8.8.8 but still got error unable to resolve host.
And again:
" [ ✓ ] 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
Whyyyyyyyy?
What does the below show?
cd /etc/.pihole
sudo git pull
pi@raspberrypi : /etc/.pihole $ sudo git pull
fatal: unable to access 'GitHub - pi-hole/pi-hole: A black hole for Internet advertisements': Could not resolve host: github.com
Then I change nameserver back to 8.8.8.8 and run it again:
pi@raspberrypi : /etc/.pihole $ sudo nano /etc/resolv.conf
pi@raspberrypi : /etc/.pihole $ sudo git pull
Already up to date.
pi@raspberrypi : /etc/.pihole $
Got it.
Since the nameserver kept getting reset, I had to look into WHY- Turns out resolv.conf is auto generated, and the nameserver needed to be "permanently" changed in /etc/dhcpcd.conf
Once that was set I was able to run the installer successfully.
Thanks to @DanSchaper @Mcat12 and @jfb for the help!
Pain in the @$$ but I'm better with command line for it...
This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.