Tente usar apt-get install --reinstall apache2
para forçar o sistema apt-get a ser instalado novamente, mesmo que o pacote exista e sobrescreva os arquivos atuais - mesmo aqueles que ele acha que já estão lá.
Ao excluir manualmente as coisas do sistema, você sem dúvida tem o gerenciador de pacotes confuso sobre o que precisa ser feito. Normalmente, você quer usar as ferramentas fornecidas, a menos que entenda o que está afetando manualmente.
Como nota extra, você não precisa mexer com os arquivos em /etc/init.d. Existe uma ferramenta que cuida da execução desses scripts para você. Por exemplo, para reiniciar o apache, você pode executar service apache2 restart
.
Editado com base nas informações encontradas nos comentários
O script de inicialização faz parte de um sub-pacote. Instalar um pacote pela primeira vez instalará suas dependências, mas desinstalá-lo apenas desinstalará o pacote, não suas dependências. O script de inicialização que você removeu manualmente pertence ao pacote apache2.2-common
com uma dependência do nome do pacote apache2
principal. Remover o apache2 mesmo com --purge
não teria efeito no script de inicialização porque é parte de um pacote diferente. Para recuperá-lo, execute apt-get install --reinstall apache2.2-common
.
Edit2
Aparentemente, o Debian é maluco. Eu repliquei o problema em um sistema de teste e não consegui recuperar o script de inicialização com o gerenciador de pacotes. Eu encontrei várias outras pessoas com o mesmo problema na web, e parece que a solução é baixar manualmente o pacote, extraí-lo e extrair o arquivo assim:
cd /tmp
aptitude download apache2.2-common
dpkg --extract apache2.2-common_*.deb apache2.2-common
sudo cp apache2.2-common/etc/init.d/apache2 /etc/init.d
Editar3
Graças à investigação feita por Faheem Mitha e à discussão dos comentários abaixo, uma resposta completa a essa pergunta deu certo. Leia a resposta de Faheem para maiores detalhes . Para o valor do humor, aqui estão as notas do penhasco:
A versão curta é que os scripts init são considerados arquivos conf, e o apt-get é muito educado para tocar nos arquivos conf que foram modificados pelo usuário de qualquer forma, mesmo para restaurar excluídos após a desinstalação. Antes de dizer "duh claro", confira a ginástica que você precisa fazer. Cito:
After asking the dpkg list (and being told off for it) + further fiddling, the following works. Be careful with this. It will replace all your modified config files with the version from the package.
apt-get -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confask" install --reinstall apache2.2-common
. I don't know why you needed me to tell you this. It's the first thing you should have thought of. :-) – Faheem Mitha