# Paquetes bloqueados.

## Juan Facundo

Hola gente.

He pasado a systemd siguiendo los tutoriales comunes y todo ha ido bien. Pero quiero actualizar mi sistema y algo no me deja. Ademas, no termino de comprender bien como es que funciona el tema de los paquetes bloqueados; Lo he leido, pero no logro comprender del todo.

En este caso particular, el error es el siguiente:

```
tuxbookpro ~ # emerge world -uav

 * IMPORTANT: 13 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.

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

Calculating dependencies... done!

[ebuild     U  ] sys-devel/gnuconfig-20140728 [20140212] 45 KiB

[ebuild     U  ] app-arch/xz-utils-5.0.8 [5.0.5-r1] USE="nls threads -static-libs" ABI_X86="(64) (-32) (-x32)" 1.298 KiB

[ebuild     U  ] app-arch/gzip-1.6 [1.5] USE="-pic -static (-nls%*)" 709 KiB

[ebuild     U  ] sys-devel/patch-2.7.3 [2.6.1] USE="-static {-test} -xattr%" 669 KiB

[ebuild     U  ] sys-apps/file-5.22 [5.19] USE="zlib -python -static-libs" ABI_X86="(64) (-32) (-x32)" PYTHON_TARGETS="python2_7 python3_3 -python3_4" 716 KiB

[ebuild     U  ] net-misc/rsync-3.1.1 [3.0.9-r3] USE="acl iconv ipv6 -static -xattr" 870 KiB

[ebuild     U  ] sys-apps/iproute2-3.17.0 [3.8.0] USE="berkdb iptables ipv6 -atm -minimal (-selinux)" 430 KiB

[ebuild     U  ] sys-apps/busybox-1.23.1-r1 [1.21.0] USE="ipv6 pam static systemd -debug% -livecd -make-symlinks -math -mdev -savedconfig (-selinux) -sep-usr -syslog" 2.200 KiB

[ebuild     U  ] sys-process/procps-3.3.9-r2 [3.3.9] USE="ncurses nls systemd%* unicode (-selinux) -static-libs {-test}" 548 KiB

[ebuild     U  ] sys-apps/man-pages-3.79 [3.72] USE="nls" LINGUAS="-da -de -fr -it -ja -nl -pl -ro -ru -zh_CN" 1.295 KiB

[ebuild     U  ] sys-libs/e2fsprogs-libs-1.42.12 [1.42.10] USE="nls -static-libs" ABI_X86="(64) (-32) (-x32)" 591 KiB

[ebuild     U  ] sys-process/psmisc-22.21-r2 [22.20] USE="X ipv6 nls (-selinux)" 447 KiB

[ebuild     U  ] sys-devel/make-4.1-r1 [4.0-r1] USE="nls -guile -static" 1.297 KiB

[ebuild     U  ] sys-apps/grep-2.21-r1 [2.16] USE="nls pcre -static" 1.236 KiB

[ebuild     U  ] sys-fs/e2fsprogs-1.42.12 [1.42.10] USE="nls -static-libs" 6.233 KiB

[ebuild  N     ] sys-apps/openrc-0.13.11  USE="ncurses netifrc pam unicode -debug -newnet (-prefix) (-selinux) -static-libs -tools" 148 KiB

[ebuild  N     ] net-misc/netifrc-0.2.2  60 KiB

[ebuild  N     ] virtual/service-manager-0  USE="(-prefix)" 0 KiB

[blocks B      ] <sys-fs/udev-init-scripts-27 ("<sys-fs/udev-init-scripts-27" is blocking sys-apps/openrc-0.13.11)

Total: 18 packages (15 upgrades, 3 new), Size of downloads: 18.784 KiB

Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be

 * installed at the same time on the same system.

  (sys-fs/udev-init-scripts-26-r2:0/0::gentoo, installed) pulled in by

    >=sys-fs/udev-init-scripts-25 required by (sys-apps/systemd-215-r3:0/2::gentoo, installed)

  (sys-apps/openrc-0.13.11:0/0::gentoo, ebuild scheduled for merge) pulled in by

    >=sys-apps/openrc-0.12 required by (net-misc/netifrc-0.2.2:0/0::gentoo, ebuild scheduled for merge)

    sys-apps/openrc required by (virtual/service-manager-0:0/0::gentoo, ebuild scheduled for merge)

    sys-apps/openrc required by @system

For more information about Blocked Packages, please refer to the following

section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked

```

