Erro no “apt-get update”

Essa é mais uma daquelas histórias em que a simples manutenção vira um problemão.

Fui efetuar a configuração de um serviço num firewall (Debian “lenny”) que não mexia a muitos meses e ao executar um apt-get update recebi algumas mensagens de erro:

Reading Package Lists… Error!
E: Problem with MergeList /var/lib/apt/lists/ftp.pt.debian.org_debian_dists_stable_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.”

Depois de muito bater cabeça consegui uma solução seguindo os seguintes passos:

# fuser -vvv /var/lib/dpkg/lock
# sudo rm /var/lib/apt/lists/lock
# cp -arf /var/lib/dpkg /var/lib/dpkg.backup
# cp /var/lib/dpkg/status-old /var/lib/dpkg/status
# cp /var/lib/dpkg/available-old /var/lib/dpkg/available
# rm -rf /var/lib/dpkg/updates/*
# rm -rf /var/lib/apt/lists
# rm /var/cache/apt/*.bin
# mkdir /var/lib/apt/lists
# mkdir /var/lib/apt/lists/partial
# LANG=C;sudo apt-get clean
# LANG=C;sudo apt-get autoclean
# LANG=C;sudo apt-get update

E finalmente problema resolvido e pude prosseguir com meu trabalho! 🙂
Mas como sempre aprendemos com os erros, vou listar outros erros e soluções para o apt-get.

Erro:
W: You may want to run apt-get update to correct these missing files
E: Couldn’t find package penguineyes

Solução:
Rodar o apt-get update depois da sua última alteração no arquivo /etc/apt/sources.list

Erro:
E: Could not open lock file /var/lib/dpkg/lock – open (13 Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Solução:
Você não tem permissão root, ou seja, está acessando como usuário normal.

Erro:
E: Dynamic MMap ran out of room
Solução:
Adicione a linha seguinte ao /etc/apt/apt.conf:
APT::Cache-Limit 10000000;

Fonte:
https://help.ubuntu.com/community/PackageManagerTroubleshootingProcedure
http://www.debian.org/doc/manuals/apt-howto/ch-erros.pt-br.html

Abraços. 😀

Acesso a servidores com ip dinâmico – Parte 2/2

Agora vamos configurar o redirecionamento de portas. Isso deve ser feito na máquina onde o modem fica conectado (seu “firewall”)

Crie os seguintes arquivos (pode usar o VI para isso)

vi /etc/init.d/rc.modules

#!/bin/bash
#
# Script execução módulos Iptables
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
echo “Load Modules…”
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe iptable_mangle
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_LOG

vi /etc/init.d/rc.clear

#!/bin/bash
#
# Script clean iptables

echo “Clean Firewall…”

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
/etc/init.d/rc.firewall

vi /etc/init.d/rc.firewall

#!/bin/sh
#
# Redireciona portas para outros servidores
/sbin/iptables -t nat -A PREROUTING -s 0/0 -m tcp -p tcp -i eth0 –dport 80 -j DNAT –to-destination 192.168.0.x:80

Onde:
eth0 -> é a interface de rede do seu servidor, está ligada ao modem.
192.168.0.x -> IP da máquina onde está instalado o Apache.

Execute manualmente para verificar se está tudo ok.
No terminal execute:

/etc/init.d/rc.modules

e

/etc/init.d/rc.clear

Vamos ver se o redirecionamento está ok. Numa máquina fora da rede, entre no browser e digite: nome_cadastrado_no_no-ip:80
Você deverá ver a página do Apache.

Redirecionamento funcionando!

Abraços. 😀

Acesso a servidores com ip dinâmico – Parte 1/2

Sempre me deparo com a necessidade de acessar algum servidor e muitas vezes isso fica complicado quando o ip é dinâmico.

No linux utilizo soluções como o no-ip ou dyndns, nesse caso vou mostrar o passo-a-passo apenas do no-ip.

1 – Colocar o Apache pra funcionar (só o básico para fazer uns testes).
Nas distribuições como o OpenSuse e o Fedora, você pode utilizar o gerenciador de pacotes da distribuição e instale a versão mais recente.
Inicie o serviço: service apache2 start
Verifique se está funcionando: localhost:80 e de outra máquina ip_da_maquina:80

2 – Agora que a rede já acessa o Apache vamos configurar o ip dinâmico.
Cadastre-se no site: www.no-ip.com/services/managed_dns/free_dynamic_dns.html
Também no gerenciador de pacotes é possível baixar e instalar o no-ip.
Depois de instalado, execute:

no-ip -C -c /etc/no-ip.conf

Escolha o device (placa e rede) que está ligada ao modem
Coloque o e-mail e senha

Para reiniciar o serviço

/etc/init.d/no-ip restart

Para ativá-lo no boot (comando utilizado no OpenSuse)

chkconfig no-ip on

Faça um teste “pingando” seu endereço e veja se ele responde.
Pronto, já temos como acessar sua rede independente do IP.

Só falta redirecionar o acesso a porta, estou escrevendo um configuração bem básica para para o IPTABLES. Mas fica para o próximo post.

Abraços. 😀

Acesso a servidores com ip dinâmico – Parte 2/2