SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
open build service
     Mauro Parra-Miranda
   mauro@masutostudios.com



                             1
¿Qué es?
•    Servicio público para ayudar a los
    desarrolladores a distribuir su software.
• Novell/SUSE proporciona una granja de
    compilación con todos los sistemas
    soportados configurados y listos.
• Genera paquetes para múltiples
    distribuciones, tales como openSUSE,
    Ubuntu, Mandrake, Fedora.


                                                2
¿Qué es?
• Soporta múltiples arquitecturas: ix86,
  ix86_64, PPC; en un futuro para ARM.
• Un solo RPM spec genera paquetes para
  todas las distribuciones que se desee,
  incluyendo ubuntu, que usa paquetes “.deb”.
• Genera automagicamente un canal de
  distribución de software. Algo como:
  http://software.opensuse.org/yourproject


                                                3
¿Qué es?
• Los usuarios pueden buscar la última versión
  del software que necesitan, via
  http://software.opensuse.org
• Acceso a compañias externas a dar soporte
  fácilmente a linux (proveer repositorios para
  cada proyecto de las compañias, con su
  respectivo repositorio e incluso sus propias
  dependencias).


                                                  4
¿Qué es?
• Permite el desarrollo en equipo.
• La granja compilara todos tus proyectos tan
  seguido como los cambies, pero si requieres
  hacer pruebas rápidas, puedes realizar la
  compilación (y el paquete) en tu propia
  estación, con un minimo de esfuerzo y un
  minimo de paquetes instalados
  (prácticamente, solo hay que instalar osc).


                                                5
¿Qué es?

• Obtener parches y aplicaciones para
  distribuciones con versiones viejas (o la
  habilidad de compilar alguna versión más
  reciente tu mismo, sin dolor).
• Más info en el video:
  http://en.opensuse.org/BSVideo



                                              6
Ventajas
• No necesidad de granjas de compilación o
  múltiples máquinas soportadas o
  configuraciones.
• Resolución de dependencias automatica, con
  su respectiva compilación si es necesario
  (por ejemplo, si alguna de las dependencias
  de paquete foo se actualizaran, el paquete
  foo se vuelve a compilar con la nueva
  dependencia).


                                                7
Ventajas
• Ligas a otros proyectos, por lo que puedes
  reutilizar los paquetes que haya hecho
  alguien más. Por ejemplo, ustedes generaron
  un parche para banshee, que quieren probar.
  No tienen que hacer el paquete de cero,
  sino que ligan al paquete banshee del
  proyecto, y encima de eso hacen
  modificaciones. Asi, siempre tendran las
  versiones más frescas.


                                                8
Ventajas
• Se puede compilar y distribuir para:
  SUSE
  Debian
  Redhat
  Mandriva Linux
  Ubuntu


• Con soporte para ix86, x86_64, PPC, ARM.
  Con posible soporte para z390x, ia64.


                                             9
RPM spec
• Comentarios - Ignorados por RPM.
• Tags - Definir datos.
• Scripts - Conjunto de comandos a ejecutar.
• Macros - Abreviación para múltiples
  comandos a ejecutar.
• %files - La lista de archivos en el RPM
• Directivas - modificadoras de archivos.
                                               10
RPM spec


• Condicionales - if’s a nivel de arquitectura o
  sistema operativo.




                                                   11
RPM spec


• Comentarios
  # This is the spec file for playmidi 2.3...




                                               12
RPM spec
• Tags
  <something>:<something-else>
  Vendor: Masuto Studios
  Name: Foo
  Version: 1.2
  Release: 6
  %description This software does something
  Summary: This software does something.
  Copyright: GPL


                                              13
RPM spec

• Tags
  URL: http://www.masutostudios.com
  Group: Applications/Editors
  Packager: Mauro Parra-Miranda
  <mauro@masutostudios.com>




                                      14
RPM spec
• Dependencias
  Provides: evolution
  Requires: glibc
  Conflicts: evolution-1
  AutoReqProv: no
  ExcludeArch: sparc alpha
  Prefix: /opt
  BuildRoot: /tmp/cdplayer



                             15
RPM spec

• Source: ftp://ftp.gnomovision.com/pub/
  cdplayer-1.0.tgz
  Source1: Fooobar.tar.gz
  Patch: foo.patch
  Patch1: bar.patch




                                           16
Tareas del RPM
• Desempacar los fuentes
• Aplicar parches
• Compilar el software
• Instalar el software
• Empaquetar
• Limpiar

                           17
Filosofia de RPM


• Comenzar con código fuente pristino.
• Aplicar parches sucesivos
• Compilar la versión parchada.


                                         18
Script %prep

