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?
Respostas:
Há uma regra simples que você deve seguir, que resolverá a maioria dos casos:
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 (
.rpm
ou.deb
arquivos) 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
/etc
controle 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:
fonte
Eu 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 do servidor) com base em uma especificação centralizada.
Você pode consultar o link
fonte
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.
fonte