View previous topic :: View next topic |
Author |
Message |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Tue Jun 29, 2004 2:28 pm Post subject: [Howto] & [Tip] come ti faccio entrare il portage in 19M |
|
|
ATTENZIONE : Questo metodo è da ritenersi *sperimentale* e solo per utenti esperti che sanno cosa stanno facendo , non voglio tornare responsabile per eventuali problemi
vi siete mai accorti che la ${PORTDIR} in una reiserFS supera i 300M?
se non ci credete: Code: | # cd /usr/portage && du -sh --exclude=distfiles | ma io grazie a squashfs ho la ${PORTDIR} montata in loopback in questo file:
Code: | # ls -l /root/portage
-rwx------ 1 root root 19316736 29 giu 15:01 /root/portage | *** come potete vedere sono 19M ***
dopo di questo vorrei motivare il mio lavoro prima di esporlo:
questo sistema ovviamente non serve al desktop user, ma potrebbe tornare utile su quei pc poco dotati di hard disk dove anche 300mb sono "oro". Per non parlare della possibilità di tenersi il beneamato portage su di una penna usb o di altre idee geniali che ora non mi vengono in mente .
ora veniamo al metodo:
l'idea è quella di un mount in loopback compresso, il kernel non offre nulla a questo fine, e per questo ringraziamo i sviluppatori del filesystem squashFS che permette di montare partizioni compresse preparate con "mksquashfs", il programma base che crea da semplici directory e con grande semplicità un file di uscita (compresso) che poi sarà montato.
Sparker wrote: | NOTA: la patch per squashfs del gentoo-dev-sources-2.6.7-r6 è la versione 1.3. I file creati con gli squashfs-tools versione 2.0_alpha NON funzionano con questa patch, è necessario utilizzare la versione stabile (la 1.3 appunto) |
iniziamo con emergere sys-fs/squashfs-tools:
*** per i kernel 2.6+ è consigliabile la versione 2.0 che anche se ancora in versione alpha supporta tali kernel ***
*** io ho un kernel 2.6.7-gentoo-r5 patchato per squashfs con la 2.0 e non sembra essere instabile, anzi ***
Code: | # emerge -av squashfs-tools | questo vi fornisce la compilazione del tool di base "mksquashfs" ma non ancora il supporto del kernel
per patchare il kernel:
Code: | # ebuild /usr/portage/sys-fs/squashfs-tools/squashfs-tools-2.0_alpha.ebuild unpack | ***oppure, se state usando la versione stable***
Code: | # ebuild /usr/portage/sys-fs/squashfs-tools/squashfs-tools-1.3.ebuild unpack | -----entrate nella vostra dir del kernel:
Code: | # cd /usr/src/linux | -----e patchate così:
Code: | # patch -p1 < /var/tmp/portage/squashfs-tools-2.0_alpha/work/squashfs2.0/[VERSIONE PIÙ VICINA AL VOSTRO KERNEL] | ***io ho usato 2.6.6 per il 2.6.7 e non ci sono stati problemi***
-----compilare come modulo il supporto a squashfs:
***è situata in file system/misc. filesystem nel 2.6***
-----compilate il nuovo modulo così:
Code: | # make modules modules_install && modules-update |
***ora è tutto pronto per usare squashfs
da qui in giù c'è il metodo per sostituire la directory del portage in questo mount compresso.
-----editare make.conf
# nano /etc/make.conf
aggiungete queste 2 rige:
DISTDIR=/usr/distfiles
PKGDIR=/usr/packages
***siccome squashfs è read-only i distfiles vanno scaricati fuori dalla directory "/usr/portage"
-----creare il portage compresso con mksquashfs:
Code: | # mksquashfs /usr/portage/ /root/portage -e distfiles packages | la sintassi è semplice: directory da comprimere, destinazione, directory o file da escludere
-----muovere l'attuale /usr/portage/ altrove per sicurezza:
Code: | # mv /usr/portage/ /root/portagebackup/ | -----ricreare la directory portage Code: | # mkdir /usr/portage | -----e finalmente montare il filesystem di squashfs in questo modo:
Code: | # mount /root/portage /usr/portage -o loop -t squashfs | editare /etc/fstab aggiungendo la seguente riga: Code: | /root/portage /usr/portage squashfs loop 0 0 |
info @ http://squashfs.sourceforge.net/
ENJOY! (thanks to Sparker) _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071
Last edited by darkimage on Wed Jun 30, 2004 9:58 pm; edited 6 times in total |
|
Back to top |
|
 |
fedeliallalinea Administrator


Joined: 08 Mar 2003 Posts: 31527 Location: here
|
Posted: Tue Jun 29, 2004 2:31 pm Post subject: |
|
|
Ottimo tip quello che mi serviva proprio adesso grande. Tips award .
PS: per ogni punto non potresti usare un po' di bbcode cosi' almeno resta piu' chiaro? _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
 |