• Corre antes que cualquier cosa, usualmente
  crea los directorios, desempaca el código
  fuente, aplica parches, aplica cualquier tipo
  de operaciones para poder generar el
  código fuente a compilar, como cualquier
  desarrolladfor haria.




                                                  19
Script %build

• Corre después de %prep, usualmente solo
  implica un:

  make

  o similar.




                                            20
Script %install
• Primero intenta correr un:
  make install

  uno después puede añadir cualquier otra
  cosa que se requiera, como un theme o
  branding, que en ocasiones no se requiere
  para compilar.



                                              21
Script %clean


• Limpiar el sitio de trabajo :-)
• rm -rf $RPM_BUILD_ROOT


                                    22
Otros scripts interesantes

• %pre - corre antes que se instale el RPM
• %post - corre despues que se instale el RPM
  (normalmente para correr ldconfig).
• %preun - igual que %pre, pero se corre antes
  de desinstalar el RPM
• %postun - igual que %post, pero se corre
  despues de desinstalar el RPM


                                                 23
Scripts comunes


• %setup - desempaqueta los fuentes, revisa
  permisos, se puede indicar el orden en el
  cual se desempaquetan los fuentes.
• %patch - permite aplicar uno o tal parche en
  los fuentes.




                                                 24
%files
• Indica que archivos deben ser incluidos,
  incluye manuales, graficas, etc.
• Puede uno usar %doc para indicar que es
  documento, %config es para indicar que es
  un archivo de configuracion que se debe
  guardar aun despues de borrado el paquete.
• %attr (mode, user, group) file, como:
  (755,root,root)


                                               25
%files


• %dir - indica que algo es un directorio.



                                             26
Subpaquetes
• %package hace posible hacer mas de un
  paquete con un mismo SPEC; muchos lo
  usan para hacer subpaquetes, como los que
  contienen la documentación y similar.

  %package -n doc

  Lo cual hace un subpaquete foo-doc



                                              27
Prozilla




           28
Prozilla




           29
Prozilla




           30
Prozilla




           31
Prozilla




           32
obs - web




            33
obs - web




            34
obs - web




            35
obs - web




            36
obs - web




            37
Links
• http://build.opensuse.org
• http://en.opensuse.org/Build_Service
• Build Service Book -
  https://build.opensuse.org/documentation/obs/index.html

• osc (cli) - http://en.opensuse.org/Build_Service/CLI
• Max RPM - http://www.rpm.org/max-rpm
• http://masutostudios.com/ciencias09/obs.pdf
                                                            38
Masuto Studios
http://www.masutostudios.com




                               39

Weitere ähnliche Inhalte

Was ist angesagt?

Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoSergio Zambrano Delfa
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y PuppetRichard Moya
 
Debian hecho david g.s.n
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.naliat_so1
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
 
Software Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la ComputacionSoftware Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la ComputacionJuan Vladimir
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementEdgardo Hames
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonCodeSyntax
 
sistema operativo
sistema operativosistema operativo
sistema operativojesus2028
 
10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicaskarenhostmins
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5gavagarcia
 
Algunas preguntas de Linux
Algunas preguntas de LinuxAlgunas preguntas de Linux
Algunas preguntas de LinuxPaupauheavy
 

Was ist angesagt? (17)

Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Debian hecho david g.s.n
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.n
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Software Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la ComputacionSoftware Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la Computacion
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
 
Comfusion4
Comfusion4Comfusion4
Comfusion4
 
Php (hipertex pre processor)
Php (hipertex pre processor)Php (hipertex pre processor)
Php (hipertex pre processor)
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Linux
LinuxLinux
Linux
 
10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5
 
Algunas preguntas de Linux
Algunas preguntas de LinuxAlgunas preguntas de Linux
Algunas preguntas de Linux
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 

Andere mochten auch (8)

Horario Dos Profs Da Biblioteca
Horario  Dos Profs Da BibliotecaHorario  Dos Profs Da Biblioteca
Horario Dos Profs Da Biblioteca
 
Cidades mais raras do mundo
Cidades mais raras do mundoCidades mais raras do mundo
Cidades mais raras do mundo
 
31450
3145031450
31450
 
31084
3108431084
31084
 
ApresentaçãO1 Eja
ApresentaçãO1  EjaApresentaçãO1  Eja
ApresentaçãO1 Eja
 
HoráRio Das Turmas Pnl
HoráRio Das Turmas  PnlHoráRio Das Turmas  Pnl
HoráRio Das Turmas Pnl
 
RepúLica 7 8 9
RepúLica 7 8 9RepúLica 7 8 9
RepúLica 7 8 9
 
Dia Nao Fumador
Dia Nao FumadorDia Nao Fumador
Dia Nao Fumador
 

Ähnlich wie Open Build Service

