# [emerge] emerge --sync et tout plante (résolu)

## digimag

Bonjour,

J'ai pas mis à jour depuis quelques dizaines de jours, alors j'ai fait un emerge --system hier et il y a eu une erreur au moment de la compilation de glibc. Je refais un emerge --sync aujourd'hui, et là, c'est le drame, plus rien ne marche :

```

sent 47298 bytes  received 3768124 bytes  508722.93 bytes/sec

total size is 174572960  speedup is 45.75

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1506) [generator=3.0.5]

>>> Retrying...

>>> Starting retry 1 of 3 with rsync://88.156.78.16/gentoo-portage

>>> Checking server timestamp ...

Traceback (most recent call last):

  File "/usr/bin/emerge", line 40, in <module>

    retval = _emerge.emerge_main()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 14583, in emerge_main

    return action_sync(settings, trees, mtimedb, myopts, myaction)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 12139, in action_sync

    fd, tmpservertimestampfile = mkstemp()

  File "/usr/lib/python2.5/tempfile.py", line 302, in mkstemp

    return _mkstemp_inner(dir, prefix, suffix, flags)

  File "/usr/lib/python2.5/tempfile.py", line 236, in _mkstemp_inner

    fd = _os.open(file, flags, 0600)

OSError: [Errno 28] No space left on device: '/tmp/tmpQZ1iZY'

brouillard ~ # emerge --sync

>>> Starting rsync with rsync://88.198.224.205/gentoo-portage...

>>> Checking server timestamp ...

Traceback (most recent call last):

  File "/usr/bin/emerge", line 40, in <module>

    retval = _emerge.emerge_main()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 14583, in emerge_main

    return action_sync(settings, trees, mtimedb, myopts, myaction)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 12139, in action_sync

    fd, tmpservertimestampfile = mkstemp()

  File "/usr/lib/python2.5/tempfile.py", line 295, in mkstemp

    dir = gettempdir()

  File "/usr/lib/python2.5/tempfile.py", line 262, in gettempdir

    tempdir = _get_default_tempdir()

  File "/usr/lib/python2.5/tempfile.py", line 209, in _get_default_tempdir

    ("No usable temporary directory found in %s" % dirlist))

IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/root']

```

Je croyais que c'est juste le --sync qui ne marche pas, je me suis trompé :

```

 emerge -avuDN system

Traceback (most recent call last):

  File "/usr/bin/emerge", line 40, in <module>

    retval = _emerge.emerge_main()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 14668, in emerge_main

    display_news_notification(root_config, myopts)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 11638, in display_news_notification

    portdb, vardb, NEWS_PATH, UNREAD_PATH, repo, update=update)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 11824, in checkUpdatedNewsItems

    return manager.getUnreadItems( repo_id, update=update )

  File "//usr/lib/portage/pym/portage/news.py", line 153, in getUnreadItems

    self.updateItems(repoid)

  File "//usr/lib/portage/pym/portage/news.py", line 101, in updateItems

    unread_lock = lockfile(unread_filename, wantnewlockfile=1)

  File "//usr/lib/portage/pym/portage/locks.py", line 62, in lockfile

    myfd = os.open(lockfilename, os.O_CREAT|os.O_RDWR, 0660)

OSError: [Errno 28] No space left on device: '/var/lib/gentoo/news/.news-gentoo.unread.portage_lockfile'
```

Je suis perdu. Que faire ?

----------

## digimag

En écrivant, je viens de comprendre, c'est l'espace disque qui manque. Pourtant j'ai encore 1 Go :

```
# df -h

Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur

/dev/sda2             7,8G  6,2G  1,3G  83% /

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

/dev/sda4             140G  563M  132G   1% /home

shm                   996M     0  996M   0% /dev/shm
```

Que se passe-t-il ?

----------

## scherz0

Que dit df -i ?

----------

## digimag

Je crois que je suis dans la merde… J'ai retenté de recompiler gcc, à nouveau une erreur :

