# algunos emerges en paralelo...

## cgr

wenas,

existe algun problema si intento por ejemplo emerger 20 programas en paralelo??, se podria corromper el portage??

es que no sabia si emerge estaba preparado para ello, y me he hecho un programa para bajar/compilar varios programas mucho mas rapido, pero si se pudiese emerger en paralelo pues no me haria falta... iba a mejorar el programa para que fuese mucho mas rapido aun, pero si no va a servir para nada... casi que no...

salu2

----------

## TieferFeld

Por experiencia propia te aconsejo que no lo hagas. No te puedo dar detalles técnicos, pero supongo que si se actualiza algo del portage desde dos puntos diferentes, se puede liar.

Sé que una vez lo hice, al principio del todo de empezar a usar gentoo (se estaba emergiendo un paquete mu gordo y puse uno chiquito mientras tanto) y algo no fue bien. 

Supongo que alguien más lo habrá intentado, a ver qué nos dicen  :Wink: 

----------

## luisfeser

Pues si, yo tambien lo hice. Pero fue sin querer, tenia un paketón en el escritorio 3, y claro, no me acordaba y me puse a emerger otras cosas y no se, pero luego hacia cosas raras, aunk no se jorobó, pero me dio un buen susto.

Además no creo k ganes nada compilando en paralelo, ya que van a tardar lo mismo al repartirse el procesador que si lo hicieras primero uno y luego otro.

----------

## cgr

no tarda lo mismo ni muchisimo menos. Imaginate, vas a emerger 10 paquetes, el XFree 80MB, el KDE 100MB, el gcc 30MB, y los demas dan igual... bien, se baja el XFree y empieza a compilar, tarda en compilar 3 horas o las que sea, y cuando acaba a bajar el KDE y lo mismo... mientras que con mi programa (o haciendolo en paralelo), mientras se esta compilando las XFree, se esta bajando el KDE, o sea que te ahorras por lo menos 3 horas solo con estos dos paquetes (a 128kb/s 100MB tarda eso en mi pc), y si termina de bajar las KDE y el Xfree aun no ha acabado, pues se empieza a bajar el gcc... una vez se acaba de compilar las Xfree empieza inmediatamente a compilar las KDE y cuando acabas, pues empieza a compilar el gcc y todo lo demas, porque ya se habra bajado... 

es decir, en paralelo se tarda:

   tmp=maximo{tmp de descarga de todo, tmp descarga 1º paquete+tmpcompilacion}

y en serie:

   tmp=tiempo descarga+tiempo compilacion

tarda muchiisimo mas en serie....

no se si me he explicado... lo que me extraña es que nadie haya hecho un programa que permita esto, porque ahorrar tiempo ahorra y mucho...

venga salu2

----------

## alexlm78

Poder como poder, seguun yo si se puede, pero hay que tener mucho cuidado con las dependencia y las flag pues por ahorrante unn poco de timepo puedes resultar gastando el soblre o triple en arreglar lo q' se arruine, yo lo he hecho con programas que no depende en nada unos de otros , pero con una dependencia que compartan ya no funcionaria.

mucho cuidado con eso.

saludos.

----------

## rsa

Yo lo he hecho repetidas veces, solo hay que tener cuidado con las dependencias de los paquetes que emerges, pero no creo usando esto ahorres tiempo, lo que se puede hacer es emerger con -f y asi adelantas

descargando los paquetes cuando el otro emerge los compila.

----------

## cgr

 *alexlm78 wrote:*   

> Poder como poder, seguun yo si se puede, pero hay que tener mucho cuidado con las dependencia y las flag pues por ahorrante unn poco de timepo puedes resultar gastando el soblre o triple en arreglar lo q' se arruine, yo lo he hecho con programas que no depende en nada unos de otros , pero con una dependencia que compartan ya no funcionaria.
> 
> mucho cuidado con eso.
> 
> saludos.

 

