# [RISOLTO] no space left on device

## funkoolow

salve a tutti,

qualcuno mi sa spiegare questo scenario?

```

funkportatile ~ #emerge gimp

[output compilazione bla bla bla]

/usr/lib/portage/bin/isolated-functions.sh: line 167: /var/tmp/portage/x11-libs/gtk+-2.14.4/temp/logging/install.ERROR: No space left on device

 * assignments (bug #190128) or bad substitution errors (bug #200313).

funkportatile ~ # df -h

Filesystem         Dimens. Usati Disp. Uso% Montato su

/dev/hda4             4,5G  2,4G  1,9G  57% /

udev                   10M  140K  9,9M   2% /dev

shm                   125M     0  125M   0% /dev/shm

```

Ho quasi 2gb di spazio libero su root e la compilazione mi esce con un "No space left on device"?

Trattasi di nuova installazione, mi viene il dubbio che mi sia sfuggito qualcosa durante le fasi precedenti, può essere?

----------

## funkoolow

ho scoperto il problema:

https://forums.gentoo.org/viewtopic-t-705316-highlight-space+left+device.html

scusate, non avevo spulciato per bene nel forum, mai saputo che potessero esaurirsi pure gli inode  :Neutral: 

taggo risolto, grazie a tutti lo stesso.

----------

## djinnZ

Se cerchi meglio c'è anche la versione in una lingua meno odiosa... (segnala ai moderatori di accodare)

----------

## funkoolow

scusami, mi sfugge il senso della tua risposta... dovrei segnalare il merge con un altro post simile? non mi sembrava di aver trovato un topic in italiano, se era quello il suggerimento...   :Question: 

----------

## djinnZ

 :Evil or Very Mad: 

----------

## richard77

Adesso ho capito perché non riuscivo a compilare openoffice su /dev/shm.

Buono a sapersi.

----------

## djinnZ

 :Shocked:   :Question: 

In ogni caso OOo non puoi compilarlo su shm... ed in ram in generale ti servono GB di spazio disponibile.

----------

## richard77

 *djinnZ wrote:*   

>  
> 
> In ogni caso OOo non puoi compilarlo su shm... ed in ram in generale ti servono GB di spazio disponibile.

 

Basta dire a a /dev/shm che può "allargarsi" sullo swap.

Funziona, e credo ci sia anche un guadagno di tempo, ma comunque mi interessa per evitare ogni volta che aggiorno openoffice di metter mano a make.conf (anche perché di solito me ne ricordo DOPO che il tentativo è fallito).

----------

## djinnZ

Premetto che continuo a non capire la correlazione tra la compilazione in ram e gli inode mancanti, usare /dev/shm ed abilitarlo ad usare la swap resta raccapricciante.

Già OOo è una rogna a compilarlo ed ha uno dei make più contorti e perversi, poi ti metti ad usare un'area di sistema per il build... non va bene, ma non va neppure per pacchetti più piccoli.

Questo non vuol dire che non puoi usare un filesystem in ram/swap (opportunamente dimensionate) per compilarlo e guadagnare quella mezz'oretta nei suoi tempi biblici, ovviamente. Che poi è quel che faccio io sul server (dove ho 8 partizioni di swap a disposizione, collegato al caro vecchio trito e ritrito discorso sulla dimensione ideale della swap).

Visto che sei uno dei folli che compilano OOo mica ha fatto qualche prova sull'utilità di disabilitare -pipe quando si compila in ram?

A naso l'idea non mi pare del tutto infondata ma resto assai in dubbio.

----------

## richard77

 *djinnZ wrote:*   

> 
> 
> Premetto che continuo a non capire la correlazione tra la compilazione in ram e gli inode mancanti, usare /dev/shm ed abilitarlo ad usare la swap resta raccapricciante.
> 
> 

 

La correlazione è che anche /dev/shm ha un numero limitato di inode e la compilazione di OOo s'interrompeva prima di finire lo spazio.

Per quanto riguarda lo /dev/shm e swap la documentazione del kernel dice chiaramente che si può usare un grande area di swap + /dev/shm e montarci addirittura /tmp, per cui non mi sembra una cosa così terribile.

 *Quote:*   

> 
> 
> Già OOo è una rogna a compilarlo ed ha uno dei make più contorti e perversi, poi ti metti ad usare un'area di sistema per il build... non va bene, ma non va neppure per pacchetti più piccoli.
> 
> 

 

Sono almeno due anni che uso /dev/shm (tranne per OOo) e non ho mai avuto problemi. Ho cercato anche sul forum e non ho trovato post che riportano problemi usando /dev/shm come PORTAGE_TMPDIR.

 *Quote:*   

> 
> 
> Questo non vuol dire che non puoi usare un filesystem in ram/swap (opportunamente dimensionate) per compilarlo e guadagnare quella mezz'oretta nei suoi tempi biblici, ovviamente. Che poi è quel che faccio io sul server (dove ho 8 partizioni di swap a disposizione, collegato al caro vecchio trito e ritrito discorso sulla dimensione ideale della swap).
> 
> Visto che sei uno dei folli che compilano OOo mica ha fatto qualche prova sull'utilità di disabilitare -pipe quando si compila in ram?
> ...

 

Con la nuova versione (3.0.0) il make di OOo usa più di un processore (prime credo che forzasse a -j1). A ricompilarlo ci ha messo 35min (Q6600, 4GB di ram, gcc 4.1.2 con ccache).

Riguardo al pipe, non ho mai provato.

----------

## table

Ciao a tutti,

anche io mi ritrovo con quel messaggio durante la compilazione di chromium.

attualmente il mio shm è di 1,5 GB e serve per compilare in ram,

Cosa consigliate di fare?

----------

## ago

a mio avviso hai 3 alternative:

1)Aumentare lo spazio per shm (se hai abbastanza ram)

2)Compilare su disco rigido

3)Installare il bin di chromium  :Very Happy: 

----------

## table

 *ago88 wrote:*   

> a mio avviso hai 3 alternative:
> 
> 1)Aumentare lo spazio per shm (se hai abbastanza ram)
> 
> 2)Compilare su disco rigido
> ...

 

Ho scelto la prima in quanto non posso rinunciare né ai sorgenti né alla compilazione in RAM

----------

## ago

ho dimenticato una quarta opzione...ovvero di compilare su un'altro pc e installarlo con 

```
emerge -k
```

 sul tuo pc  :Smile: 

----------

## Xytovl

Se vuoi compilare in ram ti consiglio di usare

```
mount -t tmpfs -o size=<dimensione>M none /var/tmp
```

In questo modo controlli quanta memoria è disponibile per il tmpfs, senza toccare a /dev/shm

Di default tmpfs è limitato a 50% della memoria fisica, ingrandendolo si aumenta di molto la probabilità di essere oom e farsi killare processi.

----------

## ago

 *Xytovl wrote:*   

> Se vuoi compilare in ram ti consiglio di usare
> 
> ```
> mount -t tmpfs -o size=<dimensione>M none /var/tmp
> ```
> ...

 

o anche una roba tipo 

```
tmpfs           /var/tmp/portage        tmpfs           size=3000M,nr_inodes=1M,noauto  0 0
```

e prima di emergere la monti  :Very Happy: 

----------

