Aggiornare con apt-get …scaricando i pacchetti da windows

di Fabio Vannini

Questa guida nasce un paio di anni fa, quando usavo Mepis 3.3.2 e non avevo l’adsl, per cui l’unico modo di tenerla aggiornata o installare programmi era scaricare tutti i file (incluse le dipendenze) in ufficio, dove ho Windows, e poi portarli a casa e lì installare il tutto.

Piu’ tardi un amico con Kubuntu nelle mie stesse condizioni mi chiese come facevo, e cosi’ dopo averla semplificata al massimo… Eccola qua.


Requisiti

Avremo bisogno di:

  • Un sistema Linux che ovviamente abbia apt-get come gestore dei pacchetti. Qualsiasi derivata di Debian e Ubuntu va bene.
  • Un sistema windows connesso ad ADSL o comunque internet (preferibilmente veloce)
  • Un dispositivo rimovibile per trasportare dati da un sistema all’altro. Va bene una chiavetta USB, un CD riscrivibile, un disco esterno…

Preparazione dei sistemi

Su Linux

Creare un repository locale

  1. Crea la cartella RepositoryLocale:
    $: sudo mkdir /var/cache/apt/RepositoryLocale
  2. Aggiungila alle fonti da dove Synaptic va a cercare gli aggiornamenti, inserendo queste righe in /etc/apt/sources.list:
    # Repository locale
    deb file:/var/cache/apt/ RepositoryLocale/
  3. Sempre in sources.list sostituisci “http://” con “ftp://” in tutti gli URL dei repository (questo serve perche’ wgetwin non sono mai riuscito a farlo andare con http, ma solo con ftp)

Su Windows

  1. Scarica il file “http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip” e scompattalo dove vuoi, ad es. nella cartella Wgetwin sul Desktop. Ora Wget e’ funzionante nel tuo sistema Windows senza bisogno di alcuna installazione.
  2. All’interno di questa cartella crea un file di testo e chiamalo “Scarica.bat” e copiaci le seguenti righe:
    wget -o logfile.txt -i lista.txt
    md Files
    copy *.deb Files*.*
    copy lista.txt Files*.*
    copy logfile.txt Files*.*
    del *.deb
    del lista.txt
    del logfile.txt

Uso

Su Kubuntu

  1. Apri Synaptic, clicca sul pulsante “Ricarica” e attendi di scaricare l’elenco dei pacchetti disponibili
  2. Seleziona il pacchetto che vuoi installare o direttamente “Marca tutti gli aggiornamenti”
  3. Clicca su “File” > “Genera script per il download del pacchetto” e scegli di salvare il file sul Desktop col nome “lista.txt”
  4. Copialo sulla chiavetta

Su Windows

  1. Copia il file “lista.txt” nella cartella dove hai scompattato Wgetwin
  2. Fai doppio click sul collegamento al file “Scarica.bat” e attendi che scarichi tutti i file e li metta nella cartella “Files”.
  3. Entra nella cartella “Files” che e’ stata creata e verifica che nel “logfile.txt” non sia presente la stringa “No such file” che si riferisce a file che non sono stati trovati (magari per lavori sui repository)
  4. Se e’ tutto ok copia i file .deb sulla chiavetta

Su Kubuntu

  1. Copia i file .deb nella cartella “RepositoryLocale”
  2. Apri un terminale e digita:
    $: cd /vat/cache/apt
    $: sudo dpkg-scanpackages RepositoryLocale /dev/null |gzip > RepositoryLocale/Packages.gz
  3. Apri Synaptic, clicca su “Impostazioni” > “Archivi dei pacchetti”, togli la spunta a tutti i repository e mettila al repository locale
  4. Clicca sul pulsante “Ricarica” e attendi di scaricare l’elenco dei pacchetti disponibili
  5. Clicca sul pulsante “Marca tutti gli aggiornamenti” e poi sul pulsante “Applica”

Questo dovrebbe installare tutti i pacchetti scaricati dal sistema windows

– – –

Vuoi scrivere per pollycoke anche tu? È semplice, consulta la pagina “Contributi” :)

