Help FTL not installed

Please follow the below template, it will help us to help you!

Expected Behaviour:

FTL installs.

Actual Behaviour:

Error: Unable to get latest release location form GitHub

trace:

  • local latesttag
  • local 'str=Downloading and Installing FTL'
  • printf ' %b %s...' '[i]' 'Downloading and Installing FTL'
    [i] Downloading and Installing FTL...++ curl -sI https://github.com/pi-hole/FTL/releases/latest
    ++ grep Location
    ++ awk -F / '{print $NF}'
  • latesttag=
  • [[ ! '' == v* ]]
  • printf '%b %b %s\n' '\r\033[K' '[\e[1;31m✗\e[0m]' 'Downloading and Installing FTL'
    [✗] Downloading and Installing FTL
  • printf ' %bError: Unable to get latest release location from GitHub%b\n' '\e[1;31m' '\e[0m'
    Error: Unable to get latest release location from GitHub
  • return 1
  • return 1
  • printf ' %b FTL Engine not installed\n' '[\e[1;31m✗\e[0m]'
    [✗] FTL Engine not installed
  • exit 1

Debug Token:

N/A

The following change allowed it to work for me.

--- a/automated install/basic-install.sh        
+++ b/automated install/basic-install.sh        
@@ -2161,7 +2161,7 @@ FTLinstall() {
     printf "  %b %s..." "${INFO}" "${str}"
 
     # Find the latest version tag for FTL
-    latesttag=$(curl -sI https://github.com/pi-hole/FTL/releases/latest | grep "Location" | awk -F '/' '{print $NF}')
+    latesttag=$(curl -sI https://github.com/pi-hole/FTL/releases/latest | sed -n -e 's,\r$,,' -e 's,^Location: .*/,,p')
     # Tags should always start with v, check for that.
     if [[ ! "${latesttag}" == v* ]]; then
         printf "%b  %b %s\\n" "${OVER}" "${CROSS}" "${str}"

It has been about 25 years since I used awk, but the command syntax looked correct, I'm not sure why it doesn't work in Fedora 31. Perhaps that particular awk syntax has been depreciated? In any case, it seems less efficient to do an grep followed by an awk command, when a single sed command will do the job.

Is this a fresh install from scratch, or an update to an existing installation?

curl -sSL https://raw.githubusercontent.com/pi-hole/pi-hole/release/v4.3.3/automated%20install/basic-install.sh | bash

The whole grep awk sed process is no longer used in v5 (v4.3.3 when it's released).

Fresh install, using the git clone method.

Then git checkout the release/v4.3.3 branch and see if that works out.

This is too much wack a mole. I was planning on a 10 minute install. I'm now an hour and half in.

First it was this issue. I changed to the sed command. Then it just wasn't running. I found pihole hides port conflict errors during the install, and it failed because libvirtd already connects to port 53. I update the dnsmasq rules so both are using different ports. Then I find I have a conflict because something is using port 80. But I cannot find what because plex is running tens of thousands of sockets for an update run. I suspect though it is nextcloud, or another service I have on the same host. But pihole won't even tell me about the conflicts I have to use a systemctl commands to discover them. I just get a webpage not found when I try to navigate to the admin page.

I have a raspberry pi coming in a few days. I won't be running quite so many other services on that, so I'll just hold off for that rather than spending more time trying to debug this.

My general conclusion is pihole swallows too many of the error messages, making for a much more complicated install than it needs to be. In theory I should just be able to redirect this to another port for the web interface. But that will just lead to the next bug.

The prerequisites show what needs to be available in order to install.

https://docs.pi-hole.net/main/prerequesites/

We can't add so much code and contingency planning to account for all situation. Installing a DNS server assumes you don't already have another DNS server installed. Installing a web interface assumes that you don't already have another web server running.

I'm sorry you had a bad experience with the installation process but other than just refusing to install, I don't know what options there are?

I see a commit was added to fix the FTL issue. I tried it. It worked. Thanks.

It turns out the part 80 was the last bug. I simply had to edit /etc/lighttpd/lighthttpd.conf and change the port number from 80.

What would help is after attempting to start a service the script did a systemctl status to check if the service actually started... As it is right now it just leaves the user with the illusion everything should be working.

It used to be that port 80 was a hard requirement for Pi-hole, though that it less relevant these days.

The reason being is that we used to by default (though, it is still possible with some reconfiguring) serve a block page as a 404 for all Pi-holed requests, by returning the IP address of the Pi-hole and the rest of the url (e.g http://pi-hole-ip/images/advert.jpg, which doesn't exist, so 404 is returned)

But since the rise of https, the block page has become less relevant. The plan for v6.0 is to completely overhaul the web UI of Pi-hole, and remove the lighttpd requirement (requests will be served from a http server contained within the pihole-FTL binary - on whatever port the user chooses (at least, that's the plan, I think!!))

Keep in mind that with the current setup, your changes to the lighttpd config file will be overwritten on an update or a repair of your Pi-hole install. It's not ideal, I know, but we're working towards making things smoother in that department

2 Likes

That was very useful information. I set a FallbackResource so I no longer see 404 errors.

1 Like

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.