# [portage] emerge @preserved-rebuild {SOLUCIONADO}

## upszot

hola gente... 

   tras hacer un emerge -uD --newuse world me dijo que haga un "emerge -p @preserved-rebuild" pero al hacer esto me tira lo siguiente...

```
M1530 upszot # emerge -av @preserved-rebuild

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "net-wireless/kdebluetooth:0". 
```

hice un 

```
M1530 upszot # revdep-rebuild 
```

y volvi a ejecutar el emerge @preserved-rebuild pero me sigue diciendo lo mismo....

ese paquete no esta instalado.... y hace unos dias me estaba molestando tambien cuando queria actualizar.... https://forums.gentoo.org/viewtopic-t-801675.html?sid=d0252f07c26d5181600adeefeea1cc93 y lo que hice fue quitarlo de "/var/lib/portage/world" ya que no estaba instalado y no deberia de aparecer...

en fin ahora sigue sin estar instalado, y no se encuentra mencionado en ninguno de los archivos... world, package.keywords, use, mask, unmask....

... lo peor es que el paquete existe, pero si uno lo quiere instalar te dice que no...

```
M1530 upszot # emerge -s kdebluetooth

Searching...

[ Results for search key : kdebluetooth ]

[ Applications found : 1 ]

*  net-wireless/kdebluetooth

      Latest version installed: 1.0_beta8-r2

      Homepage:      http://bluetooth.kmobiletools.org/

      Description:   KDE Bluetooth Framework

      License:       GPL-2

M1530 upszot # emerge -Dp net-wireless/kdebluetooth

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy "net-wireless/kdebluetooth".

M1530 upszot #
```

alguien me puede tirar un cable de que tendria que hacer?

saludos

----------

## Inodoro_Pereyra

Es muy raro tu caso.

Realmente necesitas del bluetooth? Si no lo necesitas agrega la use flag -bluetooth a tu make.conf. En caso contrario, provisoriamente hasta terminal de acomodar todo podrías agregar net-wireless/kdebluetooth-1.0_beta8-r2 a /etc/portage/package.provided.

Instala udept, crea una copia de seguridad de tu /var/lib/portage/world y ejecuta:

```
dep --pruneworld
```

Usa emerge --newuse world si has quitado o agregado use flags a tu make.conf recientemente, agregale --tree para ver las dependencias en modo arbol, pega los resultados en el foro a ver que podemos deducir.

Salud!

----------

## upszot

bueno agregue el paquete como me dijiste 

```
upszot@M1530 ~ $ cat  /etc/portage/package.provided

=net-wireless/kdebluetooth-1.0_beta8-r2

```

 y agregue esto otro en el make.conf  

```
upszot@M1530 ~ $ cat /etc/make.conf |grep provided

PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/package.provided"
```

para darle soporte según lo que lei en el handbook..http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=3&chap=5

no lo puse la use de bluetooth ya que si necesito el soporte para el mismo...

hice el backup del wolrd 

```
cp -p  /var/lib/portage/world .world_20091110
```

y ejecute el 

```
dep --pruneworld -t
```

 que me devolvio un lindo listado (no tengo idea de como funciona bien esto...voy a ir leyendo mientras espero respuesta de que hacer..  :Shocked:  )

http://pastebin.com/f6e472709

Edit:  bueno le termine dando que "yes" para usaar el nuevo world que me genero pero sigo en la misma...

 *Quote:*   

> Install new world file? [Yes/No/Diff/Merge] yes
> 
> M1530 upszot # emerge -uDp --newuse world
> 
> These are the packages that would be merged, in order:
> ...

 

Edit2:

aca hay un diff entre el archivo viejo del world y el nuevo http://pastebin.com/f3e370044

por lo que veo quito algunos paquetes que me llama la atención que los haya quitado... (ejemplo de gentoo-source que en el nuevo no figura...  :Shocked:  )

saludos

----------

## gringo

kdebluetooth dependía de kde3 y todo kde3 ha sido eliminado de portage hasta donde yo sé. Para kde4 está disponible el paquete kbluetooth.

Hay varios overlays que contienen todos los ebuilds del kde3, hay uno que se llama kde-sunset o algo asi.

 *Quote:*   

> upszot@M1530 ~ $ cat /etc/make.conf |grep provided
> 
> PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/package.provided"

 

la segunda línea sobra realmente, esa opción es para decirle a portage que no sincronice las categorías que se encuentre en dicho archivo.

De cualquier manera agregar algo al package.provided no te soluciona que el paquete esté roto, tendrás que recompilarlo. 

