Hostname: Name oder Dienst nicht bekannt

Hostname: Name oder Dienst nicht bekannt

Ich habe diesen Fehler während der Installation von 2 Paketen erhalten.

root@blackbox:~# apt-get install mpack ssmtp
Reading package lists... Done
Building dependency tree
Reading state information... Done
mpack is already the newest version.
ssmtp is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up ssmtp (2.64-8) ...
hostname: Name or service not known
dpkg: error processing package ssmtp (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mailutils:
 mailutils depends on default-mta | mail-transport-agent; however:
  Package default-mta is not installed.
  Package mail-transport-agent is not installed.
  Package ssmtp which provides mail-transport-agent is not configured yet.

dpkg: error processing package mailutils (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 ssmtp
 mailutils
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@blackbox:~#

Antwort1

Das Problem besteht darin, dass der in eingegebene Wert mit /etc/hostnamekeinem Eintrag in übereinstimmt /etc/hosts.

Dies führt dazu, dass der Befehl hostname --fqdneinen nicht auflösbaren Hostnamen zurückgibt, was dazu führt, dass ssmtpdie Installation nicht durchgeführt wird.

Stellen Sie sicher, dass Sie den Hostnamen Ihres Computers hinzufügen /etc/hosts.

Verwandte Fehler:

Antwort2

Das hier scheint schlecht zu sein:

hostname: Name or service not known
dpkg: error processing package ssmtp (--configure):
 subprocess installed post-installation script returned error exit status 1

hostnameim Skript verwendet postinst(Beschreibung im Debian-Handbuch für Paketbetreuer -Verknüpfung) schlägt fehl.

Ich habe das erwähnte Paket ssmtpin der Version 2.64-8 (amd64) überprüft und es enthält das folgende Skript:

#!/bin/sh

set -e

if test -L /usr/doc/ssmtp
then
    rm -f /usr/doc/ssmtp 2>/dev/null || true
fi

. /usr/share/debconf/confmodule

db_get ssmtp/root
root="$RET"

db_get ssmtp/mailhub
mailhub="${RET:-mail}"

db_get ssmtp/port
port="$RET"

db_get ssmtp/hostname
hostname="${RET:-`hostname --fqdn`}"

db_get ssmtp/rewritedomain
rewritedomain="$RET"

if test -s /etc/mailname
then
    :
else
    test -n "$hostname" && MailName="$hostname"
    test -n "$rewritedomain" && MailName="$rewritedomain"

    touch /etc/mailname
    chmod 644 /etc/mailname
    echo "$MailName" > /etc/mailname
fi

db_get ssmtp/fromoverride
test "$RET" = "true" && FromOverride=YES

test -d /etc/ssmtp || exit 1

if test -s /etc/ssmtp/ssmtp.conf
then
    if test "$port" = "25" -o -z "$port"
    then
        :
    else
        mailhub=${mailhub}:$port
    fi
    test -z "$FromOverride" && FromOverride=NO

    touch /etc/ssmtp/ssmtp.conf.tmp
    chmod 644 /etc/ssmtp/ssmtp.conf.tmp

    sed "s/^root=.*/root=$root/;s/^mailhub=.*/mailhub=$mailhub/;s/^rewriteDomain=.*/rewriteDomain=$rewritedomain/;s/^hostname=.*/hostname=$hostname/;s/^FromLineOverride=.*/FromLineOverride=$FromOverride/;s/^#FromLineOverride=.*/FromLineOverride=$FromOverride/" /etc/ssmtp/ssmtp.conf > /etc/ssmtp/ssmtp.conf.tmp
    mv -f /etc/ssmtp/ssmtp.conf.tmp /etc/ssmtp/ssmtp.conf
else
    touch /etc/ssmtp/ssmtp.conf
    chmod 644 /etc/ssmtp/ssmtp.conf

    exec 1>/etc/ssmtp/ssmtp.conf

    echo "#"
    echo "# Config file for sSMTP sendmail"
    echo "#"
    echo "# The person who gets all mail for userids < 1000"
    echo "# Make this empty to disable rewriting."
    echo "root=$root"
    echo
    echo "# The place where the mail goes. The actual machine name is required no "
    echo "# MX records are consulted. Commonly mailhosts are named mail.domain.com"
    if test "$port" = "25" -o -z "$port"
    then
        echo "mailhub=$mailhub"
    else
        echo "mailhub=${mailhub}:$port"
    fi
    echo
    echo "# Where will the mail seem to come from?"
    test -z "$rewritedomain" && echo -n "#"
    echo "rewriteDomain=$rewritedomain"
    echo ""
    echo "# The full hostname"
    echo "hostname=$hostname"
    echo
    echo "# Are users allowed to set their own From: address?"
    echo "# YES - Allow the user to specify their own From: address"
    echo "# NO - Use the system generated From: address"
    test -z "$FromOverride" && echo -n "#"
    echo "FromLineOverride=YES"
fi

# Program End
exit 0

Das Wichtigste ist:

hostname="${RET:-`hostname --fqdn`}"

Wie erwähnt ist es hostname --fqdnfehlgeschlagen. Bitte überprüfen Sie es, wenn:

  • Befehl existiert
  • welcher Befehl hostname --fqdngibt zurück

verwandte Informationen