randomaze Bodhisattva


Joined: 21 Oct 2003 Posts: 9985
|
Posted: Tue Jun 29, 2004 2:38 pm Post subject: |
|
|
Domanda:
Perché squashFS e non gcloop?
/EDIT: Comunque ottimo tip, magari spiega che il FS é read-only quindi ogni volta che si vuol fare il sync bisogna ripetere il procedimento  _________________ Ciao da me! |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Tue Jun 29, 2004 2:48 pm Post subject: |
|
|
randomaze wrote: | Domanda:
Perché squashFS e non gcloop?
/EDIT: Comunque ottimo tip, magari spiega che il FS é read-only quindi ogni volta che si vuol fare il sync bisogna ripetere il procedimento  |
squashfs è più semplice da gestire per un utilizzo di questo tipo... con un comando si crea il file da usare per il mount
per l'emerge stavo pensando già di creare uno scriptino... che fà le seguenti operazioni...
***copia l'attuale portage in una directory temporanea che chiamerà "portemp"
***esegue l'emerge sync con la variabile $PORTDIR che punta a "portemp"
***umount di squashfs
***ri-creazione della squashfs da "portemp"
***elimina "portemp"
***mount di squashfs
che ne dici?  _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
fedeliallalinea Administrator


Joined: 08 Mar 2003 Posts: 31527 Location: here
|
Posted: Tue Jun 29, 2004 2:49 pm Post subject: |
|
|
darkimage wrote: | che ne dici?  |
Che e' un'ottima idea _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Tue Jun 29, 2004 3:00 pm Post subject: |
|
|
fedeliallalinea wrote: | darkimage wrote: | che ne dici?  |
Che e' un'ottima idea |
fonderiadigitale... lui potrebbe aiutarmi, non sono molto espert in bash scripting, di certo se non trovo nessuno che mi aiuta imparero  _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
randomaze Bodhisattva


Joined: 21 Oct 2003 Posts: 9985
|
Posted: Tue Jun 29, 2004 3:01 pm Post subject: |
|
|
darkimage wrote: | fonderiadigitale... lui potrebbe aiutarmi, non sono molto espert in bash scripting, di certo se non trovo nessuno che mi aiuta imparero  |
Tu inizia lo script... se hai domande fai pure  _________________ Ciao da me! |
|
Back to top |
|
 |
Sparker l33t


Joined: 28 Aug 2003 Posts: 992
|
Posted: Tue Jun 29, 2004 3:43 pm Post subject: |
|
|
Bellissimo!!!
Peccato il problema read-only.
Domanda semi-ot:
Ho due pc, A e B.
Faccio il sync sul pc A, comprimo il portage e lo copio sul pc B.
Ovviamente la cache di portage del pc B non viene aggiornata.
Per aggiornarla devo per forza usare "emerge regen" oppure posso copiarla in qualche modo dal pc A? |
|
Back to top |
|
 |
Sparker l33t


Joined: 28 Aug 2003 Posts: 992
|
Posted: Tue Jun 29, 2004 4:03 pm Post subject: |
|
|
Quote: | gentoo-dev-sources-2.6.7-r6 (24 Jun 2004)
+gentoo-dev-sources-2.6.7-r6.ebuild:
added squashfs to close bug #54884
|
|
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Tue Jun 29, 2004 4:19 pm Post subject: |
|
|
Sparker wrote: | Quote: | gentoo-dev-sources-2.6.7-r6 (24 Jun 2004)
+gentoo-dev-sources-2.6.7-r6.ebuild:
added squashfs to close bug #54884
|
|
alla gentoo mi leggono nel pensiero ?
grazie dell'informazione _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
federico Advocate


Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Tue Jun 29, 2004 4:23 pm Post subject: |
|
|
Devo provarlo e appena ho due minuti provo anche ad automatizzarlo...
Oltre che sui pc con poche disponibilita', a me sinceramente scoccia perdere 300 mega a per la portage dir... _________________ Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk |
|
Back to top |
|
 |
Sparker l33t


