PDA

View Full Version : apt


#!/bin/sh
08-01-2003, 07:58
Un domandone. Penso di avere un problema molto comune. A casa ho un modem 56k e al lavoro ho una connessione superveloce. Ora la cosa che mi sempre trattenuto dal passare a debian è che con la mia mitica red bugz quando mi voglio installare ad esempio il kde mi scarico tutti i pacchetti con la linea superveloce, me li masterizzo e poi me li installo a casa. Con debian di puo' fare una roba simile? Cioè mi faccio dei bei cd con la roba che mi ineressa e poi me la installo a casa off-line? Apt funza da dio, ma se mi devo installare il kde con un 56k... Grazie e scusate l'ignoranza.

NZ
08-01-2003, 09:59
Originally posted by "#!/bin/sh"

Un domandone. Penso di avere un problema molto comune. A casa ho un modem 56k e al lavoro ho una connessione superveloce. Ora la cosa che mi sempre trattenuto dal passare a debian è che con la mia mitica red bugz quando mi voglio installare ad esempio il kde mi scarico tutti i pacchetti con la linea superveloce, me li masterizzo e poi me li installo a casa. Con debian di puo' fare una roba simile? Cioè mi faccio dei bei cd con la roba che mi ineressa e poi me la installo a casa off-line? Apt funza da dio, ma se mi devo installare il kde con un 56k... Grazie e scusate l'ignoranza.
Sono nella tua stessa identica situazione ;) :(
a casa ho un 56k e non posso mettere Woody perchè mi è impossibile trasformarla in Sid (e ormai i nuovi programmi sono solo per Sid....)
Ho un amico all'università che scarica a 2MB/s :cool:
sarebbe possibile scaricare i pacchetti .deb per l'upgrade a Sid + i vari kde e company e poi installarli a casa off-line? :confused:
Se si cosa e da dove devo scaricare?

Ciao ;)

qweasdzxc
08-01-2003, 12:17
OVVIO che si puo, c'e apt-zip ad esempio, oppure anche altri sistemi. non li ho mai usati, ma c'e chi li usa, quindi si puo...

http://packages.debian.org/unstable/admin/apt-zip.html

#!/bin/sh
08-01-2003, 12:26
se si come?

qweasdzxc
08-01-2003, 12:29
senza averlo mai usato, ma solo leggendo la descrizione del pacchetto mi pare di capire:
apt-getti apt-zip sulla tua debian. dopo avere configurato qualcosa o forse neanche, fai dist-upgrade, da qualche parte salta fuori una lista di roba da scaricare, che puo essere data in pasto a wget su un qualsiasi pc connesso velocemente a internet con qualsiasi os. una volta scaricata la roba la si mette su un cdrw, e la si riporta a casa. dovrebbe essere na cosa del genere.

qweasdzxc
08-01-2003, 12:32
ho letto adesso il manpage, mi pare gia piu chiaro, dacci un occhiata.

#!/bin/sh
08-01-2003, 12:35
mmm. non fa quello che intendevo.

qweasdzxc
08-01-2003, 12:40
mi pareva facesse esattamente quello che chiedevi... cosa intendevi?

#!/bin/sh
08-01-2003, 13:17
ho una lista di deb scaricati da internet e li voglio installare con apt risolvendo automaticamente le dipendenze. Se riesco a risolvere sto problema passo a debian. Fino ad oggi è stato l'nico motivo che mi ha trattenuto dal farlo.

qweasdzxc
08-01-2003, 13:25
Originally posted by "#!/bin/sh"

ho una lista di deb scaricati da internet e li voglio installare con apt risolvendo automaticamente le dipendenze.

intanto non dovresti avere una lista di deb gia scaricati. i deb (tipo kde) li scarichi da dei repository con apt. e se lasci fare sto lavoro ad apt, poi ci pensa apt-zip a generare la lista comprensiva delle dipendenze credo.
in secondo luogo, se ormai li hai gia scaricati, o se sono deb che non erano presenti in nessun repository, creati un repository locale, sotto ti spiego come, e dandolo in pasto ad apt, di nuovo le dipendenze dovrebbero venire risolte automaticamente, e con apt-zip ti porti a spasso la lista di tutto quello che si deve scaricare, comprensivo di dipendenze (molto in teoria, ho solo provato a lanciare una volta apt-zip poco fa e mi pare sia tutto fattibile)

per creare un repostory locale (io lo uso per metterci i kernel che mi compilo, o i pacchetti deb che mi compilo):