```
[...]

–i686-pc-linux-gnu-strip: /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/image/usr/lib/stvSU8Ai/clnt_gen.o: No space left on device

   usr/lib/libBrokenLocale.a

i686-pc-linux-gnu-strip: cannot create tempdir for archive copying (error: No space left on device)

i686-pc-linux-gnu-strip: could not create temporary file to hold stripped copy of '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/image//lib/libpthread-2.8.so'

 * 

 * ERROR: sys-libs/glibc-2.8_p20080602-r1 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_install

 *             environment, line 3586:  Called eblit-run 'src_install'

 *             environment, line 1107:  Called die

 * The specific snippet of code:

 *       eblit-${PN}-$1 || die;

 *  The die message:

 *   (no error message)

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/environment'.

 * 

/usr/lib/portage/bin/isolated-functions.sh: line 149: /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/.exit_status: No space left on device

>>> Failed to emerge sys-libs/glibc-2.8_p20080602-r1, Log file:

>>>  '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/build.log'

 * Messages for package sys-libs/glibc-2.8_p20080602-r1:

 * 

 * ERROR: sys-libs/glibc-2.8_p20080602-r1 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_install

 *             environment, line 3586:  Called eblit-run 'src_install'

 *             environment, line 1107:  Called die

 * The specific snippet of code:

 *       eblit-${PN}-$1 || die;

 *  The die message:

 *   (no error message)

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/environment'.

 * 

brouillard / # df -i

Sys. de fich.         Inodes   IUtil.  ILib. %IUti. Monté sur

/dev/sda2             512064  512062       2  100% /

udev                  223886    2786  221100    2% /dev

/dev/sda4            9207808   33220 9174588    1% /home

shm                   223886       1  223885    1% /dev/shm

```

Je comprends pas, pas assez d'inodes ? C'est normal que j'en ai 512000 d'occupés, y en a pas trop ? Comment je récupère cette situation-là ?

----------

## scherz0

 *Quote:*   

> Je comprends pas, pas assez d'inodes ? C'est normal que j'en ai 512000 d'occupés, y en a pas trop ?

 

C'est normal d'en avoir 512000 occupés.  Mais ce n'est pas normal avoir aussi peu d'inodes pour un FS de cette taille.  Tu avais précisé -i quand tu as formaté le FS ?

 *Quote:*   

> Comment je récupère cette situation-là ?

 

Dans un premier temps, regarde si il n'y as pas des fichiers à supprimer dans /tmp/ et /var/tmp/

Ensuite, tu as de l'espace sur /dev/sda4, donc tu peux peut-être y déplacer par exemple /usr/portage/  (+ de 130000 fichiers et répertoires), sans oublier bien sûr de mettre un lien dans /usr/

Mais à court terme tu devras refaire le FS.  512k inodes pour le système complet, ce n'est pas raisonnable.

----------

## digimag

 *scherz0 wrote:*   

> Mais à court terme tu devras refaire le FS.  512k inodes pour le système complet, ce n'est pas raisonnable.

 À long terme je suis pose.

Merci de la réponse ! Effectivement j'ai du mal calculer mes inodes quand j'ai formaté le système, je croyais que ça allait suffire. J'ai vidé des trucs, je vais voir comment je peux reformater toussa, c'est une boîte louée, j'ai fêté 150 jours d'uptime il n'y pas longtemps, dommage il faudra remettre le compteur à zéro.

----------

## loopx

 *digimag wrote:*   

>  *scherz0 wrote:*   Mais à court terme tu devras refaire le FS.  512k inodes pour le système complet, ce n'est pas raisonnable. À long terme je suis pose.
> 
> Merci de la réponse ! Effectivement j'ai du mal calculer mes inodes quand j'ai formaté le système, je croyais que ça allait suffire. J'ai vidé des trucs, je vais voir comment je peux reformater toussa, c'est une boîte louée, j'ai fêté 150 jours d'uptime il n'y pas longtemps, dommage il faudra remettre le compteur à zéro.

 

Qu'elle idée de préciser les inodes manuellement   :Question: 

----------

