Reinstale o Ubuntu base sem formatar ou remover pacotes instalados manualmente


10

Como eu brinquei demais com o repositório proposto (na 14.04), quero voltar à etapa 1: remover todos os pacotes do sistema, exceto aqueles que eu instalei manualmente e reinstalar o sistema base, sem passar pelo incômodo de reinstalar .

Basicamente, existe uma maneira segura e remota sobre o ssh:

  • remova todos os pacotes, exceto os instalados manualmente
  • reinstalar tudo, desde o kernel até ubuntu-desktop(de preferência automagicamente, sem que nenhum outro pacote seja marcado como instalado manualmente)
  • instalar dependências dos pacotes instalados manualmente

NB intencionalmente deixei de fora o na esperança de obter respostas inespecíficas para qualquer versão específica.


Parece que não descrevi o que quero simplesmente, acho que esses dois pontos resolveriam o problema acima:

  • limpe todos os pacotes instalados automaticamente (a @kos respondeu na resposta da @ Fabby)
  • instale os pacotes que compõem uma nova instalação do Ubuntu

E suponho que se as dependências dos pacotes instalados manualmente forem desinstaladas, apt-get -fisso me ajudará.


1. são todos os arquivos que você precisa salvar em / home? 2. a rede está estável? Se você mover seus arquivos de usuário ou o que precisar salvar, poderá escrever tudo e mover os arquivos de usuário facilmente? Além disso. o PXE está ativado? e existem ferramentas de suporte à virtualização no BIOS?
J0h 29/10

@ j0h 1. Nada de importante /home, mas há configurações importantes nos pacotes instalados manualmente, 2. Sim, mas como eu disse, os arquivos do usuário não são a preocupação, 3. Sim, está ativado, 4. E sim, também há suporte à virtualização .
Oxwivi

Isso está um pouco acima do meu nível de especialização, mas não seria mais fácil obter uma lista de pacotes de uma nova instalação, diferenciá-la da sua instalação atual para obter uma lista de tudo o que foi adicionado. Em seguida, faça uma nova instalação e adicione automaticamente todas as coisas personalizadas automaticamente - possivelmente com uma restauração de alguns ou de todos os arquivos de configuração em $ HOME? Você obtém as listas executando o dpkg -l. Provavelmente, isso marcará muitas coisas adicionais como instaladas manualmente - e não como dependências que podem desaparecer se o pacote necessário for excluído posteriormente.
Joe

Respostas:


5

Para o futuro:

Se você possui um servidor remoto em um datacenter a 1000 milhas de distância, é melhor ter um switch IPKVM instalado, para que não precise confiar apenas sshnele.

Se o servidor estiver no Monte Everest: adicione um telefone Iridium e um modem também ...

Em seguida, você pode ter uma partição FAT CloneZilla de 512 MB inicializável nessa máquina (eu uso um pendrive SLC USB) e usar o console para inicializar e fazer backup de uma imagem das partições do sistema na unidade de dados e copiar o imagem anterior do sistema na partição secundária do seu pen drive antes de começar a adicionar trusty-proposedao servidor . (Eu mantenho a maioria dos backups do meu sistema na unidade de dados: eles têm apenas 6 GB)

Por enquanto:

  • Faça um backup do apt
  • Passe pelo seu /var/log/apt/history*
  • Crie seu próprio script auto-mágico que faça apt-get purgetodas as coisas que você realmente não deseja / precisa dos dados da etapa anterior
  • Execute o script enquanto ora a Linus dos Torvalds
  • Atualize seus repositórios como deseja (como remover trusty-proposed)
  • Reinicie enquanto orava a Richard dos Stallmans
  • Se tudo der certo: implemente a solução de switch IPKVM acima.

Nenhum comando auto-mágico de excluir tudo, exceto this that? :( O switch IPKVM vem com uma função DNS dinâmica? Não vale a pena nesse caso.
Oxwivi

O acima é o mais auto-mágico que você terá. Totalmente automático como um ponto de restauração do Windows: não, é para isso que servem os backups do sistema ... Os comutadores IPKVM podem usar DHCP, portanto, usando um serviço DNS dinâmico dinâmico: "sim, meio" ...
Fabby

Não, eu odeio o ponto de restauração do Windows. Não faço ideia do que se passa lá. (Mais parecido, eu passei a odiar toda a linha de produtos do Windows) A única parte auto-mágica que eu quero é descobrir todos os pacotes manuais e o comando para desinstalar tudo, exceto aqueles.
Oxwivi 25/10/2015

Eu apaguei o Windows há cerca de 2 anos ... Você já tentou procurar history.log??? : P
Fabby

@Oxwivi Você quer apt-mark showauto, e para purgar todo o pacote na saída, alimentando a lista para apt-cache purge: apt-mark showauto | xargs sudo apt-get --dry-run purge. Eu adicionei voluntariamente a --dry-runopção, caso você tenha tentado experimentá-la, para poder realmente ver o que está acontecendo: fazer algo assim interrompe sua instalação, porque remove todos os pacotes dependentes de qualquer pacote removido pelo comando . Basta dar uma olhada na saída da corrida a seco.
kos

1

OK, minha resposta pressupõe que você possa e tenha feito backup do seu diretório de usuário e de tudo que deseja salvar. o que reduz sua pergunta a como instalar o Ubuntu em um servidor remoto? Para o qual existem muitas soluções.

Para isso, você pode usar o DRBL, para implantar remotamente um sistema operacional, com várias opções de inicialização. Você pode pesquisar aqui: http://drbl.org/installation/

Existe Clobber: http://cobbler.github.io/manuals/quickstart/

Existe o cloneZilla, que pode fazer backup e restaurar em uma rede. O link é para Windows, mas os mesmos métodos se aplicam ao Linux. Como alternativa, você pode criar uma imagem de inicialização do ubuntu localmente e instalá-la usando o clonezilla. http://opensourceforu.efytimes.com/2013/12/restore-partitions-network-using-clonezilla/

Como alternativa, você pode tentar usar dd_rescue ou netcat

Um termo de pesquisa útil pode ser "Provisionamento de servidor". Existem mais opções do que estas.

Existem métodos de força bruta também.

$ ls /
bin  boot  cdrom  dev  etc  home  initrd.img  initrd.img.old  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

e seu PATH era assim:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

se seu diretório raiz fosse algo como isto, se você escrevesse / etc e / usr com versões "limpas", você estaria substituindo, praticamente todas as partes do software instalado e os arquivos de configuração. Seria hacker para dizer o mínimo, se não uma idéia completamente horrível. Correr apt-get purgeseria muito mais seguro, ou talvez você possa ajustar o processo um pouco. Você também pode incluir um clone do seu antigo arquivo de configuração ssh no / etc / ssh / antes de tentar reiniciar os serviços com novos arquivos de configuração.

Há também uma ferramenta que permite despejar um kernel em execução e atualizar sem reiniciar. Para isso, você pode conferir o Kslpice ou o kGraft

Se tudo que você está tendo problemas é com repositórios e gerenciamento de pacotes, não sei por que você deseja despejar o kernel, mbr, partição de inicialização etc.

De qualquer forma, espero ter dado algumas idéias para você analisar. Existem várias maneiras de depolar um servidor remotamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.