Come tenere traccia del software installato


8

Ogni tanto ho bisogno di aggiornare un software in esecuzione su uno dei nostri server di test al lavoro (principalmente Debian). Ciò che mi confonde quasi ogni volta è il fatto che non esiste un solo modo per installare il software. Oggi avevo bisogno di aggiornare Coffeescript. Non sapevo come fosse installato inizialmente e quindi non come aggiornarlo nel modo migliore.

Potrebbe essere stato installato con apt o manualmente clonando il progetto github e costruendolo da solo o tramite il gestore dei pacchetti nodejs npm. Dopo aver lottato con questo e buttato via manualmente tutti i file e i dirs relativi al coffeescript sono riuscito a fare una nuova installazione. Ma poi volevo usare un comando coffeescript che necessitava di aver installato nodejs 0.6 e 0.4.

Quindi, lascia che i giochi ricominciano!

Nodejs è stato installato manualmente? O come pacchetto? O è stato messo lì da Dio? Non lo so.

Quindi mi chiedo che esiste una strategia semplice per aggiornare il software installato quando non sai davvero come è stato installato inizialmente? Quali sono gli approcci migliori qui?


2
Imho, l'approccio migliore non è quello di entrare in questo stato in primo luogo. Indica che tutto il software deve essere impacchettato o non installato, dove necessario crea il pacchetto da solo. Quindi inseriscili sul tuo pacchetto server interno.
Sirex,

Risposte:


7

C'è una semplice regola che dovresti seguire, che risolverà la maggior parte dei casi:

Non mettere mai un file sotto /bin, /lib, /sbino /usr, ad eccezione /usr/local, senza passare attraverso il gestore di pacchetti.

In questo modo, se un file si trova nell'area gestita dal gestore pacchetti, sai che proviene da un pacchetto. In caso contrario, sai di averlo installato manualmente.

Dovresti attenersi ai pacchetti forniti dalla tua distribuzione quando possibile. Installa i pacchetti di terze parti solo se hai una necessità documentata di funzionalità che non è fornita dalla distribuzione. "Voglio avere l'ultima versione" non è una giustificazione valida. Se installi pacchetti di terze parti, prendi nota di dove li hai trovati e archivia i pacchetti ( .rpmo .debfile) da qualche parte. Privilegi fonti apt o yum su download Web casuali.

Usa stow o xstow per i programmi che installi manualmente.

Usa etckeeper per mantenere il /etccontrollo della versione . Impegnati ogni volta che apporti una modifica, con un messaggio significativo.


Se ti sei imbattuto in una situazione in cui hai fatto cose sporche e hai perso la traccia da dove proviene un software:

  • Installa una versione pulita di quel software, nella posizione corretta seguendo i consigli sopra.
  • Verifica che la nuova installazione funzioni per gli scopi previsti.
  • Passa i tuoi servizi per utilizzare la nuova installazione.
  • Pulisci la vecchia installazione nel miglior modo possibile.

1

Posso suggerire di utilizzare il puppetper il monitoraggio del software installato in Linux.

Puppet, un motore amministrativo automatizzato per i tuoi sistemi * nix, esegue attività amministrative (come aggiungere utenti, installare pacchetti e aggiornare le configurazioni del server) in base a una specifica centralizzata.

Puoi fare riferimento al link


Grazie per il link! Ma ho bisogno di qualcosa sulla riga di comando. A prima vista, Puppet funziona solo con un sistema desktop.
Acme,

1

Se installi un pacchetto usando apt-get, tutti i pacchetti dipendenti verranno installati da soli perché apt-get risolve tutte le dipendenze.

Nel mio caso, provo a installare ogni pacchetto dalla riga di comando usando apt-get nella misura in cui il pacchetto è presente nei repository di Ubuntu. Se non è presente nel loro repository, è necessario leggere il manuale di installazione di tale utility e installarlo in base al fatto che l'utility usi Makefile o qualcos'altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.