Sincronizzazione delle installazioni apt-get tra più computer


11

C'è un modo per sincronizzare le mie installazioni (e rimozioni) tra più PC?

Preferibilmente con dropbox, poiché lo sto già utilizzando per mantenere sincronizzati i miei file.

Ho pensato a un alias per i comandi apt-get installe apt-get removeche memorizza i parametri in un file (uno per l'installazione, uno per la rimozione) e un altro comando che legge tutte le voci nel file ed esegue il rispettivo comando. È un approccio realistico?

Risposte:


7

È possibile utilizzare Puppet per creare file di configurazione specificando quali pacchetti devono essere installati e è possibile utilizzare Dropbox anziché un server Puppetmaster per sincronizzare la configurazione Puppet tra macchine, oltre a un cron job per eseguire periodicamente Puppet e implementare eventuali modifiche alla configurazione.


Questa è un'ottima idea per un numero limitato di macchine. In un ambiente più ampio, dovresti assolutamente avere un burattinaio. Dove lavoro gestiamo migliaia di macchine con le marionette.
Ed Manet,

9

Non so se esiste un modo migliore (probabilmente esiste), ma a seconda della scala di cui hai bisogno, potresti utilizzare la funzione di ricerca di aptitude per parte del macchinario. Ti consente di cercare pacchetti corrispondenti a un modello. Quindi, aptitude search '~i'ti dà tutti i pacchetti installati

Dobbiamo fare un passo ulteriore, però. Al gestore dei pacchetti piace sapere quali pacchetti sono stati richiesti direttamente da te e quali sono stati appena inseriti a causa di altri pacchetti. Senza queste informazioni, possono succedere cose brutte. Quindi, possiamo espandere su quel modello di ricerca per selezionare i pacchetti che non vengono installati automaticamente:aptitude search '!~M ~i'

La funzione di ricerca è descritta in dettaglio nel manuale di riferimento di Aptitude .

Ora hai la tua lista di pacchetti da installare. È possibile formattare l'output secondo necessità passando il flag -F a quel comando, come -F '% p' ​​per ottenere un elenco con solo i nomi dei pacchetti.


Ad esempio , potresti eseguirlo sulla macchina 1 :

aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh

Quindi copiare il aptshell.shfile appena creato sulla macchina 2 e utilizzare questo comando sulla macchina 2 per eseguirlo lì:

sudo sh aptshell.sh

Quindi ripetere il processo, con la macchina originale 2 come nuova macchina 1 e la macchina originale 1 come nuova macchina 2 . Ora ogni macchina ha tutti i pacchetti che prima erano solo sull'altra.


Sarebbe bello includere versioni ... la macchina 1 potrebbe aver trattenuto le versioni, per esempio e la macchina 2 dovrebbe riflettere che
Rondo

ad es. aptitude -F "% c% p% V" - ricerca colonne disabilitabili '! ~ M ~ i' | awk -F "" '{print "apt-get -y install" $ 2 "=" $ 3}'> aptshell.sh
Rondo,

2

Questa è una vecchia domanda, ma dal momento che nessuno l'ha detto, potresti fare qualcosa con dpkg e cron. Imposta un lavoro cron che fa qualcosa di intelligente con i comandi get-selections e set-selections di dpkg.

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

Questa non è una soluzione proposta, dovrai trovare un modo per assicurarti che selections.dpkg venga aggiornato ogni volta che apporti una modifica su entrambi i computer ...


2

Ubuntu Software Center ha una funzione per sincronizzare i pacchetti installati tra più computer. Usa il tuo account Ubuntu One per salvare i pacchetti. Basta selezionare File > Sync Between Computers...e accedere con il tuo account Ubuntu One.

Sincronizzazione dei pacchetti con Ubuntu Software Center

Attualmente ha in qualche modo funzionalità limitate, ad esempio supporta solo pacchetti predefiniti (non ppa), ed è necessario selezionare manualmente quali pacchetti installare (questo può essere visto come una caratteristica positiva difficile). Per istruzioni dettagliate, vedere questo articolo .


-2

Non sarai in grado di utilizzare Dropbox per sincronizzare le installazioni di pacchetti.

Synaptic ha un modo per salvare un elenco di download di pacchetti, ma non sono sicuro che gestisca il caso di "tutto ciò che è mai stato installato" piuttosto che solo "questi sono i pacchetti che voglio scaricare questa volta"


-1 poiché la tua ipotesi non è corretta, la domanda descrive un processo per implementare che, usando un elenco di installazione / rimozione, sta solo chiedendo se esiste un'implementazione realistica, per la descrizione della domanda il dropbox è solo il mezzo utilizzato per scambiare gli elenchi di sincronizzazione
João Pinto,
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.