Como acompanhar o software instalado

8

De vez em quando, eu preciso atualizar um software em execução em um de nossos servidores de teste no trabalho (principalmente o Debian). O que realmente me confunde quase sempre é o fato de não haver apenas uma maneira de instalar o software. Hoje eu precisava 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 github-project e construindo-o sozinho ou através do gerenciador de pacotes nodejs npm. Depois que lutei com isso e joguei manualmente todos os arquivos e diretórios relacionados ao café, consegui fazer uma nova instalação. Mas então eu queria usar um comando coffeescript que precise do nodejs 0.6 e 0.4 instalado.

Então, vamos começar os jogos novamente!

O nodejs foi instalado manualmente? Ou como pacote? Ou foi colocado lá por Deus? Eu não sei.

Então, eu estou me perguntando: 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?

acme
fonte
2
Imho, a melhor abordagem é não entrar nesse estado em primeiro lugar. Dite que todo o software deve ser empacotado ou não será instalado; quando necessário, faça você mesmo o pacote. Em seguida, coloque-os no servidor de pacotes interno.
Sirex

Respostas:

7

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

Nunca coloque um arquivo com /bin, /lib, /sbinou /usr, a não ser /usr/local, sem passar pelo gerenciador de pacotes.

Dessa forma, se um arquivo estiver na área gerenciada pelo gerenciador de pacotes, você saberá que ele veio de um pacote. Caso contrário, você sabe que o instalou manualmente.

Você deve manter os pacotes fornecidos por sua distribuição sempre que possível. Instale apenas pacotes de terceiros se você tiver uma necessidade documentada de funcionalidade que não é fornecida pela distribuição. "Quero ter a versão mais recente" não é uma justificativa válida. Se você instalar pacotes de terceiros, anote onde os obteve e arquive os pacotes ( .rpmou .debarquivos) em algum lugar. Privilegie as fontes apt ou yum sobre downloads aleatórios da web.

Use stow ou xstow para os programas que você instala manualmente.

Use o etckeeper para manter o /etccontrole da 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 da maneira suja e perdeu a noção de onde vem um pedaço de software:

  • Instale uma versão limpa desse software, no local adequado, seguindo as orientações acima.
  • Teste se a nova instalação funciona para os propósitos pretendidos.
  • Troque seus serviços para usar a nova instalação.
  • Limpe a instalação antiga da melhor maneira possível.
Gilles 'SO- parar de ser mau'
fonte
1

Eu posso sugerir que você use o puppetpara 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 do servidor) com base em uma especificação centralizada.

Você pode consultar o link

Mughil
fonte
Obrigado pelo link! Mas preciso de algo na linha de comando. À primeira vista, o fantoche funciona apenas em um sistema de desktop.
Acme
1

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

No meu caso, tento instalar todos os pacotes por linha de comando usando o apt-get até o pacote existente 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 algo mais.

pradeepchhetri
fonte