25 pensieri su “Aggiornare con apt-get …scaricando i pacchetti da windows

  1. Che spettacolo!!! Avessi avuto questa guida qualche anno fa mi sarei risparmiato un sacco di imprecazioni!! (la mia prima esperienza con le installazioni in linux senza una connessione internet è stata davvero traumatica! :P)

    Bell’idea Fabio!

  2. …..a questo punto ci vorrebbe un bell’articolo per riuscire a oltrepassare un ISA server di quelli tosti che non si lascia fregare neppure da NTLMaps……apt-get, che aveva sempre funzionato alla perfezione, ora non funziona più…..solo Firefox riesce ad uscire (con qualche problema) con le dovute credenziali….addio aggiornamenti…..anche con questa interessante notizia che hai dato.

  3. Davvero Utile!
    non mi è chiaro però un punto: come fà synaptic nel primo passaggio ( quello in cui si marcano i pacchetti da installare ) a scaricare la lista aggiornamenti se non è connesso a internet ?
    Bisogna usare la linea analogica ?

    Un alternativa potrebbe essere ( se si hanno win e linux sulla stessa macchina ) di creare una macchina virtuale vmware specificando come hard disk la partizione di linux e creare una rete vmware. In questo modo linux avrebbe, almeno temporaneamente, un accesso a internet adsl funzionante. La procedura è molto rischiosa ma può risultare utile per chi vuole provare gli effetti 3d di compiz (non accessibili in emulazione ) in una macchina sprovvista di accesso a internet.

  4. Felipe capiti proprio quando mi servi con questa guida! =)
    Ne avevo proprio bisogno per lunedì che devo aggiornare un portatile con kubuntu :o

  5. @ tutti: felice di poter essere stato utile a qualcuno, ricambio solo un po’ di quel che ho ricevuto. Piuttosto, visto che è possibile installare apt e synaptic anche su Mandriva, sarebbe interessante sapere se funziona anche con quest’ultima.

    @ Vigliag: sì, ovviamente serve una linea analogica.
    Se non si hanno win e lin sulla stessa macchina invece e la macchina è completamente priva di connessione internet tra le opzioni di wgetwin c’è il modo di scaricare i file ricostruendo la struttura della directory dove si trovano e quindi, in pratica, si riesce a ricostruire in locale la struttura dei repository con solo i file necessari (Release e packages) per permettere ad apt di fare l’update.

    Ciao

  6. Ma c’è davvero bisogno di creare il repository locale? Io semplicemente copio i .deb scaricati in /var/cache/apt/archives e lancio install o dist-upgrade e funziona perfettamente.

  7. visto che non ho synaptic ma quella mezza sega di adept esiste una alternativa, anche da terminale a

    “Clicca su “File” > “Genera script per il download del pacchetto” e scegli di salvare il file sul Desktop col nome “lista.txt”” ?

    grazie

  8. opps. scusate, ho letto il primo commento e tutto si è risolto

    ciao

    PS.
    Ovviamente sono un altro Fabio (non Fabio Vannini), ma mi sa che si era capito

  9. @ Fabrizio: effettivamente non ci sarebbe bisogno di creare il repo locale se lo metti in /var/cache/apt/. Questa guida è nata + che altro x il mio amico ai tempi abbastanza “utonto” (lo siamo stati tutti) per cui a lui la cartella RepositoryLocale gliela avevo fatta mettere direttamente nella home in modo che potesse fare copia-incolla dei file scaricati dall’hd portatile a Kubuntu senza usare konqueror come root. Inoltre per creare il file Packages.gz gli avevo fatto un collegamento sul desktop ad uno scriptino (con i soliti comandi) in modo che lui ci faceva doppio click sopra e poi era a posto.

    @ Fabio mio omonimo: con apt-zip riesci a fare tutto anche da linea di comando (puoi seguire l’ottima guida che trovi qui http://guide.debianizzati.org/index.php/Apt-zip:_aggiornamenti_senza_una_connessione_veloce#Introduzione) ma sinceramente i primi due comandi che dò quando installo una Kubuntu sono “apt-get update” e “apt-get install synaptic” (è sicuramente un mio limite: non riesco neppure a concepire una distro con apt ma senza synaptic) :-)

  10. Grande guida, è proprio il mio caso
    Qualcuno ha un ‘file.txt’ da utilizzare come esempio?

    grazie

  11. X lo stesso programma varia da pc a pc proprio xché include anche tutte le dipendenze che variano da installazione ad installazione.

  12. ma per me che non ho connessione su ubuntu e quindi non posso neanche scaricare la lista dei pacchetti c’è una soluzione???
    qualcuno non potrebbe mandarmi una lista da utilizzare???
    purtroppo non riesco a far funzionare il modem usb e quindi speravo che aggiornadno i pacchetti potesse cambiare qualcosa….
    grazie

  13. Ho installato Kubuntu 7.04 su un hd proprio, su di una macchiana avente già WinzXp. Solo che nn riesko ad impostare il KNetworkManager per accedere ad internet (ho Alice Dsl connexa con Ethernet, che da winz funge tranquillamente). Ciò significa che non solo nn sono capace ad usare Kubuntu, ma nn ho potuto neppure fare gli aggiornamenti del sistema in lingua italiana (infatti la maggior parte dei menù è in inglese).

    Ho sentito parlare di WiCD, però nn avendo la connessione nn so proprio come fare per installarlo direttamente da Kubu e quanto detto prima in questo mini-howto lo trovo veramente difficile. In pratica ora ho un pacchetto .deb di 83kb sul desktop di Kubu e non so cosa cavolo devo “dirgli” per installarsi! V_V! Ho provato anche a parlare al monitor in tedesco, gridandogli “installati”, ma niente ^_^!

  14. Anche io ho lo stesso problema di un pc non connesso ad una linea veloce ed anche io avevo ipotizzato di usare il sistema proposto. Purtroppo sono stato fregato da un fulmine che ha “bruciato” il mio modem seriale, per cui, senza lista dei pacchetti aggiornata, sono fregato. Ma pensa che ti tipensa, ho una mezza soluzione…
    E’ ovvio che a questo punto è a tutti i costi necessario avere in qualche modo apt-get. Googolando sembra non esista un porting di apt-get per windows, che risolverebbe il problema, perciò è necessario far “girare” una qualsisasi versione di linux dotata di apt su un un pc con windows. La risposta è quindi una macchina virtuale. Io suggerisco qemu perchè può funzionare senza la necessità di installare nulla (anche se l’installazione di kqemu rende l’esecuzione molto più veloce… ). Al momento ho fatto i miei esperimenti lanciando il live cd di knoppix e richiamando apt-get -d -build-dep, in modo da scaricare senza installare i pacchetti e costruire l’intero albero delle dipendenze. Si ha il difetto di scaricare un mare di cose forse inutili, ma il presupposto è quello di avere a disposizione una connessione veloce. Resta da scegliere la distribuzione più “furba” da usare, cioè la più veloce e leggera possibile, che magari fornisca anche solo una shell, forse una debian base potrebbe andare? Un altro problema riscontrato è questa volta colpa di qemu: nella versione windows la macchina sembra non sia in grado di rilevare le periferiche USB, pertanto scordatevi di salvare direttamente su chiavetta. Se il vostro sistema ha un HD con una partizione FAT però siete a cavallo, perchè queste invece funzionano, quindi si può salvare lì e poi copiare dove si vuole da windows. Che ne pensate?

  15. Ah!… dimenticavo!… La soluzione più semplice, se lo si può fare è quella di usare apt-get -d -build-dep direttamente da live-cd! Io uso knoppix che va benissimo! Purtroppo se uno è magari al lavoro con knoppix che gira non è che può far finta di lavorare mentre scarica…

  16. Ciao a tutti!
    Premetto di essere un principiante del mondo linux anche se ho una discreta esperienza in generale del mondo dei PC.
    Ho seguito questa guida che mi risolveva il problema dell’aggiornamento di un’aula scolastica di 10 PC dove c’è solo l’ISDN.
    In queso momento sto facendo gli aggiornamenti da repository locale e questo è già un gra risultato, ma il percorso non è stato senza ostacoli.
    Volevo segnalare dell cose che ho dovuto modificare e/o integrare per arrivare al risultato:
    1)Con il bat descritto la cartella files mi si è presentata vuota e mi è stato cancellato anche il file lista.TXT. secondo me ( cosa che ho fatto ottenendo il risultato le tre righe
    copy *.deb Files*.*
    copy lista.txt Files*.*
    copy logfile.txt Files*.*

    vanno modificate in

    copy *.deb disco:\cartellawget\Files*.*
    copy lista.txt disco:\cartellawget\Files*.*
    copy logfile.txt disco:\cartellawget\Files*.*

    per evitare l’errore che ho riscontrato.

    2)Nel mio caso sono stato costretto a lanciare sudo apt-get install dpkg-dev per veder funzionare il comando di creazione del Packages.gz altrimnenti mi dava command not found.

    3)Ho dovuto commentare tutto quello che non fosse “deb file:/var/cache/apt/ RepositoryLocale/ ” altrimenti non c’erano santi di vederlo lavorare in locale ma prendeva la strada internet senza scampo. Questo forse è dovuto al fatto che pur cercandola non ho trovato la possibilità di definire il repository locale su Impostazioni” > “Archivi dei pacchetti………..
    Ho toppato io o siete dell’idea che le variazioni che ho messo in piedi fossero necessarie?
    Grazie infinite comunque a chi ha speso il suo tempo a scrivere questa guida!
    Gio

  17. Scusate la totale ignoranza in materia, ma sono ultraneofito con Linux.
    Ho installato su un portatile Ubuntu 7.10 e grazie al collegamento wirless posso aggiornare tranquillamente il sistema e scaricarmi nuovi pacchetti.
    Soddisfatto del sistema operativo, ho deciso di installarlo pure sul PC fisso a casa e qui aimè sono sorti i problemi in quanto non ho un collegamento adsl. Per fare i primi aggiornamenti ho portato il pc da un amico e l’ho messo in rete li, ma ora come faccio ?
    La mia domanda è … se genero il pacchetto per il download (comando presente in sinaptic), lo porto sul portatile (che ha wirless), come cavolo faccio a scaricare i pacchetti per poi installarli sul pc fisso ???
    Ho provato a fare quanto sopra scritto in win, ma non posso scaricare i dati (Intranet)

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...