Tampoco te fies demasiado de @preserved-libs, no funciona del todo aún, asi que ejecuta revdep-rebuild tb. por si las moscas.

 *Quote:*   

> dep --pruneworld -t

 

ten cuidado con udept, ya no está mantenido y no funciona debidamente con las últimas versiones de portage. Si despues de ejecutar eso ejecutas regenworld verás que básicamente te vuelve a añadir todo lo que udept te ha eliminado p.ej.

saluetes

----------

## upszot

Bueno vamos en limpio...

 volvi al world bakupeado y empece de nuevo...

 lo que me decia el emerge del world , al finalizar es esto...

 *Quote:*   

> !!! existing preserved libs:
> 
> >>> package: sys-libs/e2fsprogs-libs-1.41.9
> 
>  *  - /lib/libblkid.so
> ...

 

 si ejecuto el " @preserved-rebuild  " como me dice aca... me sale con " emerge: there are no ebuilds to satisfy "net-wireless/kdebluetooth:0".   "

el paquete kdebluethooth, no se encuentra instalado en el sistema, ni lo voy a instalar de momento....

lo que me interesa es poder ver el tema de esas librerias que me indica arriba... para lo cual ejecute "revdep-rebuild" y me dice que esta todo bien...

 *Quote:*   

> M1530 upszot # revdep-rebuild
> 
> * Configuring search environment for revdep-rebuild
> 
> * Checking reverse dependencies
> ...

 

pero si vuelvo a ejecutar "@preserved-rebuild " me vuelve a decir del paquete kdebluethoth... 

por las dudas volvi a ejecutar revdep-rebuild  esta vez pasandole el nombre de una de las librerias y aca esta el resultado...http://pastebin.com/f39e23448

lo que no tengo claro es si quedo todo bien? ya que el problema con el preserved me sigue apareciendo... la verdad que en esta parte hago agua...en la documentacion no encontre mucho...

saludos

Edit: habia pegado mal el link... esto ya me tiene como en la foto de mi avatar jeje

Edit2: ya lei bien lo del archivo "/etc/portage/profile/package.provided " asi que deje el paquete ahi dentro y cambie la configuracion del make.conf de la siguiente forma...y volvi a ejecutar el emerge -p @preserved-rebuild ....

 *Quote:*   

> M1530 upszot # cat /etc/portage/package.provided
> 
> =net-wireless/kdebluetooth-1.0_beta8-r2
> 
> M1530 upszot # cat /etc/make.conf |grep exclude
> ...

  ya que tal como dijo gringo arriba la linea esa del make.conf es para que los paquetes o rama que se corresponda con los nombres q ponga dentro de ese archivo no se van a syncronizar con el repositorio...

  y lo que ponga en el archivo provided es para informarle a portage de que ese paquete fue instado en el sistema...

aunque no es el caso pq como dije reiteradas veces ese paquete NO ESTA INSTALADO... de cualquier forma este o no en ese archivo me sigue diciendo lo mismo...

ya no se que probar... hasta probe con borrar el disfile de ese paquete pero me tiraba el cartel igual...asiqeu ya lo deje como estaba...

 :Crying or Very sad: 

----------

## opotonil

Hecha un vistazo al directorio "/etc/portage/sets/" (creo recordar que es la ruta de los "sets") a ver si tienes un fichero "@preserved-rebuild" (no recuerdo si el nombre del fichero incluye la arroba inicial) de tenerlo abrelo con "nano" o el editor que mas te guste y mira a ver si tiene una linea "net-wireless/kdebluetooth", de ser asi borrala y prueba a hecer el "emerge @preserved-rebuild".

Estoy suponiendo que cuando hiciste el "emerge" inicial, del que partieron los problemas, tenias instalado "kdebluetooth" de forma que portage construyo el fichero "@preserved-rebuild" indicando que, este, tenia que ser recompilado por lo que fuera... y anque despues hicieras un "emerge --unmerge kdebluetoot" pues solo se elimino de "@world" que es lo normal pero no de "@preserved-rebuild". Por mi parte es a lo unico que le encuentro sentido para que te siga intentando instalar "kdebluetooth"

Salu2.

----------

## upszot

Anoche deje corriendo un emerge -e --newuse world  para ver si esto solucionaba mis problemas... (lamentablemente cuando desperte esta ma;ana habia pinchado con el xorg-server q no viene al caso..)  llego a recompilar la mitad de mi world. y por supuesto sigue tirando el cartel de las librerias..

