# Spazio disco x /var/tmp/portage + /var/tmp/ccache

## kueitao

Salve,

L'ultimo ciclo di compilazioni "emerge -uD world" si è bloccato perché su /var non c'é più spazio. Sono andato a controllare con "du" e ho notato che le cartelle /var/tmp/portage e /var/tmp/ccache si sono prese la bellezza di circa 10 GB.

Analizzando le suddette directories una per una ho visto un paio di cose che mi sembrano un po' strane.

1) In /var/tmp/portage esistono giustamente almeno tante sub-directories tanti quanti sono i pacchetti installati nel sistema. Quello che invece mi appare come un problema è che coesistono anche le subdirectories relative a versioni precedenti degli stessi pacchetti. Ad esempio ho trovato udev-045, udev-062, udev-063 e altre udev-*, per un totale di ben 11 cartelle fino a udev-071 (che dovrebbe essere la versione più recente). La stessa cosa accade per tutti i pacchetti che dalla prima installazione sono stati aggiornati alle releases più recenti.

Si possono cancellare le directories relative ai pacchetti nelle loro versioni più vecchie lasciando solo quelle relativi alla release corrente? Se si, devo farlo manualmente con "rm" o esiste un qualche tool che si prende cura dell'operazione? In ogni caso mi chiedo, o meglio vi chiedo, non dovrebbero le directories relative ai pacchetti più vecchi essere automaticamente eliminate dopo un "emerge -u <pacchetto>"?

2) In /var/tmp/ccache esistono solo files (ben 32.000) creati  tra il 16 e il 21 luglio di quest'anno. Essi hanno nomi tipo "tmp.stderr.<myhost>.<nnnnn>" (per 'n' si intende un numero da 0 a 9) e del tipo "tmp.hash.livecd.<12345>.o" . Mi sapete spiegare a cosa servono i suddetti files? Si possono eliminare? Dove posso trovare informazioni sull'architettura e il funzionamento di ccache, soprattutto per comprendere i vari files che esso crea in /var e in /root?

Grazie in anticipo a chiunque vorrà rispondere.

fabio

----------

## makoomba

puoi cancellarli tranquillamente tutti, sono residui di compilazione e non servono a nulla.

----------

## randomaze

 *kueitao wrote:*   

> 1) In /var/tmp/portage esistono giustamente almeno tante sub-directories tanti quanti sono i pacchetti installati nel sistema.

 

Puoi eliminarli senza problemi.

 *Quote:*   

> Dove posso trovare informazioni sull'architettura e il funzionamento di ccache, soprattutto per comprendere i vari files che esso crea in /var e in /root?

 

Un buon inizio dovrebbe essere la la homepage del progetto

----------

## bender86

In /var/tmp/portage vengono compilati i pacchetti. Volendo puoi cancellare tutto quello che c'è (non mentre emergi qualcosa), le informazioni sui pacchetti installati stanno in /var/db. Comunque dovrebbe cancellare i file temporanei da solo, non è che hai impostato qualcosa come FEATURES="keeptemp keepwork noclean"?

----------

## kueitao

 *bender86 wrote:*   

> In /var/tmp/portage vengono compilati i pacchetti. Volendo puoi cancellare tutto quello che c'è (non mentre emergi qualcosa), le informazioni sui pacchetti installati stanno in /var/db. Comunque dovrebbe cancellare i file temporanei da solo, non è che hai impostato qualcosa come FEATURES="keeptemp keepwork noclean"?

 

Grazie a tutti per le risposte.