si apt-getta boa (o altro server web se non lo si ha gia installato tipo apache, ma boa e piu leggero), si copiano i deb dentro /var/www/debian/ o da qualche parte in quelle zone, dalla dir /var/www/debian si
da il comando "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz", e si
aggiunge "deb http://localhost/debian ./" a /etc/apt/sources.list

qweasdzxc
08-01-2003, 13:29
mmm mi e venuta in mente una domanda, prima hai scritto:

"con la mia mitica red bugz quando mi voglio installare ad esempio il kde mi scarico tutti i pacchetti con la linea superveloce, me li masterizzo e poi me li installo a casa."

ma non c'e manco una dipendenza non risolta quando lo fai? cioe scarichi tutti i pacchetti necessari comprensivi di dipendenze a mano? mentre se provi con i deb quali sono le dipendenze non risolte?

AnonimoVeneziano
08-01-2003, 13:44
Ma scusami qweasdzxc , e DPKG???? E' un po' come il RPM di red bug! APT è solo un interfaccia a dpkg , basta che scarichi i filez .deb e poi li installi ;)

Ciao

qweasdzxc
08-01-2003, 13:47
Originally posted by "AnonimoVeneziano"

Ma scusami qweasdzxc , e DPKG???? E' un po' come il RPM di red bug! APT è solo un interfaccia a dpkg , basta che scarichi i filez .deb e poi li installi ;)

Ciao

e le dipendenze come le installi? se hai 1-2 deb da installare, lo si fa a mano, mica ci sono problemi. kde non lo installerei a mano invece neanche morto.

o sono io scemo, e lui chiedeva solo quale era l'equivalente di rpm in debian?

AnonimoVeneziano
08-01-2003, 14:14
Originally posted by "qweasdzxc"



e le dipendenze come le installi? se hai 1-2 deb da installare, lo si fa a mano, mica ci sono problemi. kde non lo installerei a mano invece neanche morto.

o sono io scemo, e lui chiedeva solo quale era l'equivalente di rpm in debian?

Perchè, da quando in qua RPM risolve le dipendenze da solo ? Io ho capito che lui chiedeva come scaricarsi le cose su un CD , dpkg è certo una soluzione, le dipendenze dovrebbero essere scritte prima di scaricare un qualsiasi programma, sopratttutto sul sito debian

CIao

qweasdzxc
08-01-2003, 15:00
Originally posted by "AnonimoVeneziano"



Perchè, da quando in qua RPM risolve le dipendenze da solo ? Io ho capito che lui chiedeva come scaricarsi le cose su un CD , dpkg è certo una soluzione, le dipendenze dovrebbero essere scritte prima di scaricare un qualsiasi programma, sopratttutto sul sito debian

CIao

eh, mi e sorto il dubbio ripensando al fatto che lui lo faceva gia con rpm, ma mi pareva troppo banale come domanda... siccome parlava di apt... pensavo lo volesse fare a quel modo (che comunque e IL modo, non appena il numero di pacchetti da installare supera le poche unita)
#!/bin/sh, ma tu volevi anche risolvere tutte le dipendenze automaticamente?
in ogni caso alcune delle procedure che ho scritto possono essere molto utili e semplificare il lavoro penso.

#!/bin/sh
08-01-2003, 16:11
io il kde di solito lo scarico con i sorgenti delgi rpm. ricompilo gli rpm e poi me li installo da solo. :) ci metto una vita ma va un pelo di +. Io voglio semplicemente dare in pasto ad apt una lista di pacchetti deb. Poi visto che se ho ben capito i pacchetti che installo con apt-get install me li sbette tutti in una directory, poi me li masterizzo e se devo reinstallare li do direttamente in pasto ad apt senza riscaricarmi nulla. alla fine mi sono letto un po dell'apt how-to e li descrive una procedura simile a qualla di qweasdzxc. La copio paro paro:
2.2 Come usare APT localmente
Può capitare di avere dei pacchetti .deb da installare e lo si vuole fare usando APT così che le dipendenze siano risolte automaticamente.

Per rendere visibili ad APT questi pacchetti è necessario creare un archivio locale ed indicizzarlo; per farlo bisogna creare una directory e metterci dentro i .deb da trattare. Per esempio:

mkdir /root/debs
È possibile modificare le opzioni nel file di controllo dei pacchetti contenuti nell'archivio locale usando il file override. Dentro questo file si possono definire alcune opzioni che hanno precedenza su quelle predefinite nei pacchetti. Il suo formato dovrebbe assomigliare a quello che segue:

pacchetto priorità sezione
dove `pacchetto' è il nome del pacchetto, `priorità' può essere low, medium o high e `sezione' è la sezione alla quale appartiene. Il nome di questo file non è importante, e successivamente dovrà essere passato come argomento a dpkg-scanpackages. Se non si vuole scrivere o usare un file override, è sufficiente usare /dev/null quando si chiama dpkg-scanpackages.

Rimanendo nella directory /root eseguire:

dpkg-scanpackages debs file | gzip > debs/Packages.gz
Nella linea sopra, file è il file di override, il comando genera il file Packages.gz, questo contiene delle informazioni sui pacchetti, che saranno usate da APT. Infine, per usare i nostri pacchetti, aggiungere questa linea a /etc/apt/source.list:

deb file:/root debs/
Adesso si può usare APT normalmente. Anche per i pacchetti sorgente si può generare un archivio locale. Per farlo si segue la stessa procedura, ma bisogna ricordarsi di avere i file .orig.tar.gz, .dsc e .diff.gz nella directory di lavoro e bisogna usare Sources.gz al posto di Packages.gz. Anche il programma da usare è diverso: per questa operazione va utilizzato dpkg-scansources. La linea di comando sarà simile a questa:

dpkg-scansources debs | gzip > debs/Sources.gz
Notare che dpkg-scansources non necessita del file di override. Infine aggiungere a /etc/apt/source.list:

deb-src file:/root debs/
L'unica cosa che non capisco è come generare un file di override (e quello che qweasdzxc sostituisci con /dev/null?).

qweasdzxc
08-01-2003, 17:05
Io voglio semplicemente dare in pasto ad apt una lista di pacchetti deb.

allora devi passare per forza per dpkg-scanpackages o procedure analoghe, il dpkg -i nomepacchetto.deb e' una procedura piu a basso livello di apt, che viene bypassato.

Poi visto che se ho ben capito i pacchetti che installo con apt-get install me li sbette tutti in una directory, poi me li masterizzo e se devo reinstallare li do direttamente in pasto ad apt senza riscaricarmi nulla.

si, i pacchetti stanno in /var/cache/apt, ma per farlo (masterizzarli e darli in pasto ad apt) devi prima generare almeno il Packages.gz con dpkg-scanpackage. credo ci siano forse tools specifici per fare il backup su cd della cache di apt, o forse no.
per aggiungere un cdrom alla lista di cdrom di apt c'e il comodo "apt-cdrom add" mi sembra

Per rendere visibili ad APT questi pacchetti è necessario creare un archivio locale ed indicizzarlo; per farlo bisogna creare una directory e metterci dentro i .deb da trattare. Per esempio:


giusto, io ho suggerito sbagliando anche di installare un mini-serverweb come boa, ma solo per mia deformazione personale ormai... apt prende la roba anche da una directory contenente il Packages.gz (o un cdrom ad esempio) senza passare per http o altro, semplicemente la riga da inserire in /etc/apt/sources.list sara un filo diversa. non ci avevo pensato, perche a casa ho cominciato subito a usare un serverino web, avendo una piccola lan e comodissimo per installare i pacchetti su piu pc.

mkdir /root/debs
È possibile modificare le opzioni nel file di controllo dei pacchetti contenuti nell'archivio locale usando il file override. Dentro questo file si possono definire alcune opzioni che hanno precedenza su quelle predefinite nei pacchetti. Il suo formato dovrebbe assomigliare a quello che segue:

mia considerazione personale: se i pacchetti sono fatti in un certo modo, e non fatti personalmente, e probabile che non ci sia bisogno di alcun file override, almeno a me non e capitato. driver nvidia ricompilati, kernel ricompilati, programmi scaricati da internet in formato deb perche non presenti in repository non ufficiali, vanno senza problemi, le dipendenze sono gestite bene ecc... ho un deb (riguardante i driver dello scanner) creato da me tramite checkinstall, che manca ad esempio delle informazioni relative alle dipendenze. forse il file override in questo caso potrebbe essere usato per specificare le dipendenze di quel pacchetto SENZA modificare il pacchetto? vabbe e un po incasinato.

Adesso si può usare APT normalmente. Anche per i pacchetti sorgente si può generare un archivio locale. Per farlo si segue la stessa procedura, ma bisogna ricordarsi di avere i file .orig.tar.gz, .dsc e .diff.gz nella directory di lavoro e bisogna usare Sources.gz al posto di Packages.gz. Anche il programma da usare è diverso: per questa operazione va utilizzato dpkg-scansources. La linea di comando sarà simile a questa:

dpkg-scansources debs | gzip > debs/Sources.gz
Notare che dpkg-scansources non necessita del file di override. Infine aggiungere a /etc/apt/source.list:

deb-src file:/root debs/

coi pacchetti sorgenti le cose si complicano, non
ci ho mai smanettato e per un po ancora non lo faro.

L'unica cosa che non capisco è come generare un file di override (e quello che qweasdzxc sostituisci con /dev/null?).

io me ne sono fregato. ma nel tuo caso credo che potrebbe essere necessario: ad esempio, per dire ad apt, nel caso trovi tra tutti i repository della sua lista, 2 files con la stessa versione, di prendere quelli di un determinato repository, cioe quello tuo locale. purtroppo questo non l'ho mai visto e non so come si fa di preciso, ma nel tuo caso penso ne valga la pena.

#!/bin/sh
08-01-2003, 18:22
mi son scaricato un po' di roba per debian e appena ho tempo faccio un po' di prove. la cosa mi interessa sia a livello personale sia professionale: devo fare una decina pc tutti uguali e per non diventare scemo volevo qualcosa di automatizzato e senza passare dalla rete. cmq se ho tutti i miei pacchettini .deb e poi genero Sources.gz apt dovrebbe funzionare. grazie per la superspiegazione qweasdzxc! :) :) :)

qweasdzxc
08-01-2003, 18:43
mi son scaricato un po' di roba per debian e appena ho tempo faccio un po' di prove. la cosa mi interessa sia a livello personale sia professionale: devo fare una decina pc tutti uguali e per non diventare scemo volevo qualcosa di automatizzato e senza passare dalla rete.

intendi 10 pc senza passare per la rete "internet", ma tra di loro sono in rete?
ci sono molti tools dedicati a te cose, installazioni multiple, cloning di sistemi, ecc... ho sentito parlare su http://www.debianplanet.org di cfengine, non so se possa fare al caso, dovrebbe essere dedicato alla configurazione, mettendo un repository locale di pacchetti su un pc (stavolta si tramite un serverweb o un proxy intelligente per apt (cosi scarichi una sola volta quello che serve) o un proxy generico) potrebbe essere utile.
http://packages.debian.org/stable/non-us/cfengine.html

comunque anche senza tools specifici la lista dei pacchetti installati ce l'hai con dpkg --get-selections > lista.txt, che puoi poi impostare in altri pc per ottenere gli stessi programmi installati con dpkg --set-selections

update di ieri, parlano anche di system imager
http://packages.debian.org/stable/admin/systemimager-client.html
http://packages.debian.org/stable/admin/systemimager-server.html

probabile che ci siano anche altri tools magari piu adatti a quello che vuoi fare, prova qualche ricerca.

se intendevi 10 pc non in rete, boh, forse cfengine potrebbe comunque funzionare.

poi genero Sources.gz

Packages.gz

#!/bin/sh
08-01-2003, 18:55
i pc saranno messi in una lan. il problema è che devo trovare anche il modo di rendere l'installazione il + semplice possibile anche per un eventuale ripristino. La cosa che mi attirava di + era fare una installazione minimale con la debian e poi avere il mio cd con i .deb e installare tutto in una botta solo con apt. La procedura mi sembrava anche valida per il fatto che poteva essere fatta anche da chi di linux ci capiva poco.

qweasdzxc
08-01-2003, 19:25
idea:
una macchina installata e configurata a mano, da cui estrarre se possibile la configurazione.
un reporitory locale su un webserver o meglio ancora un proxy per apt intelligente come apt-proxy-v2 o apt-cacher, in cui metti i pacchetti che hai gia scaricato per non doverli riscaricare
poi
http://www.debian.org/releases/stable/i386/ch-install-methods.en.html#s-FAI
fai mi pare nato per creare velocemente cluster di pc, ma qui ne parlano come di un metodo anche per installare sistemi normali in modo unattended, bisogna investigare, mai neanche installato fai
poi non so se possa essere utile cfengine anche, boh.

