Onde posso obter o arquivo padrão / etc / hosts para o Debian Sid?

6

Eu de alguma forma deletei /etc/hosts no meu sistema de teste, que é o Debian Sid. Agora quero instalar o padrão /etc/hosts . Eu tentei dpkg -S /etc/hosts para descobrir qual pacote contém /etc/hosts , mas nenhum foi encontrado. De onde posso baixá-lo?

    
por Eugene Yarmash 16.07.2012 / 01:00

2 respostas

12

O arquivo /etc/hosts está escrito via debian-installer , ele não existe como um arquivo empacotado.

O seguinte é meu /etc/hosts de uma instalação padrão:

127.0.0.1       localhost
127.0.1.1       hostname.fqdn.example.com    hostname

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Para mais detalhes sobre a sintaxe, veja a seção de Referência Debian O nome do host resolução .

Atualização:

Como eu sinto que essa resposta ganhou mais votos do que eu esperava, fiz um pequeno dedilhado para você em troca. :)

O pacote real usado por debian-installer , que contém a lógica /etc/hosts , é denominado net-cfg . Mais especificamente, dois arquivos, netcfg.h e netcfg-common.c tratam da lógica de construir o arquivo /etc/hosts .

netcfg.h tem #define s para o arquivo em si e para as entradas do IPv6:

#define HOSTS_FILE      "/etc/hosts"
...<snip>...
#define IPV6_HOSTS \
"# The following lines are desirable for IPv6 capable hosts\n" \
"::1     ip6-localhost ip6-loopback\n" \
"fe00::0 ip6-localnet\n" \
"ff00::0 ip6-mcastprefix\n" \
"ff02::1 ip6-allnodes\n" \
"ff02::2 ip6-allrouters\n"

netcfg-common.c contém o trabalho sujo, preenchendo as informações em /etc/hosts :

if ((fp = file_open(HOSTS_FILE, "w"))) {
    char ptr1[INET_ADDRSTRLEN];

    fprintf(fp, "127.0.0.1\tlocalhost");

    if (ipaddress.s_addr) {
        inet_ntop (AF_INET, &ipaddress, ptr1, sizeof(ptr1));
        if (domain_nodot && !empty_str(domain_nodot))
            fprintf(fp, "\n%s\t%s.%s\t%s\n", ptr1, hostname, domain_nodot, hostname);
        else
            fprintf(fp, "\n%s\t%s\n", ptr1, hostname);
    } else {
#if defined(__linux__) || defined(__GNU__)
        if (domain_nodot && !empty_str(domain_nodot))
            fprintf(fp, "\n127.0.1.1\t%s.%s\t%s\n", hostname, domain_nodot, hostname);
        else
            fprintf(fp, "\n127.0.1.1\t%s\n", hostname);
#else
        fprintf(fp, "\t%s\n", hostname);
#endif
    }

    fprintf(fp, "\n" IPV6_HOSTS);

    fclose(fp);
}
    
por 16.07.2012 / 01:48
1

Desmarcado no Debian, mas deve ser

::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain

(se você não usa IPv6, então você pode ignorar a linha que começa com :: 1)

Edit: O arquivo é provavelmente a instalação base, não de um pacote adicional.

    
por 16.07.2012 / 01:03

Tags