Se non ho capito male posso cancellare tutto ciò che trovo in /var/tmp/portage (anche le directories relative all'ultima release di ciascun pacchetto) e in /var/tmp/ccache. Giusto?

In /etc/make.conf c'é "FEATURES="ccache distlocks nostrip sandbox userpriv usersandbox". Non mi pare che queste opzioni debbano impedire la corretta cancellazione dei files in /var/tmp/portage. O no? Se ho ragione, perché tali subdirectories non sono state cancellate automaticamente?

Per quanto riguarda "ccache", a che servono 30000 files in /var/tmp/ccache che tra l'altro sono tutti stati creati a luglio? Chi o cosa si dovrebbe occupare della cancellazione?

Grazie ancora.

fabio

----------

## makoomba

@kueitao

a meno che tu abbia particolari esigenze, lascia il default per le FEATURES.

quel nostrip, ad esempio, a cosa ti serve ? 

se non devi fare debug è inutile, hai solo binari molto più corposi.

@randomaze

t'ho fregato, la tacca è mia  :Razz: 

OT e visto che sei mod

ma non si può avere qualche smilino in più sul forum ?

mancano i fondamentali: pernacchia, :look:, etc, etc.

----------

## Cazzantonio

 *makoomba wrote:*   

> OT e visto che sei mod
> 
> ma non si può avere qualche smilino in più sul forum ?
> 
> mancano i fondamentali: pernacchia, :look:, etc, etc.

 

Prova a mandare un pm ad un admin (in inglese) e guarda cosa ti risponde   :Wink: 

----------

## makoomba

 *Cazzantonio wrote:*   

> Prova a mandare un pm ad un admin (in inglese) e guarda cosa ti risponde  

 

dici che mi spernacchiano loro ?

----------

## kueitao

 *makoomba wrote:*   

> @kueitao
> 
> a meno che tu abbia particolari esigenze, lascia il default per le FEATURES.
> 
> quel nostrip, ad esempio, a cosa ti serve ? 
> ...

 

Scusa, ma non ti pare di essere un tantino OT?

Se una persona sceglie "nostrip" non ti viene da pensare che possa avere i suoi motivi? In ogni caso, che c'entra questo con il problema? Invece hai qualche risposta per le domande che ancora sono in sospeso?

Saluti.

fabio

----------

## gutter

 *makoomba wrote:*   

> 
> 
> dici che mi spernacchiano loro ?

 

Possibilissimo  :Wink:  Ma tentare non nuoce   :Very Happy: 

----------

## makoomba

 *kueitao wrote:*   

> 
> 
> Scusa, ma non ti pare di essere un tantino OT?
> 
> Se una persona sceglie "nostrip" non ti viene da pensare che possa avere i suoi motivi? In ogni caso, che c'entra questo con il problema? Invece hai qualche risposta per le domande che ancora sono in sospeso?
> ...

 

ehm, siamo nervosetti ?

OT ? no, visto che hai postato le FEATURES.

non era di certo un insulto ma solo un suggerimento e tu sei libero di seguirlo o meno.

come lo sono io di rispondere (o meno) ad una domanda che poni sul forum, se ne ho voglia e quando ho qualcosa da aggiungere.

----------

## kueitao

 *makoomba wrote:*   

>  *kueitao wrote:*   
> 
> Scusa, ma non ti pare di essere un tantino OT?
> 
> Se una persona sceglie "nostrip" non ti viene da pensare che possa avere i suoi motivi? In ogni caso, che c'entra questo con il problema? Invece hai qualche risposta per le domande che ancora sono in sospeso?
> ...

 

NO. Scusa se così è sembrato.

 *makoomba wrote:*   

> OT ? no, visto che hai postato le FEATURES.

 

Non sono d'accordo. Ho postato le FEATURES solo per rispondere alla domanda posta a proposito di avere inserito qualcosa come "keeptemp keepwork noclean". La domanda era doverosa e soprattutto legata al problema da me esposto. La mia risposta poteva essere semplicemente "no", invece ho pensato di fare esaminare le FEATURES del mio /etc/make.conf alla ricerca di eventuali opzioni che avessero causato i problemi suddetti.

 *makoomba wrote:*   

> non era di certo un insulto ma solo un suggerimento e tu sei libero di seguirlo o meno.

 

Sono convintissimo che non si trattava di niente oltre che di un suggerimento.

 *makoomba wrote:*   

> come lo sono io di rispondere (o meno) ad una domanda che poni sul forum, se ne ho voglia e quando ho qualcosa da aggiungere.

 

Il thread l'ho iniziato io esponendo un problema e chiedendo aiuto per la risoluzione. Credo di avere il diritto di tentare di "limitare" la discussione al problema esposto. Se da qualsiasi dettaglio non rilevante al dominio del problema si dovessero aprire nuove discussioni ogni thread perderebbe il suo scopo. 

Se chiunque potesse decidere di prendere spunto da una qualsiasi informazione posta nel thread esclusivamente a supporto del processo di risoluzione del problema per aprire un nuovo argomento di discussione si perderebbe il filo del discorso, ci si perderebbe in dettagli non rilevanti e il thread assumerebbe dimensioni da romanzo.

Quanto detto sarebbe solo a discapito di chi ha cercato aiuto nel forum e anche di chi vorrebbe interessarsi per fornire risposte. Questi ultimi si troverebbero a doversi districare tra il rumore di fondo alla ricerca del nocciolo del problema, con grandi perdite di tempo e magari decidendo alla fine di non contribuire ad una discussione ormai frammentata.

Ovviamente non è questo il caso di un thread che al momento è così corto. Ma è il principio che conta. Se ad esempio qualcuno posta il suo file /etc/make.conf perché ha avuto problemi con la compilazione di uno specifico pacchetto, non è il caso di aprire sub-threads di discussione in merito alla bontà di scelte di configurazione che non incidono minimamente sulla suddetta compilazione. Ci si deve assolutamente attenere al problema altrimenti, oltre ai disguidi che ho citato sopra, può anche capitare che chi ha posto la questione non riesca più a capire quali dei suggerimenti sono attinenti e risolvono la situazione e quali altri sono solo commenti di generale utilità (?) ma comunque non risolutivi.

Mi dispiace se non la pensi anche tu in questo modo. Da parte mia continuerò a contrastare nei threads da me iniziati qualsiasi tentativo di andare fuori tema. Almeno fino a quando un moderatore non confermerà la tua tesi spiegandomi che sono in errore.

Saluti.

fabio de francesco

----------

## kueitao

Visto che ci siamo spinti un po' oltre, mi trovo a ricordare che ci eravamo fermati al fatto che nonostante in /etc/make.conf non siano presenti le opzioni "FEATURES=keeptemp keepwork noclean" i files in /var/tmp/portage non vengono automaticamente eliminati.

E' quindi normale? E' un bug da segnalare? Ho dimenticato di eseguire qualche particolare procedura?

Grazie ancora.

----------

## gutter

Posta un:

```
emerge info
```

----------

## randomaze

 *kueitao wrote:*   

> E' quindi normale? E' un bug da segnalare? Ho dimenticato di eseguire qualche particolare procedura?

 

É abbastanza "normale". Normalmente in quella dir portage lascia le directory vuote senza files. Naturalmente se emerge é uscito con errore restano anche residui della compilazione. Per questo ti ho detto che potevi cancellare senza problemi.

----------

## makoomba

@kueitao

facciamo pace ?

Eliminando dalle FEATURES userpriv e usersandbox, il problema persiste ?

per quanto riguarda ccache, sembra che non vada d'accordo con userpriv

hai un discreto quantitativo di ram ? 

se sì, potresti usare il tip di fonderia sulla compilazione in ram.

alla fine dell'emerge, il ramdisk viene smontanto per cui /var/tmp/portage è sempre pulito.

----------

## kueitao

 *makoomba wrote:*   

> @kueitao
> 
> facciamo pace ?

 

Ma certo che si!  :Very Happy:   :Very Happy:   :Very Happy: 

 *makoomba wrote:*   

> Eliminando dalle FEATURES userpriv e usersandbox, il problema persiste ?

 

Ho cancellato solo e tutte le subdirectories relative alle vecchie versioni di ciascun pacchetto, mentre invece non ho toccato quelle relative alle releases correnti. Immagino di dovere aspettare che sia disponibile una nuova release di qualche pacchetto già installato. A quel punto potrò fare la prova che consigli per poi controllare se il precedente /var/tmp/portage/<pacchetto> è sparito.

E' giusta la mia interpretazione? Oppure basterebbe reinstallare un qualsiasi pacchetto già presente nel sistema e poi controllare che la subdirectory di /var/tmp/portage relativa al suddetto sia stata automaticamente svuotata a fine compilazione?

 *makoomba wrote:*   

> per quanto riguarda ccache, sembra che non vada d'accordo con userpriv

 

Grazie, molto utile. 

Comunque ho seguito le indicazioni presenti nel documento e sembra che ccache ora funzioni come si deve. Non è stato necessario eliminare "userpriv". Ora la cache viene correttamente aggiornata e utilizzata come posso vedere con "ccache -s".

 *makoomba wrote:*   

> hai un discreto quantitativo di ram ? 
> 
> se sì, potresti usare il tip di fonderia sulla compilazione in ram.
> 
> alla fine dell'emerge, il ramdisk viene smontanto per cui /var/tmp/portage è sempre pulito.

 

Ho 512 MB di RAM ma una parte dello swap space è sempre utilizzato. Con "cat /proc/meminfo" noto che di solito su circa 500 MB totale ne rimane libera solo 350 MB. Quindi ho paura di non avere abbastanza RAM da utilizzare disinvoltamente...    :Laughing: 

In ogni caso ho impostato "PORTAGE_TMPFS="/dev/shm"" in /etc/make.conf. Non so esattamente quanto ci guadagno, ma non dovrebbe fare male.

A quale "tip" ti riferisci? Dov'é il documento che citi?

Grazie ancora.

fabio de francesco

PS.: Già che ci siamo, gutter aveva chiesto di vedere l'output di "emerge --info". Eccolo:

host5 ~ # emerge --info

Portage 2.0.53_rc7 (default-linux/x86/2005.0, gcc-3.4.4, glibc-2.3.5-r3, 2.6.13 i686)

=================================================================

System uname: 2.6.13 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz

Gentoo Base System version 1.12.0_pre10

distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]