Sistema operativo unix
Sistema operativo unixSistema operativo unix
Sistema operativo unixJosé Chancoh
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
Clase1(software libre)
Clase1(software libre)Clase1(software libre)
Clase1(software libre)juanhuapaya
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linuxDiego Junior Loaiza Maldonado
 
Open Solaris Multimedia
Open Solaris MultimediaOpen Solaris Multimedia
Open Solaris Multimediajuandanielp
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lilijassley 2000
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)Akashi Yuurei
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)Akashi Yuurei
 
Resumen investigación tesina gnu linux
Resumen investigación tesina gnu linuxResumen investigación tesina gnu linux
Resumen investigación tesina gnu linuxcrosbycarbajal
 
Miranda castillo UNIX
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIXmiranda696
 

Ähnlich wie Open Build Service (20)

Sistema operativo unix
Sistema operativo unixSistema operativo unix
Sistema operativo unix
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Clase1(software libre)
Clase1(software libre)Clase1(software libre)
Clase1(software libre)
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linux
 
Open Solaris Multimedia
Open Solaris MultimediaOpen Solaris Multimedia
Open Solaris Multimedia
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Mary cervantes
Mary cervantesMary cervantes
Mary cervantes
 
Resumen investigación tesina gnu linux
Resumen investigación tesina gnu linuxResumen investigación tesina gnu linux
Resumen investigación tesina gnu linux
 
Genesis campos
Genesis camposGenesis campos
Genesis campos
 
Miranda castillo UNIX
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIX
 
Ambar galeas
Ambar galeasAmbar galeas
Ambar galeas
 
Sistema linux
Sistema linuxSistema linux
Sistema linux
 
Julissa
JulissaJulissa
Julissa
 

Mehr von Mauro Parra-Miranda

Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?Mauro Parra-Miranda
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolMauro Parra-Miranda
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
 
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkMauro Parra-Miranda
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manualMauro Parra-Miranda
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Mauro Parra-Miranda
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioMauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioMauro Parra-Miranda
 

Mehr von Mauro Parra-Miranda (20)

Configuraciones inseguras
Configuraciones insegurasConfiguraciones inseguras
Configuraciones inseguras
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
 
Fractura Sismo
Fractura SismoFractura Sismo
Fractura Sismo
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manual
 
AppHack GDL 2013
AppHack GDL 2013AppHack GDL 2013
AppHack GDL 2013
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Alloy Preview
Alloy PreviewAlloy Preview
Alloy Preview
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión global
 
Economía de las Apps
Economía de las AppsEconomía de las Apps
Economía de las Apps
 
Mobileads
MobileadsMobileads
Mobileads
 
Frameworks iOS
Frameworks iOSFrameworks iOS
Frameworks iOS
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Moviles
MovilesMoviles
Moviles
 

