My /etc/hosts file includes an entry of this kind:
1.2.3.4 myserver

"myserver" is a server that has no fully qualified domain name, it is not the host I'm running the Zimbra installation on. In my case it's the internal LDAP server that needs to be excactly named like that in order to keep the certificates going.

Install.sh uses util/utilfunc.sh that checks if there are ANY entries of the above kind and halts if finds one. This is wrong behavior, it has to figure out if the host itself has an incorrect entry in the /etc/hosts file. In order to make it so, do the following change in the util/utilfunc.sh file:

Original lines (included a bigger part to clarify the position it is in):
Code:
        if ! cat /etc/hosts | \
                perl -ne 'if (/^\s*\d+\.\d+\.\d+\.\d+\s+(\S+)/ && !/^\s*127\.0\.0\.1/) { my @foo = split (/\./,$1); if ($#foo == "0") {exit 11;} }'; then

        cat<  

        Where  is the ip address of the host, 
         is the FULLY QUALIFIED host name, and
         is the (optional) hostname-only portion

EOF

        exit 1
        fi
The replacement:
Code:
        MYIP=`ifconfig | grep inet | grep -v inet6 | grep -v "127.0.0.1" | head -1 | perl -ne 's/^.+ addr:(\d+\.\d+\.\d+\.\d+) .+$/$1/; print;'`
        if ! cat /etc/hosts | grep $MYIP | \
                perl -ne 'if (/^\s*\d+\.\d+\.\d+\.\d+\s+(\S+)/ && !/^\s*127\.0\.0\.1/) { my @foo = split (/\./,$1); if ($#foo == "0") {exit 11;} }'; then

        cat<  

        Where  is the ip address of the host,
         is the FULLY QUALIFIED host name, and
         is the (optional) hostname-only portion

EOF

        exit 1
        fi
Please correct me if there's anything wrong here!