Como acompanhar o software instalado

8

De vez em quando estou precisando atualizar um software rodando em um dos nossos servidores de testes no trabalho (principalmente Debian). O que realmente me confunde quase todas as vezes é o fato de que não há apenas uma maneira de instalar o software. Hoje eu precisei atualizar o Coffeescript. Eu não sabia como ele foi instalado inicialmente e, portanto, não como atualizá-lo da melhor maneira.

Poderia ter sido instalado com o apt ou manualmente clonando o projeto do github e construindo-o sozinho ou através do gerenciador de pacotes node ns npm. Depois que eu lutei com isso e manualmente joguei todos os arquivos relacionados com o café e dirs embora eu consegui fazer uma nova instalação. Mas então eu queria usar um comando coffeescript que precisa do nodejs 0.6 e 0.4 instalado.

Então, deixe os jogos começarem de novo!

Os nodejs foram instalados manualmente? Ou como pacote? Ou foi colocado lá por deus? Não sei.

Então, estou me perguntando se existe alguma estratégia fácil para atualizar o software instalado quando você realmente não sabe como ele foi instalado inicialmente? Quais são as melhores abordagens aqui?

    
por acme 10.02.2012 / 14:24

3 respostas

7

Há uma regra simples que você deve seguir, o que resolverá a maioria dos casos:

Never put a file under /bin, /lib, /sbin or /usr, except /usr/local, without going through the package manager.

Dessa forma, se um arquivo estiver na área gerenciada pelo gerenciador de pacotes, você sabe que é proveniente de um pacote. Se não for, você sabe que o instalou manualmente.

Você deve manter os pacotes fornecidos pela sua distribuição sempre que possível. Somente instale pacotes de terceiros se você tiver uma necessidade documentada de funcionalidade que não é fornecida pela distribuição. “Eu quero ter a última versão” não é uma justificativa válida. Se você instalar pacotes de terceiros, mantenha anotações de onde os adquiriu e arquive os pacotes ( .rpm ou .deb files) em algum lugar. Privilege as fontes apt ou yum em downloads aleatórios da Web.

Use stow ou xstow para os programas instalados manualmente.

Use o etckeeper para mantém /etc sob controle de versão . Confirme sempre que fizer uma alteração, com uma mensagem significativa.

Se você se deparou com uma situação em que fez as coisas de maneira suja e perdeu a noção de onde vem um software:

  • Instale uma versão limpa desse software, no local adequado, seguindo os conselhos acima.
  • Teste se a nova instalação funciona para os fins pretendidos.
  • Mude seus serviços para usar a nova instalação.
  • Limpe a instalação antiga da melhor maneira possível.
por 11.02.2012 / 23:58
1

Posso sugerir que você use o puppet para rastrear o software instalado no linux.

O Puppet, um mecanismo administrativo automatizado para seus sistemas * nix, executa tarefas administrativas (como adicionar usuários, instalar pacotes e atualizar configurações de servidor) com base em uma especificação centralizada.

Você pode consultar o link

    
por 10.02.2012 / 14:37
1

Se você instalar qualquer pacote usando o apt-get, todos os pacotes dependentes serão instalados por si próprio porque o apt-get resolve todas as dependências.

No meu caso, eu tento instalar todos os pacotes pela linha de comando usando apt-get até onde o pacote está nos repositórios do Ubuntu. Se ele não estiver presente em seu repositório, você deverá ler o manual de instalação desse utilitário e instalá-lo com base no fato de o utilitário usar Makefile ou qualquer outra coisa.

    
por 10.02.2012 / 14:58