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á.

Oxwivi
fonte
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.
Fabby
fonte
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.

j0h
fonte