Parece que o meu aptitude
está de alguma forma quebrado:
sudo aptitude update
0% [Working]Segmentation fault
dmesg
[223282.616599] aptitude[30972]: segfault at 67707f ip 7f954dcfae5d sp 7ffff5a5f950 error 4 in libapt-pkg-libc6.7-6.so.4.6.0[7f954dca5000+bd000]
Então, eu gostaria de reinstalar aptitude
usando apt-get
.
Infelizmente, parece apt-get
que não tem uma opção de reinstalação.
Como eu poderia voltar aptitude
a trabalhar?
É possível que eu tenha encontrado a causa raiz do segfault do aptitude. Aqui está como eu posso reproduzi-lo:
- logon remoto 'ssh' na máquina Debian através do terminal rxvt da Cygwin (a partir de uma edição alemã do Windows 7 de 64 bits).
- Amplie a janela rxvt para que se estenda por dois monitores (sim, eu tenho dois monitores)
- Corra
aptitude update
. Nota: quando redimensiono o terminal rxvt para normal, não tenho essas falhas de segmentação!
debian
aptitude
debian-lenny
Vokuhila-Oliba
fonte
fonte
-A5
você está saudando?--
você está esperando?man getopt
, olhe emPARSING
-A5
mostra a linha correspondente mais as 5 linhas a seguir.--
interrompe a análise das opções, interpretando, assim, tudo o que vem depois como argumentos posicionais, evitando ter que escapar do traço na expressão-A
que, de outra forma, seria interpretada como uma opção de grep em si.Você pode reinstalar um pacote com
sudo apt-get install --reinstall packagename
. Isso remove completamente o pacote (mas não os pacotes que dependem dele) e depois reinstala o pacote.Isso pode ser conveniente quando o pacote tiver muitas dependências reversas.
fonte
Às vezes você precisa restaurar os arquivos de configuração também! não apenas reinstalar.
sudo apt-get install --reinstall xxxx
Reinstale o aplicativo, mantém os arquivos de configuração.
Isso pode ser útil, mas às vezes você precisa começar do zero, então o que eu uso é este:
então
fonte
UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
.Você deve estar seguro para remover o aptitude e reinstalar, pois isso não afetará os outros utilitários do apt. Então:
apt-get remove aptitude
seguido porapt-get install aptitude
, ou se isso ainda falhar, tenteapt-get purge aptitude
seguido porapt-get install aptitude
.Antes de executar qualquer uma das opções acima, recomendo uma verificação completa do sistema de arquivos e do bloqueio incorreto, caso haja um problema que causou o problema (dependendo do problema, se houver, mais atividades poderão piorar as coisas). Além disso, verifique o que será removido na etapa remover / remover antes de continuar (deve fazer uma pausa para pedir permissão se algo extra for alterado como resultado da remoção desse pacote), para verificar novamente meu pensamento de que isso é seguro.
fonte
apt-get remove
seguido porapt-get install
fez o truque!a full filesystem check
ou similares. Você poderia me dar uma pequena dica de como fazer isso?fsck -f <block_device>
tais comofsck /dev/sda1
. O sistema de arquivos precisará ser desmontado ou montado somente leitura no momento. Assim, como é provável que seja o seu sistema de arquivos raiz, você deve reiniciar no modo de usuário único ou inicializar a partir de algo mais como um CD ao vivo.tune2fs
marcar o sistema de arquivos como tendo sido montado mais vezes do que o limite definido, o que deve forçar uma verificação na próxima inicialização. Supondo que o sistema de arquivos seja ext2 / 3/4:tune2fs -C 99 <device>
ou, caso você tenha a verificação baseada em contagem de montagem desativada, ligue-o ao mesmo tempo com algo parecidotune2fs -c 17 -C 99 <device>
.É como se você nunca tivesse instalado o pacote antes. Eu estou fazendo isso frequentemente com movimento e essas coisas.
fonte