¿Alguna idea de por donde esta el bloqueo, o que debo hacer para solucionarlo?

Gracias.

----------

## quilosaq

Prueba a actualizar sólo sys-fs/udev-init-scripts:

```
(root)# emerge -pv --oneshot udev-init-scripts
```

Si todo va bien prueba otra vez:

```
tuxbookpro ~ # emerge world -uav
```

----------

## Juan Facundo

Bien, quedó. Pero ¿porque hacerlo así? Leyendo el manual de emerge, la opción oneshot indica instalar el paquete, pero no agregarlo en la lista 'world' para futuras actualizaciones... ¿esta bien asi? Perdon, pero no entiendo..   :Confused: 

----------

## essau

a veces portage no puede actualizar a la vez dos paquetes en un emerge world, en tu caso se ve que se trata de un paquete de udev y de openrc, que trabajan en el mismo "asunto". Hay diferentes trucos para solventar esto. Uno es el que te han dicho, haces una instalación --oneshot de uno de ellos, y luego ya podrás hacer la actualización world.

Una instalación --oneshot no te saca el paquete del archivo world si ya está dentro. Lo que hace es que no lo incluye si no está especificado.

Para sacar un paquete del archivo world que está en /var/lib/portage/world

haz : sudo emerge paquete --deselect.

Esto puede interesar si no quieres que se actualice un determinado paquete de forma automática salvo que tu lo emerjas específicamente.

Un saludo.

----------

## quilosaq

 *Juan Facundo wrote:*   

> Bien, quedó. Pero ¿porque hacerlo así? Leyendo el manual de emerge, la opción oneshot indica instalar el paquete, pero no agregarlo en la lista 'world' para futuras actualizaciones... 

 El argumento --oneshot no es importante en este caso. Hubiera tenido el mismo efecto no ponerlo:

```
(root)# emerge -pv udev-init-scripts
```

ya que en tu primer post se veía que lo tenías instalado y por lo tanto ya estaba incluido en el archivo world. Lo puse porque es una costumbre que tengo.

No vayas a pensar que todos los bloqueos se arreglan con --oneshot. Cada bloqueo hay que estudiarlo y buscar una estrategia para eliminarlo.

----------

## Juan Facundo

gracias...

----------

## Arctic

-oneshot es para instalar solamente ese paquete sin incluir las dependencias, en algunos casos es útil en otros nos dará errores al compilar.

El bloqueo es lógico, si intentas instalar systemd y udev al mismo tiempo tiene que haber bloqueos si o si, ya que ambos paquetes son incompatibles entre si. Systemd ya incluye udev, con lo udev ya no es necesareo como paquete "aislado".

----------

## essau

Como se puede comprobar en la sabia página man de --oneshot

```
--oneshot (-1)

              Emerge  as  normal, but do not add the packages to the world file

              for later updating.
```

no se trata de que no instale las dependencias (las instala), la única diferencia es que no incorpora el paquete al archivo world

Un saludo.

----------

## Arctic

 *essau wrote:*   

> Como se puede comprobar en la sabia página man de --oneshot
> 
> ```
> --oneshot (-1)
> 
> ...

 

Tienes razón, creo que me he confundido con -O or -o ....... estoi trasteando con una LFS y no puedo verificarlo, mi memoria ya no es lo que era......... :/

----------