Joined: 28 Aug 2003 Posts: 992
|
Posted: Tue Jun 29, 2004 7:09 pm Post subject: Re: [Howto] & [Tip] come ti faccio entrare il portage in |
|
|
E' una stupidaggine, ma c'è un errore:
darkimage wrote: |
-----creare il portage compresso con mksquashfs:
Code: | # mksquashfs /[b]etc[/b]/portage/ /root/portage -e distfiles packages |
|
deve essere /usr/portage/ |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Tue Jun 29, 2004 11:04 pm Post subject: Re: [Howto] & [Tip] come ti faccio entrare il portage in |
|
|
Sparker wrote: | E' una stupidaggine, ma c'è un errore:
darkimage wrote: |
-----creare il portage compresso con mksquashfs:
Code: | # mksquashfs /[b]etc[/b]/portage/ /root/portage -e distfiles packages |
|
deve essere /usr/portage/ |
grazie infinite
correggo subito!  _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
federico Advocate


Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Wed Jun 30, 2004 7:42 am Post subject: |
|
|
Causa esami in uni nn ho ancora avuto il tempo di testare ma mi e' venuto un dubbio.. In termini di velocita' come si pone questo sistema? _________________ Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk |
|
Back to top |
|
 |
randomaze Bodhisattva


Joined: 21 Oct 2003 Posts: 9985
|
Posted: Wed Jun 30, 2004 7:49 am Post subject: |
|
|
federico wrote: | In termini di velocita' come si pone questo sistema? |
In teoria dovrebbe essere un degrado a causa della decompressione e un guadagno grazie al ridotto accesso al disco. Quindi tutto dipende dall'efficenza dello squashFS
Certo si potrebbe provare a mettere il file compresso su un ramdisk per vedere che succede  _________________ Ciao da me! |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Wed Jun 30, 2004 10:02 am Post subject: |
|
|
federico wrote: | Causa esami in uni nn ho ancora avuto il tempo di testare ma mi e' venuto un dubbio.. In termini di velocita' come si pone questo sistema? |
velocità per accedere a dei file piccolo come sono gli ebuild?
se prima ci mettevi 3 millesimi di secondo ora ce ne metti 4  _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
|
Back to top |
|
 |
federico Advocate


Joined: 18 Feb 2003 Posts: 3272 Location: Italy, Milano
|
Posted: Wed Jun 30, 2004 4:57 pm Post subject: |
|
|
Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?
L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi... _________________ Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
Posted: Wed Jun 30, 2004 6:57 pm Post subject: |
|
|
federico wrote: | Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?
L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi... |
l'emerge -s e -S và molto più veloce!!!  _________________ go:to > [Howto] come attivare il soft-mixing integrato di ALSA --- https://forums.gentoo.org/viewtopic.php?t=171247
go:to > [Howto] & [Tip] come ti faccio entrare il portage in 19M --- https://forums.gentoo.org/viewtopic.php?p=1293071 |
|
Back to top |
|
 |
Sparker l33t


Joined: 28 Aug 2003 Posts: 992
|
Posted: Wed Jun 30, 2004 7:33 pm Post subject: |
|
|
darkimage wrote: |
l'emerge -s e -S và molto più veloce!!!  |
Prevedibile. Invece di scansionare 10.000 files per 300Mb ne scansiona 1 da 20. Buona parte dell'overhead dovuto all'hd viene eliminato e rimane solo lavoro di CPU.
Update: contrariamente alla mia supposizione un test con emerge -S gentoolkit ha riportato 2m44s per squashfs contro 2m26s per il portage classico.
Ho utilizzato squashfs 1.3 per il motivo spiegato nel prossimo post, mi riservo di fare dei test con la versione 2.0
Last edited by Sparker on Wed Jun 30, 2004 8:18 pm; edited 3 times in total |
|
Back to top |
|
 |
Sparker l33t


Joined: 28 Aug 2003 Posts: 992
|
Posted: Wed Jun 30, 2004 7:44 pm Post subject: |
|
|
NOTA: la patch per squashfs del gentoo-dev-sources-2.6.7-r6 è la versione 1.3. I file creati con gli squashfs-tools versione 2.0_alpha NON funzionano con questa patch, è necessario utilizzare la versione stabile (la 1.3 appunto)
(oppure patchare con la 2.0 il kernel, ma non ho voglia ) |
|
Back to top |
|
 |
darkimage n00b


Joined: 22 Feb 2004 Posts: 51
|
|
Back to top |
|
 |
FonderiaDigitale Veteran


Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Wed Jun 30, 2004 10:05 pm Post subject: |
|
|
eccomi, se ti serve aiuto di pure (visto che mi hai cercato per nome ).
Bell'idea, non ci avevo pensato.. qualcuno puo fare una prova con un file loop ma non compresso, per vedere le prestazioni in relazione a questo? _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
 |
FonderiaDigitale Veteran


Joined: 06 Nov 2003 Posts: 1710 Location: Rome, Italy
|
Posted: Wed Jun 30, 2004 10:06 pm Post subject: |
|
|
darkimage wrote: | federico wrote: | Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?
L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi... |
l'emerge -s e -S và molto più veloce!!!  |
esearch in questo aiuta molto. _________________ Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica
|
|
Back to top |
|
 |
-Zigulì- n00b