#!/bin/sh
08-01-2003, 20:09
il problema è che non posso fare un repository locale (almeno per il momento non me lo lasciano fare). devo per forza fare tutto a manazza con i cd. :(

#!/bin/sh
09-01-2003, 12:31
ok mi sto impegnando: ho installa woody. ho upgettato le update e poi l'ho promossa a sid. ho un altro problema. per uscire su internet ho un proxy che autentica gli utenti con identd. Ho anche installato il pidentd, ma root non lo fa passare sui repository http. Come fo? Posso lanciarlo da utente normale?

qweasdzxc
09-01-2003, 12:37
ok mi sto impegnando: ho installa woody. ho upgettato le update e poi l'ho promossa a sid. ho un altro problema. per uscire su internet ho un proxy che autentica gli utenti con identd. Ho anche installato il pidentd, ma root non lo fa passare sui repository http. Come fo?
mmm non ne ho idea
Posso lanciarlo da utente normale?
no. forse funziona con un utente appartenente al gruppo root, ma ho dei dubbi.

#!/bin/sh
09-01-2003, 17:51
mi tocca usare i repository ftp. il mio proxy mi si rivolta contro. :cry:

#!/bin/sh
10-01-2003, 23:14
FUNZIONAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!! Debian arrivoo!!! Che bello mi sono installato knoppix3.1 e poi gli ho upgradato il kde al 3.0.5a. Se riesco a prender un po' di confidenza faccio il salto del fosso e poto redbugz. :D :D :D

qweasdzxc
10-01-2003, 23:29
lo devo scrivere? e va bene allora lo scrivo:

if (confidenza>prima)
utenti_debian++;

non picchiatemi per favore........

#!/bin/sh
11-01-2003, 07:28
il bello che l'upgrade l'ho fatto da un cd che ho fatto io tipo il 3° cd di linux&c. poi l'ho aggiunto alla source.list con apt-cdrom.

cdere
12-01-2003, 20:22
Originally posted by "qweasdzxc"


per creare un repostory locale (io lo uso per metterci i kernel che mi compilo, o i pacchetti deb che mi compilo):

Come fai a creare i deb da un sorgente ? no perchè mi sto compilando kde3 :D ed allora....

si apt-getta boa (o altro server web se non lo si ha gia installato tipo apache, ma boa e piu leggero), si copiano i deb dentro /var/www/debian/ o da qualche parte in quelle zone, dalla dir /var/www/debian si
da il comando "dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz", e si
aggiunge "deb http://localhost/debian ./" a /etc/apt/sources.list
fai prima ad aggiungere a sources.list

deb filesystem://directory/locale ./

al posto di fare tutto quel casinaccio con il webserver (che è pure insicuro) :rolleyes:

qweasdzxc
12-01-2003, 22:12
Come fai a creare i deb da un sorgente ? no perchè mi sto compilando kde3 :D ed allora....


beh, nel tuo caso ti consiglio di partire dai sorgenti pacchettizzati in deb se proprio vuoi compilare ottenendo un pacchetto deb. mettere in formato deb una roba grossa come kde (o gnome) non e affatto banale, meglio evitare. io per ora mi faccio pochi piccoli pacchetti tramite procedure automatizzate come checkinstall (che sostituisce il make install, generando un pacchetto deb) oppure genero pacchetti a partire da sorgenti tipo mplayer (di cui si ottiene un pacchetto deb in 1 comando) oppure da pacchetti deb sorgente (con l'intento di migliorare le prestazioni).


fai prima ad aggiungere a sources.list

deb filesystem://directory/locale ./

al posto di fare tutto quel casinaccio con il webserver (che è pure insicuro) :rolleyes:

hai ragione, si fa prima cosi, ma io ragionavo in termini di lan, per rendere i pacchetti disponibili a tutti i miei pc il webserver serve! poi non c'e problema di sicurezza perche 1) e visibile solo alla lan interna con tutti utenti "sicuri" e 2) non e neanche apache (che comunque e bello sicuro se aggiornato e configurato come dio comanda) ma boa o magari quello di bernstein, tanto deve solo fornire roba statica velocemente, per ste cose sono molto meglio i monothread, e per quanto riguarda la sicurezza sei in una botte di ferro.

cdere
14-01-2003, 12:56
capisco....

quindi per creare un .deb da per esempio xchat.tar.gz basta fare:

$ ./configure --with-options
$ make
$ checkinstall

e ti crea il deb ?

qweasdzxc
14-01-2003, 14:06
Originally posted by "cdere"

capisco....

quindi per creare un .deb da per esempio xchat.tar.gz basta fare:

$ ./configure --with-options
$ make
$ checkinstall

e ti crea il deb ?

in teoria si. io sconsiglierei di farlo con xchat (a meno che la versione in debian sia molto vecchia e non ci siano deb piu recenti in giro), visto che per tutti i pacchetti inclusi in debian puoi (con adeguato procedimento, apt-source, dpkg-buildpackage, ecc non so) compilarteli a partire dai sorgenti in debian, e viene fuori un deb sicuramente migliore (checkinstall non tiene conto delle dipendenze e altre cosine).