Kürzlich hochgeladen

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Kürzlich hochgeladen (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Open Build Service

  • 1. open build service Mauro Parra-Miranda mauro@masutostudios.com 1
  • 2. ¿Qué es? • Servicio público para ayudar a los desarrolladores a distribuir su software. • Novell/SUSE proporciona una granja de compilación con todos los sistemas soportados configurados y listos. • Genera paquetes para múltiples distribuciones, tales como openSUSE, Ubuntu, Mandrake, Fedora. 2
  • 3. ¿Qué es? • Soporta múltiples arquitecturas: ix86, ix86_64, PPC; en un futuro para ARM. • Un solo RPM spec genera paquetes para todas las distribuciones que se desee, incluyendo ubuntu, que usa paquetes “.deb”. • Genera automagicamente un canal de distribución de software. Algo como: http://software.opensuse.org/yourproject 3
  • 4. ¿Qué es? • Los usuarios pueden buscar la última versión del software que necesitan, via http://software.opensuse.org • Acceso a compañias externas a dar soporte fácilmente a linux (proveer repositorios para cada proyecto de las compañias, con su respectivo repositorio e incluso sus propias dependencias). 4
  • 5. ¿Qué es? • Permite el desarrollo en equipo. • La granja compilara todos tus proyectos tan seguido como los cambies, pero si requieres hacer pruebas rápidas, puedes realizar la compilación (y el paquete) en tu propia estación, con un minimo de esfuerzo y un minimo de paquetes instalados (prácticamente, solo hay que instalar osc). 5
  • 6. ¿Qué es? • Obtener parches y aplicaciones para distribuciones con versiones viejas (o la habilidad de compilar alguna versión más reciente tu mismo, sin dolor). • Más info en el video: http://en.opensuse.org/BSVideo 6
  • 7. Ventajas • No necesidad de granjas de compilación o múltiples máquinas soportadas o configuraciones. • Resolución de dependencias automatica, con su respectiva compilación si es necesario (por ejemplo, si alguna de las dependencias de paquete foo se actualizaran, el paquete foo se vuelve a compilar con la nueva dependencia). 7
  • 8. Ventajas • Ligas a otros proyectos, por lo que puedes reutilizar los paquetes que haya hecho alguien más. Por ejemplo, ustedes generaron un parche para banshee, que quieren probar. No tienen que hacer el paquete de cero, sino que ligan al paquete banshee del proyecto, y encima de eso hacen modificaciones. Asi, siempre tendran las versiones más frescas. 8
  • 9. Ventajas • Se puede compilar y distribuir para: SUSE Debian Redhat Mandriva Linux Ubuntu • Con soporte para ix86, x86_64, PPC, ARM. Con posible soporte para z390x, ia64. 9
  • 10. RPM spec • Comentarios - Ignorados por RPM. • Tags - Definir datos. • Scripts - Conjunto de comandos a ejecutar. • Macros - Abreviación para múltiples comandos a ejecutar. • %files - La lista de archivos en el RPM • Directivas - modificadoras de archivos. 10
  • 11. RPM spec • Condicionales - if’s a nivel de arquitectura o sistema operativo. 11
  • 12. RPM spec • Comentarios # This is the spec file for playmidi 2.3... 12
  • 13. RPM spec • Tags <something>:<something-else> Vendor: Masuto Studios Name: Foo Version: 1.2 Release: 6 %description This software does something Summary: This software does something. Copyright: GPL 13
  • 14. RPM spec • Tags URL: http://www.masutostudios.com Group: Applications/Editors Packager: Mauro Parra-Miranda <mauro@masutostudios.com> 14
  • 15. RPM spec • Dependencias Provides: evolution Requires: glibc Conflicts: evolution-1 AutoReqProv: no ExcludeArch: sparc alpha Prefix: /opt BuildRoot: /tmp/cdplayer 15
  • 16. RPM spec • Source: ftp://ftp.gnomovision.com/pub/ cdplayer-1.0.tgz Source1: Fooobar.tar.gz Patch: foo.patch Patch1: bar.patch 16
  • 17. Tareas del RPM • Desempacar los fuentes • Aplicar parches • Compilar el software • Instalar el software • Empaquetar • Limpiar 17
  • 18. Filosofia de RPM • Comenzar con código fuente pristino. • Aplicar parches sucesivos • Compilar la versión parchada. 18
  • 19. Script %prep • Corre antes que cualquier cosa, usualmente crea los directorios, desempaca el código fuente, aplica parches, aplica cualquier tipo de operaciones para poder generar el código fuente a compilar, como cualquier desarrolladfor haria. 19
  • 20. Script %build • Corre después de %prep, usualmente solo implica un: make o similar. 20
  • 21. Script %install • Primero intenta correr un: make install uno después puede añadir cualquier otra cosa que se requiera, como un theme o branding, que en ocasiones no se requiere para compilar. 21
  • 22. Script %clean • Limpiar el sitio de trabajo :-) • rm -rf $RPM_BUILD_ROOT 22
  • 23. Otros scripts interesantes • %pre - corre antes que se instale el RPM • %post - corre despues que se instale el RPM (normalmente para correr ldconfig). • %preun - igual que %pre, pero se corre antes de desinstalar el RPM • %postun - igual que %post, pero se corre despues de desinstalar el RPM 23
  • 24. Scripts comunes • %setup - desempaqueta los fuentes, revisa permisos, se puede indicar el orden en el cual se desempaquetan los fuentes. • %patch - permite aplicar uno o tal parche en los fuentes. 24
  • 25. %files • Indica que archivos deben ser incluidos, incluye manuales, graficas, etc. • Puede uno usar %doc para indicar que es documento, %config es para indicar que es un archivo de configuracion que se debe guardar aun despues de borrado el paquete. • %attr (mode, user, group) file, como: (755,root,root) 25
  • 26. %files • %dir - indica que algo es un directorio. 26
  • 27. Subpaquetes • %package hace posible hacer mas de un paquete con un mismo SPEC; muchos lo usan para hacer subpaquetes, como los que contienen la documentación y similar. %package -n doc Lo cual hace un subpaquete foo-doc 27
  • 28. Prozilla 28
  • 29. Prozilla 29
  • 30. Prozilla 30
  • 31. Prozilla 31
  • 32. Prozilla 32
  • 33. obs - web 33
  • 34. obs - web 34
  • 35. obs - web 35
  • 36. obs - web 36
  • 37. obs - web 37
  • 38. Links • http://build.opensuse.org • http://en.opensuse.org/Build_Service • Build Service Book - https://build.opensuse.org/documentation/obs/index.html • osc (cli) - http://en.opensuse.org/Build_Service/CLI • Max RPM - http://www.rpm.org/max-rpm • http://masutostudios.com/ciencias09/obs.pdf 38