Joined: 03 Sep 2004 Posts: 4
|
Posted: Fri Sep 03, 2004 10:09 pm Post subject: Update compress portage script |
|
|
Un salutone a tutti!
Volevo complimentarmi con darkimage per il suo ottimo suggerimento, che fa decisamente al mio caso...
Preciso che sono piuttosto niubbo di linux e che questo è il mio primo post (il primo post non si scorda mai )
Parlavate di script in questa discussione, ma non avendone visti, ne ho scritto uno a manina manella .
Inutile dire che la limitazione è di avere almeno 300MB di spazio libero(almeno temporaneamente).
E' rozzo, ma funzionale.
Personalmente l'ho piazzato in crontab, ma ognuno è libero di farci quello che vuole!
Update-compress-portage-script
Code: | #!/bin/bash
# oppure /usr/local/bin/bash
CREATED=24/08/2004
MODIFIED=25/08/2004
MODIFIED=26/08/2004
MODIFIED=27/08/2004
MODIFIED=30/08/2004
MODIFIED=31/08/2004
MODIFIED=01/09/2004
VERSION=9
AUTHOR='Matteo'
## VARIABILI - Settaggio dei percorsi
PORT_TEMP=/usr/portemp
PORT_DIR=/usr/portage
FILE_COMP=/usr/portage.gz
LOG=/var/log/portage.log
cat /dev/null > $LOG
SILENT=0
MOUNT=`mount | grep "$FILE_COMP" | head -n 1 | awk '{print $1}'`
versione() {
echo "Update compress portage script version is $VERSION"
}
errore() {
echo -e "$@: option not found.
Please check the command syntax or try to digit --help for some useful information\n"
}
informazione() {
echo -e "\nDescriptive part not yet implemented\n"
sleep 1
}
aiuto() {
echo -e "\n^[[01m:: UPDATE PORTAGE - Help summary - ($MODIFIED)^[[00m [ $AUTHOR ]
Bash script
Usage: check-antivirus [ -h | -i | -s | -d | -v ]
-h --help show this help
-i --information show some information about this script
-s --silent no output on standard output
-v --version show the version of this script\n"
}
commento(){
if [ $SILENT -eq 0 ] ; then
echo -n "^[[01;32m*^[[00m $1"
fi
}
fatto(){
if [ $SILENT -eq 0 ] ; then
echo '...done'
fi
}
main(){
## PREDISPOSIZIONE ALL'AGGIORNAMENTO - viene ripristinata la situazione "normale"
commento 'Creazione directory temporanea'
if [ ! -e $PORT_TEMP ] ; then
mkdir $PORT_TEMP
else
rm -r $PORT_TEMP/* &> /dev/null
fi
fatto
commento 'Copia file di portage in una cartella temporanea'
if [ ! -e $PORT_DIR ] ; then
cp -rp $PORT_DIR/* $PORT_TEMP
fi
fatto
commento 'Smontaggio della directory compressa'
while [ ! -z $MOUNT ] ; do
umount $PORT_DIR
MOUNT=`mount | grep "$FILE_COMP" | head -n 1 | awk '{print $1}'`
done
fatto
commento 'Eliminazione cartella portage e file compressi'
if [ -e $PORT_DIR ] ; then
rm -r $PORT_DIR
fi
if [ -e $FILE_COMP ] ; then
rm $FILE_COMP
fi
fatto
mv $PORT_TEMP $PORT_DIR
## AGGIORNAMENTO DI PORTAGE
commento 'Aggiornamento di portage'
echo -e "\n\n\n### AGGIORNAMENTO DI PORTAGE" >> $LOG
emerge sync >> $LOG 2>&1
fatto
## CREAZIONE DIRECTORY COMPRESSA
commento 'Creazione directory compressa'
echo -e "\n\n\n### CREAZIONE DIRECTORY COMPRESSA" >> $LOG
mksquashfs $PORT_DIR $FILE_COMP -noappend -no-duplicates -e distfiles packages >> $LOG
fatto
commento 'Eliminazione cartella portage non compressa'
if [ `ls $PORT_DIR | wc -l` -gt 0 ] ; then
rm -r $PORT_DIR/*
fi
fatto
## MOUNT DELLA DIRECTORY
commento 'Montaggio della cartella compressa'
mount $FILE_COMP $PORT_DIR -o loop -t squashfs
fatto
}
## MENU' DI SCELTA
case ${1:-'main'} in
'--help' | '-h' ) aiuto ;;
'--version' | '-v' ) versione ;;
'--information'| '-i' ) informazione ;;
'--silent' | '-s' ) SILENT=1 ; main ;;
'main' ) main ;;
* ) errore $@ ;;
esac |
_________________ ~ Nulla è ciò che sembra ~ |
|
Back to top |
|
 |
|