```
!!! existing preserved libs:

>>> package: sys-libs/e2fsprogs-libs-1.41.9

 *  - /lib/libblkid.so

 *      used by /bin/mount (sys-apps/util-linux-2.16.1)

 *      used by /bin/umount (sys-apps/util-linux-2.16.1)

 *      used by /sbin/blkid (sys-apps/util-linux-2.16.1)

 *      used by 10 other files

 *  - /lib/libuuid.so

 *      used by /bin/mount (sys-apps/util-linux-2.16.1)

 *      used by /bin/umount (sys-apps/util-linux-2.16.1)

 *      used by /sbin/blkid (sys-apps/util-linux-2.16.1)

 *      used by 418 other files

Use emerge @preserved-rebuild to rebuild packages using these libraries
```

 existe alguna forma de hacer lo mismo que hace el emerge @preseerved-rebuild a mano???  *opotonil wrote:*   

> Hecha un vistazo al directorio "/etc/portage/sets/" (creo recordar que es la ruta de los "sets") a ver si tienes un fichero "@preserved-rebuild" (no recuerdo si el nombre del fichero incluye la arroba inicial) de tenerlo abrelo con "nano" o el editor que mas te guste y mira a ver si tiene una linea "net-wireless/kdebluetooth", de ser asi borrala y prueba a hecer el "emerge @preserved-rebuild".

 

en el directorio ese solo figura un archivo de kde4 ... pero encontre este otro archivo que tiene como veran los nombres de las librerias que me decia el emerge....

```
M1530 upszot # cat /var/lib/portage/preserved_libs_registry

}qXsys-libs/e2fsprogs-libs:0qXsys-libs/e2fsprogs-libs-1.41.9qX1880q]q(X/lib/libblkid.soqX/lib/libuuid.soqes.M1530 upszot #

M1530 upszot # ls -la /etc/portage/sets/

-rw-r--r-- 1 root root 1762 Mar 28  2009 kdebase-4.2

#
```

pero nada del kdebluetooth....   :Sad: 

----------

## Inodoro_Pereyra

Supongo que tu problema es tal cual dice gringo, ya no existe mas kde3 en tu arbol de portage. Vas a tener que tirar de un overlay provisoriamente o deshacerte del paquete padre que tiene kdebluetooth como dependencia.

Esto último se puede ver usando:

```
emerge -pet world
```

No puedo aportar mucho mas por que no uso KDE...

Salud!

----------

## codestation

Dices que no está instalado pero el "emerge -s kdebluetooth" que has posteado dice que si lo tienes instalado (que no este mencionado en world, package.keywords, use, mask, unmask, etc no quiere decir que no este instalado), además como has dicho en tu primer post has quitado la referencia a ese paquete explicitamente del world. (Si realmente quieres desisnstalarlo puedes hacerlo con emerge -C kdebluetooth)

Tu problema con el @preserved-rebuild es que intenta recompilar el paquete kdebluetooth para desacerse de unas librerias viejas que aún estan en tu sistema pero no puede hacerlo porque el ebuild fue removido del arbol de portage.

Entre las opciones que tienes está la de:

A) quitar todo lo referente a kde-3.5 y migrar a kde4

B) usar el overlay kde-sunset, poner todo kde4 bajo mask y poner todo kde-3.5 bajo unmask

C) usar otro DE

Tienes menos de un mes para tomar una de las opciones ya que para diciembre la mayor parte de kde-3.5 será removida de portage y te encontrarás con un problema peor que este al querer actualizar.

----------

## gringo

viéndolo nuevamente ahora creo que la solución puede ser :

- limpia la caché de revdep-rebuild ( /var/cache/revdep-rebuild) y ejecuta revdep-rebuild -pv nuevamente.

- _SI_ revdep-rebuild te dice que todo está bien y no hay paquetes rotos, puedes elminar /var/lib/portage/preserved_libs_registry, o cópialo a algún lado a modo de cooia de seguridad, por si las moscas.

- ejecuta @preserved-rebuild nuevamente, supongo que protestará por el kdebluetooth. He estado mirando y no encuentro ningún ebuild para ese software, ni siquiera en el overlay de kde-sunset, asi que me temo que no vas a tener mas remedio que eliminarlo aunque uses kde3.

a ver si sirve de algo ...

saluetes

----------

## opotonil

No se si habra sido un cambio de nombre al cambiar de kde3 a kde4 o que... pero el que si que existe es "net-wireless/kbluetooth", de hecho es el que tengo instalado, en kde4.

http://gentoo-portage.com/net-wireless/kbluetooth

Salu2.

----------

## upszot

 *codestation wrote:*   