ccache version 2.4 [enabled]

dev-lang/python:     2.4.2

sys-apps/sandbox:    1.2.13

sys-devel/autoconf:  2.13, 2.59-r7

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1

sys-devel/binutils:  2.16.1

sys-devel/libtool:   1.5.20-r1

virtual/os-headers:  2.6.11-r2

ACCEPT_KEYWORDS="x86 ~x86"

AUTOCLEAN="yes"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=pentium4 -O2 -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"

CXXFLAGS="-march=pentium4 -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig ccache distlocks nostrip sandbox sfperms strict userpriv usersandbox"

GENTOO_MIRRORS="http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/ http://gentoo.osuosl.org/ ftp://ftp.unina.it/pub/linux/distributions/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"

LINGUAS="en it"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="x86 3dnow X acl alsa apache2 apm arts audiofile avi bash-completion berkdb bitmap-fonts bzip2 crypt cups doc dvd eds emacs emboss encode esd ethereal examples exif expat fam foomaticdb fortran gcj gd gd-external gdbm gif glut gnome gnutls gpm gstreamer gtk gtk2 hal howl idn imlib ipv6 java javascript jpeg jpg kde lcms libg++ libwww mad mhash mikmod mime mmap mmx mng mono motif mozilla mp3 mpeg mpi msn mysql mysqli ncurses nls nptl odbc ogg oggvorbis opengl openssh openssl oss pam pcre pdflib perl php pic png posix postgres python qt quicktime readline samba sdl sharedmem sockets spell sqlite sse ssh ssl sysv5ipc tcltk tcpd tiff truetype truetype-fonts type1-fonts udev usb vorbis wxwindows xml2 xmms xsl xv zlib linguas_en linguas_it userland_GNU kernel_linux elibc_glibc"

Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS

----------

## makoomba

i files in /var/tmp/portage non servono a nulla, non c'è bisogno di tenere l'ultima versione.

ripulisci tutta la dir, modifica le FEATURES, emergergi un pacchetto e controlla se, a fine installazione, emerge ha fatto il clean.

il tip è questo, con 512mb di memoria lo usi tranquillamente.

----------

## bender86

 *kueitao wrote:*   

> In ogni caso ho impostato "PORTAGE_TMPFS="/dev/shm"" in /etc/make.conf. Non so esattamente quanto ci guadagno, ma non dovrebbe fare male.

 

La variabile da impostare è PORTAGE_TMPDIR. Dovrebbe bastare questo per la compilazione in ram.

----------

## kueitao

 *makoomba wrote:*   

> i files in /var/tmp/portage non servono a nulla, non c'è bisogno di tenere l'ultima versione.
> 
> ripulisci tutta la dir, modifica le FEATURES, emergergi un pacchetto e controlla se, a fine installazione, emerge ha fatto il clean.
> 
> il tip è questo, con 512mb di memoria lo usi tranquillamente.

 

Grazie ancora.

Ho letto il thread che mi hai suggerito e mi sembra un'ottima idea. Cioè mi sembra buono effettuare la compilazione con la PORTAGE_TMPDIR in RAM anziché su hard-disk. 

Però poiché non mi va di installare lo script che l'autore ha confezionato, ho preferito montare la mia /var/tmp/portage in RAM con:

```
mount /dev/shm /var/tmp/portage -t tmpfs
```

Immagino sia sufficente. Non ho ancora testato le differenze tra i tempi di compilazione.

Purtroppo non ho capito cosa bender86 intende nel suo post.

Saluti.

fabio de francesco

----------

## makoomba

 *kueitao wrote:*   

> Però poiché non mi va di installare lo script che l'autore ha confezionato, ho preferito montare la mia /var/tmp/portage in RAM con:
> 
> ```
> mount /dev/shm /var/tmp/portage -t tmpfs
> ```
> ...

 

/dev/shm è utilizzato per la shared memory, se vuoi montare direttamente tu il tmpfs, il comando corretto è

```
mount -t tmpfs tmpfs -o size=256M /var/tmp/portage
```

se decidi di farlo manualmente, ricordati di smontare il tmpfs a fine emerge.

----------

