{"id":1597,"date":"2015-04-15T12:00:47","date_gmt":"2015-04-15T12:00:47","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=1597"},"modified":"2015-04-15T12:00:47","modified_gmt":"2015-04-15T12:00:47","slug":"lanzado-multipackager","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=1597","title":{"rendered":"Lanzado Multipackager"},"content":{"rendered":"<p>Acabo de lanzar la primera versi\u00f3n de <a href=\"http:\/\/www.rastersoft.com\/programas\/multipackager_es.html\" target=\"_blank\">Multipackager<\/a>. Se trata de un programa que simplifica la creaci\u00f3n de paquetes para m\u00faltiples distribuciones y arquitecturas. La idea es sencilla: si tienes instalada Debian de 64 bits, es relativamente sencillo crear un paquete para Debian de 64 bits; pero hacer uno para Debian de 32 bits la cosa empieza a complicarse. Y ya no digamos para hacerlo para Ubuntu de 32 o 64 bits (aunque deriva de Debian, a veces las bibliotecas no son del todo compatibles). Y mejor no hablemos para hacer un paquete para Fedora.<\/p>\n<p>La soluci\u00f3n m\u00e1s r\u00e1pida consiste en usar una m\u00e1quina virtual con el sistema operativo deseado, pero tiene el inconveniente de que montar una m\u00e1quina para cada uno es una tarea pesada y engorrosa.<\/p>\n<p>Es justo aqu\u00ed donde entra en juego Multipackager: aprovechando que estas distribuciones tienen herramientas que permiten generar un sistema base de manera sencilla, se me ocurri\u00f3 hacer un programa que, d\u00e1ndole una tripla de datos (\u00abdistribuci\u00f3n, versi\u00f3n, arquitectura\u00bb; por ejemplo \u00abdebian, jessie, i386\u00bb, o \u00abubuntu, utopic, amd64\u00bb), genere autom\u00e1ticamente una m\u00e1quina virtual para ella, completamente pr\u00edstina y limpia de polvo y paja, y la utilice para generar, lo m\u00e1s autom\u00e1ticamente posible, un paquete para un proyecto determinado.<\/p>\n<p>El resultado es que es posible disponer de una lista de dichas triplas y, tan s\u00f3lo indicando la ruta a un proyecto, Multipackager generar\u00e1 autom\u00e1ticamente cada una de ellas, instalar\u00e1 las dependencias necesarias para el proyecto, compilar\u00e1 el c\u00f3digo en su interior, generar\u00e1 el paquete, lo copiar\u00e1 al exterior, y limpiar\u00e1 los datos temporales.<\/p>\n<p>En estos momentos Multipackager puede trabajar con m\u00e1quinas Debian y Ubuntu (Fedora est\u00e1 en camino), en arquitecturas de 32 y 64 bits, y puede generar paquetes binarios y de Python3. A mayores permite generar una m\u00e1quina virtual con dicha tripla y lanzar una shell interactiva en su interior, por si necesitamos hacer pruebas o dem\u00e1s. En este caso, al salir no se borra ning\u00fan dato temporal, por lo que es posible volver a entrar en cualquier momento.<\/p>\n<p>Por \u00faltimo, incluye una cach\u00e9 de distribuciones para que no sea necesario bajar el sistema base de cada vez (una tarea bastante larga).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Acabo de lanzar la primera versi\u00f3n de Multipackager. Se trata de un programa que simplifica la creaci\u00f3n de paquetes para m\u00faltiples distribuciones y arquitecturas. La idea es sencilla: si tienes instalada Debian de 64 bits, es relativamente sencillo crear un paquete para Debian de 64 bits; pero hacer uno para Debian de 32 bits la &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=1597\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Lanzado Multipackager<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1597","post","type-post","status-publish","format-standard","hentry","category-nueva-version"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1597"}],"version-history":[{"count":0,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1597\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}