> Dices que no está instalado pero el "emerge -s kdebluetooth" que has posteado dice que si lo tienes instalado (que no este mencionado en world, package.keywords, use, mask, unmask, etc no quiere decir que no este instalado), además como has dicho en tu primer post has quitado la referencia a ese paquete explicitamente del world. (Si realmente quieres desisnstalarlo puedes hacerlo con emerge -C kdebluetooth)

 

bueno evidentemente mi cabeza estuvo bastante saturada estos dias ....ya que juraría que no lo habia instalado pero es cierto...estaba...

  Bueno creo que encontre la solucion de la mano de lo que me dijiste...

quite el paquete con emerge -C kdebluetooth y luego de eso me dejo ejecutar "emerge @preserved-rebuild" sin problemas al menos por ahora...

en este momento se encuentra compilando las librerias... asique ya les dire denntro de un rato si quedo todo bien....

aprovechando el tema estoy viendo que existe este paquete "net-wireless/kbluetooth" el cual dice que es para KDE4 asique calculo que con el mismo no debería de hacer falta realizar el overlay...

saludos

----------

## Dj_Dexter

Esa opcion del portage puede ser muy util, y me ha salvado muchas veces, pero cuando se actualizo udev y demas del system el revdep-rebuild recompilo lo que se habia roto pero el @preserved-rebuild seguia dando que se tenian que recompilar 52 paquetes, le di que los recompilara y seguia con el protected, y al terminar pedia recompile los 52 paquetes....

Solucion drastica, volvi a portage 2.1 hice un backup del fichero donde estan los preserved del portage 2.2, y asi dejo de fregar:

lo que me sucedio sale en el bugzilla de Gentoo:

https://bugs.gentoo.org/show_bug.cgi?id=230257

consejo el Portage 2.2 es muy util pero ese @preserved-rebuild puede causar lios y decir que algo esta roto cuando ya esta ok

Saludos!!!

----------

## upszot

 *DJ_DEXTER wrote:*   

> Esa opcion del portage puede ser muy util, y me ha salvado muchas veces, pero cuando se actualizo udev y demas del system el revdep-rebuild recompilo lo que se habia roto pero el @preserved-rebuild seguia dando que se tenian que recompilar 52 paquetes, le di que los recompilara y seguia con el protected, y al terminar pedia recompile los 52 paquetes....

 

jeje, ni que fueras psiquico... me esta pasando exactamente lo mismo que a vos... termine de actualizar el sistema con las nuevas use, ejecute el "emerge @preserved-rebuid " y tras terminar probe de nuevo con "emerge -p @preserved-rebuild " y me vuelven a figurar los 27 paquetes que quiere recompilar...

la version de portage que estoy usando yo es la "2.2_rc49"  ...

me podrias decir paso a paso, como hiciste para solucionar eso? y si despues de bajarte de version de portage y areglarlo volviste a la 2.2 o te quedaste con la 2.1? 

 tengo miedo de que por bajarme de version de portage se me haga lio con las cosas que tengo instaladas (pq esten masqueadas y todas esas cosas)...

----------

## Dj_Dexter

Sin miedo haz esto:

con nano u otro editor:

quitas o comentas la entrada de sys-apps/portage de /etc/portage/package.keywords

comentas o quitas la entrada de sys-apps/portage de /etc/portage/package.unmask

luego un update del entorno:

```
#env-update && source /etc/profile
```

luego un:

```
emerge -av portage
```

ahora saldra UD = downgrade, dele yes, si sale todo bien pondra la ultima version de portage estable y no se preocupe el mismo portage unstable en sus ultimos alientos eliminara las entradas que ya no usa porque estara el Portage 2.1x de nuevo, si sale los preserved de nuevo ese fue el ultimo aliento del 2.2x de Portage  :Very Happy: , no se asuste por ello

una vez terminado:

```
#env-update && source /etc/profile
```

Y asi dejara de joder ese @preserved-rebuild y ya no estara  :Wink: 

quitar el registro del @preserved-rebuild si es que quiere usar de nuevo el Portage 2.2 alguna vez:

```
#cd /var/lib/portage
```

```
#rm preserved_libs_registry
```

y asi no quedara registro de los preserved, lo demas no lo borre ni toque   :Laughing: 

Espero que le sirva

Saludos!!!

----------

## upszot

bueno hice lo que me dijiste DJ_DEXTER  y funciona a la perfeccion...

 me baje de version de portage borre el archivo del  registro del @preserved-rebuild y volvi a subirme a la version 2.2 del portage...

y ahora ya no me figura mas ese molesto mensaje cada vez que compilo del @preserved-rebuild  ...

por lo cual le agrego la etiqueta de solucionado al post =))

gracias a todos por la ayuda =))

----------