claro, para eso es mi programa, con el las compilaciones van en serie, pero las descargas van paralelamente a las compilaciones, por lo que no hay problemas de dependencias... lo unico que me iria muy bien es que dados una lista de programas, emerge me muestre todas las dependencias que se van a descargar en texto plano sin florituras (algo como emerge pretend x), para asi captarlas con el programa facilmente y poder descargarlas y compilarlas en orden...

----------

## alexlm78

Solo recalco, aguas con las dependencias, yo ya baje uuna vez un paquete 4 veces en paralelo por un error de calculo.

Fue un despercicio de recursos y tiempo, el md5 nunca coincidia pues se sobreescribia a si mismo., tuve que detener las otrta y dejar unna sola.

----------

## cgr

 *rsa wrote:*   

> Yo lo he hecho repetidas veces, solo hay que tener cuidado con las dependencias de los paquetes que emerges, pero no creo usando esto ahorres tiempo, lo que se puede hacer es emerger con -f y asi adelantas
> 
> descargando los paquetes cuando el otro emerge los compila.

 

eso es precisamente lo que hace el programa, pero hay que tenerlo todo bien sincronizado... que pasaria si se esta descargando X con "emerge -f T Y X Z" , y el "emerge T Y X Z" llega a X, empezara a bajarse tambien en este emerge y cascara... lo que hace mi programa es sicncronizar estos dos emerges para que el emerge de compilar espere al "emerge -f "... 

y hombre, no me digais que no se gana tiempo para varios paquetes, te ahorras practicamente todo el tiempo de descarga... que sera la mitad + o -...

----------

## caos

Si buscas un poco por los foros encontrarás un script que te controla no perder el tiempo que dices perder. Te controla que mientras compilas un paquete te esté bajando el siguiente.

No me acuerdo del nombre del script pero sé que estaba por los foros en ingles. Intenta buscarlo a ver si tienes suerte.

----------

## psm1984

yo he hecho muchos emerges en paralelo y nunca ha pasado nada, aunque eso si, lo he hecho con cuidado de que nunca se instale lo mismo dos veces. Para paquetes grandes primero empiezo con un emerge -f y cuando termina el primero me pongo a compilar, con cuidado de que no termine la compilacion antes de que se termine de bajar el siguiente. (por cierto, creo que lei hace tiempo que esto se iba a realizar de forma automatica)

----------

## cgr

 *caos wrote:*   

> Si buscas un poco por los foros encontrarás un script que te controla no perder el tiempo que dices perder. Te controla que mientras compilas un paquete te esté bajando el siguiente.
> 
> No me acuerdo del nombre del script pero sé que estaba por los foros en ingles. Intenta buscarlo a ver si tienes suerte.

 

claro, ya decia yo que me extrañaba que no se le hubiese ocurrido a nadie antes... de todas maneras seguire con lo mio que por ahora funciona bien..

----------

## cgr

bien, mas o menos la herramienta ya funciona como queria, he hecho una prueba y los resultados han sido:

con la herramienta:

```

[root@d999 emergep-1.1]$ time ./emergep supertux xbomber race bzflag moon-buggy xboing

real    26m27.351s

user    16m51.652s

sys     2m40.616s

```

sin la herramienta:

```

[root@d999 emergep-1.1]$ time emerge supertux xbomber race bzflag moon-buggy xboing

real    33m55.168s

user    15m35.987s

sys     2m17.465s

```

han sido 11 Mb y se nota que es mas rapido, teniendo en cuenta que bajo 11Mb en 13Min , y que el primer paquete son 5 mb = 6 minutos, 13-6=7 que es la diferencia entre los dos tiempos... o sea que ha sido como si solo me hubiese bajado el primer paquete y el resto de ellos los tuviese ya en el HD, ¡os lo habia dicho!

bueno, pues si alguien lo quiere probar, que lo diga y lo pondre en algun sitio para descargar, ahora voy a estudiar que el viernes tengo Calculo!!

venga salu2

----------

## cgr

weno, ahora que tengo algo de tiempo, lo he subido a un servidor por si alguien lo quiere:

emergep-1.1.tar.gz

hay que guardarlo con click derecho, 'Guardar como...'

----------

