Poudriere: Intente buscar dependencias en lugar de construirlas localmente

Creado en 31 may. 2015  ·  21Comentarios  ·  Fuente: freebsd/poudriere

Probar puertos antes de realizar cambios es costoso. Entonces, está construyendo la superposición de algunos puertos con opciones no predeterminadas.

  • /head es un objetivo de movimiento rápido, ports -u menudo hace que muchos estén desactualizados
  • El soporte de Nivel1 consiste en 4 * 2 = 8 combinaciones de plataforma
  • redports.org (CI) todavía no está disponible después de que dejó de funcionar hace un año
  • El diseño del repositorio no admite NO_ARCH , NO_OSREL , NO_OPSYS todavía
  • algunos puertos pueden requerir mucha memoria / tiempo / actividad de disco para construir

Afortunadamente, pkg.freebsd.org ya proporciona paquetes listos para usar. ¿Por qué no aprovechar? Advertencia: solo es útil cuando el árbol de puertos local y la instantánea remota en ese momento no divergen mucho.

Performance

Comentario más útil

Aún no está implementado en Poudriere, pero estoy programado para después del próximo lanzamiento.

Todos 21 comentarios

Sí, esta es una característica deseada. Lo he llamado "siembra de paquetes". El script de compilación pkg.freebsd.org realmente lo hace por sí mismo para que podamos construir en diferentes sistemas entre cada compilación. Ha estado en TODOLIST desde siempre, pero aún no se ha implementado en Poudriere.

También recientemente comenzó a usar activamente poudriere para construir paquetes por sí mismos y quisiera una función similar para -f pkg-list.txt si es parte de un paquete con las opciones cambiadas, luego compílelas localmente, y con las opciones predeterminadas, busque el repositorio ascendente.

Si esto ya está implementado en una rama, me gustaría ayudar a probarlo.

Aún no está implementado en Poudriere, pero estoy programado para después del próximo lanzamiento.

Hola, @bdrewery ,

Siento haber estado bastante ocupado últimamente. Intentaré buscar en las próximas semanas.

¿Alguna información nueva? ¡Gracias!

Esta sería una característica muy buena. Acabo de actualizar a 3.3.99.20190311, pero no vi una opción para la siembra de paquetes. ¿Hay novedades sobre esta función?

Mientras tanto, estoy usando una forma pirateada de hacer esto: https://github.com/lwhsu/freebsd-ports-libreoffice/blob/master/porttest.sh

Bueno, intente poudriere testport que necesita tanto GCC 9.xy Clang 8.0 para compilarse ...
Tomó alrededor de un día la última vez que necesitaba probar eso.

@bdrewery ¿ alguna esperanza de ver esta función lo suficientemente pronto?

No es probable ya que mi enfoque está en otra parte, como construir menos en la construcción incremental y el soporte distribuido.

¿Se viene alguna actualización para este problema? ¿Hay algo que podamos hacer para ayudar?

Perdón por otro "yo también". Me gusta construir algunos puertos que estoy usando, ya que he seleccionado banderas especiales en ellos. Cosas como Mesa et al. Sin embargo, necesito una versión LLVM específica y, bueno, realmente no quiero ni necesito construirla yo mismo. Por lo tanto, sería genial si pudiera decirle a poudriere para algunos puertos seleccionados que nunca los compilen, sino que los busque en su lugar.

De lo contrario, mi carrera termina así:

[freebsd:12:x86:64-default] [2020-06-22_09h45m06s] [parallel_build:] Queued: 1616 Built: 97   Failed: 0    Skipped: 0    Ignored: 0    Tobuild: 1519  Time: 02:21:47
        [01]: devel/llvm80              | llvm80-8.0.1_3            build           (01:50:32 / 01:51:56)
        [02]: devel/llvm90              | llvm90-9.0.1_1            build           (01:50:59 / 01:52:03)
        [03]: lang/gcc9                 | gcc9-9.3.0_1              build           (01:51:28 / 01:51:54)

Me gustaría evitar esa rotación inútil. ¡Gracias!

@uqs te escucho. También creo que hay otra forma de resolver ese problema en particular, que es hacer que los paquetes oficiales se compilen con las banderas que desee. ¿Podrías compartir detalles sobre las banderas que cambias?

Otro yo también aquí. Es decir, necesito el puerto dns / unbound con python, pero no necesito tener todas las dependencias subyacentes construidas.

+1

+1

¡Esta característica o alguna documentación sobre cómo usar los ganchos para lograr lo mismo sería genial!

797 cubrirá esto

797 está fusionado, pero hay muchas trampas que hacen que esto no sea tan útil como parece. Por ejemplo, llvm y todas las demás cosas importantes todavía se compilan. Probablemente se necesite el # 822 para arreglar eso.

¿Fue útil esta página
0 / 5 - 0 calificaciones