Montar un repositorio

28 replies [Last post]
yawin
Offline
Joined: 02/11/2016

¡Hola a todos!

Os traigo una duda que lleva tiempo rondándome: cuando quiero distribuir algún programa que he desarrollado me encuentro con que mis ejecutables no funcionan en quienes se lo descargan porque no está compilado para su arquitectura, o porque no cumplen con todas las dependencias.

He pensado que podría hacer un instalador que verifique esas cosas, pero soy enemigo acérrimo de los mismos. Por eso he pensado que todo se solucionaría con un repositorio. Así, la gente podría añadirlo a sus repositorios favoritos y yo podría asegurarme de que cada arquitectura recibe el binario correcto y que se satisfacen todas las dependencias. Además, actualizar los programas sería más fácil.

Mi pregunta es, ¿cómo lo hago? No se ni por donde empezar y por más que busco tutoriales en castellano que me guíen no encuentro nada que me aclare el proceso.

Por si sirve de algo, el repositorio quiero montarlo en un Debian de 64 bits actualizado a día de hoy.

juan santiago
Offline
Joined: 03/05/2015

Bueno, seguiré este hilo a ver si aprendo a montar un repo :) , pero ¿si mientras te aseguras que lo tienes empaquetado para todas las distros pones a su disposición un portable (mediante docker)?

yawin
Offline
Joined: 02/11/2016

No me parece correcto distribuir versiones portables. Causan redundancia de dependencias.
Si cada videojuego que desarrolle (que es a lo que me dedico) llevan consigo las dependencias gráficas, alguien que juegue a tres juegos mios tendrá tres veces la misma librería de gráficos.

Es lo que hago hasta ahora, pero es demasiado absurdo para darle continuidad.

juan santiago
Offline
Joined: 03/05/2015

Por eso decía hacerlo de manera transitoria, pero si es lo que ya haces :), como usuario algunas veces los portales me han facilitado la vida cuando no fui capaz de instalar algo, el cuanto a tu criterio estoy de acuerdo.

dcapeletti
Offline
Joined: 04/03/2014

Hola, ¿qué lenguaje usas?
Si usas Free pascal por ejemplo, puedes crear ejecutables usando Lazaruz que funcionarán para las plataformas que los compilas y los mismos, pueden llevar las dependencias dentro. Esto obviamente, hace que el ejecutable sea un poco mas pesado pero el programa es portable. Esto también se puede hacer para C y C++. Por ejemplo qtox, utox son binarios que están compilados con todas las dependencias dentro para cada plataforma por lo cual cualquier persona que lo descarga, le debería de funcionar sin problemas.

Sds

yawin
Offline
Joined: 02/11/2016

Uso C++, pero repito: distribuir portables redunda las dependencias y llena de bytes innecesarios los discos de las personas. Además, los repositorios hacen más cómoda la distribución.

dcapeletti
Offline
Joined: 04/03/2014

Nunca he creado un repositorio PPA, supongo que es eso lo que estás buscando. Aquí hay un sitio de ayuda http://askubuntu.com/questions/71510/how-do-i-create-a-ppa

Sds

yawin
Offline
Joined: 02/11/2016

Por lo que veo, ese tutorial explica cómo crearlo en los servidores ppa de launchpad, y lo que busco es montar el mio propio.

Aunque la segunda parte del post, que explica cómo montar .deb es muy interesante.

Rekko
Offline
Joined: 12/18/2016

Las distribuciones libres mas utilizadas actualmente son Trisquel y Parabola asi que puedes hacer 2 ejecutables que sera mas sencillo que hacer un repositorio.

yawin
Offline
Joined: 02/11/2016

Mi problema no es compilar para un sistema operativo o para otro; sino tener que distribuir ejecutables para x86 y x64, cubriendo dependencias y garantizando que se pueda actualizar, etc...

Hacer a los ejecutables y dar links es lo que vengo haciendo hasta ahora.

Rekko
Offline
Joined: 12/18/2016

Hace bastantes años que se dejaron de vender los procesadores que no soportaban x64 y los que juegan usan x64 con 2 ejecutables x64 que cubran las dependencias de Trisquel y Parabola que son las distribuciones libres mas usadas es suficiente.

jorgesumle
Offline
Joined: 06/01/2016

Puedes contactar con proyectos de software libre que utilicen C++ y pedirles ayuda... O puedes copiar lo que ellos han hecho para distribuir programas. Un ejemplo que me viene a la mente ahora es SuperTuxKart.

yawin
Offline
Joined: 02/11/2016

¡Les echaré un vistazo!

yawin
Offline
Joined: 02/11/2016

Siguiendo este tutorial para empaquetar .deb: https://www.youtube.com/watch?v=52i60TF-enw
Usa un programa llamado debuild que no está en los repositorios de Trisquel. ¿Qué alternativa puedo encontrar en los repositorios?

Majin Buu
Offline
Joined: 11/05/2016

Hola, ¿podrías darnos un enlace a tus trabajos? Estoy interesado en ellos. ¡Gracias!

yawin
Offline
Joined: 02/11/2016

Ahora mismo ando con todo patas arriba y el hecho de que hasta hace relativamente poco no programaba con la filosofía libre en mente no ayuda, pero puedes echar un vistazo a mi portfolio si te interesa:

http://miguelalbors.noip.me/?page=portfolio

Ya aviso que la mayoría requiere de software no libre para funcionar. Es una de las razones por las que, ahora que quiero hacer mejor las cosas quieor mejorar la distribución de mis cosas.

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Hola yawin.

Gracias por compartir tus trabajos.
Me surge una duda, dedicándote a programar videojuegos y con la falta de hardware compatible en GNU/Linux-libre (sobre todo gráficas), ¿cómo lo llevas?. Supongo que te será difícil realizar juegos en 3D.
Una pregunta personal, ¿ves posible realizar juegos como GTAV, Resident Evil 7, etc... para GNU/Linux en la actualidad?. Por lo que veo, los juegos actuales son realmente buenos, y parecen complejísimos, no sé si habrán motores de esta calidad en GNU.

Saludos.

yawin
Offline
Joined: 02/11/2016

A ver, por partes:

- La falta de compatibilidad con software 100% libre está ahí y es una mierda. Pero eso tampoco es un impedimento. Ejemplo: el juego Minetest es 100% libre y funciona en Trisquel.

- Hay motores muy buenos. Uno de los más conocidos (entre los que nos interesamos por el software libre) es Godot Engine (http://godotengine.org/) que soporta tanto 2D como 3D. Piensa que la api de renderizado más empleada es OpenGL que es libre.

- El problema de la industria de los videojuegos es que hacer un juego es muy caro. Menos de un año de desarrollo es inviable y sólo el sueldo de dos personas durante un año ya eleva las cifras mucho. Esto lleva a que quienes tienen dinero para hacer juegos quieran "proteger su inversión" cerrando el ćodigo y empleando motores privativos cuya eficacia está probada.

Pero, con tiempo y ganas, se puede hacer un GTAV libre sin problema. Piensa que un videojuego no es más que un programa que trata información. En vez de calcular facturas, calcula triángulos, pero eso es sólo un ejemplo particular.

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Gracias por la información yawin.

Yo nunca he realizado videojuegos, siempre me he dedicado a la programación empresarial, que supongo que será menos compleja que videojuegos, sistemas operativos, motores gráficos, etc...

Tuve un compañero en DAI que después se fue a estudiar al ESAT (www.esat.es) ha estudiar videojuegos, y el le gustaba hacer motores gráficos, y creo que se dedica a eso, ya hace años que no lo veo.

Cerrar el código en cualquier programa no es "proteger su inversión", ya que la mayoría de juegos se basan en compras parciales del mismo. Hay muchas formas de negocio ético. En el mundo empresarial, según mi experiencia, se gana dinero vendiendo el servicio de modificación y atención al cliente. Yo ahora desarrollo programas a medida dentro de una empresa en web, y el código es libre, ellos me pagan por mantenerlo y darles soporte.

Gracias.

Saludos.

yawin
Offline
Joined: 02/11/2016

Sí, sí, coincido con eso. Hablaba de "proteger su inversión" porque es lo que dicen, no porque sea verdad.

Yo iria a la Esat si no fuera porque soy pobre. Pero ya te digo que si sabes programar, sabes hacer juegos; simplemente es que aun no te has dado cuenta xD

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Lo que supongo es que ESAT sólo utiizará software privativo.

Hace muchos años, les pregunté por el HDN de desarrollo de aplicaciones (ahora ya no lo tienen), y costaba la friolera de 20000€ + viaje a Ingleterra (unos 25000€).

Eso sí, sales bien preparado xD (en el software privativo jjajaja).

Saludos.

yawin
Offline
Joined: 02/11/2016

En la Esat te enseñan a usar los motores más utilizados en la industria y a diseñar y desarrollar un motor desde 0.

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

¡Crowfunding para yawin para que vaya a ESAT a aprender a hacer motores gráficos YA!
:-D :-D ;-D

EDITO: Eso sí, ¡tendrás que venirte para Valencia! :DDDDDD

yawin
Offline
Joined: 02/11/2016

Este es el prototipo de mi motor/framework: http://miguelalbors.noip.me/gitweb/?p=La-Rosquillera-Framework.git;a=tree

Ahora mismo estoy en fase de aprendizaje; en unos años lo reescribiré desde cero para cumplir los estándares de diseño y optimización mínimos xD

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Me alegra mucho ver este tipo de cosas.

¡Ánimo!.

Por cierto, veo que usas noip.me, ¿sabes si se puede usar en routers privativos de Vodafone?. Me vendría muy bien para tener mi propio servidor.

Saludos.

yawin
Offline
Joined: 02/11/2016

Ni idea. Yo meto en la web de noip que la dirección miguelalbors.noip.me se redirecciona a la ip y ya está. Mi router redirecciona todo lo que le llega por los puertos 22, 80 y 403 a una ip privada y la configuración de apache se encarga del resto.

Lightmoon

I am a member!

Offline
Joined: 12/16/2013

Entonces, tendrás que cambiar la IP en noip.me cada vez que tu ISP te la cambie, ¿no?

yawin
Offline
Joined: 02/11/2016

Mi isp no me cambia la ip xD pero sí, si pasara habría que hacerlo.

Noip proporciona un software que lo automatiza, pero no es libre; pero programarlo no creo que fuera dificil.

Rekko
Offline
Joined: 12/18/2016

Los juegos actuales se pueden realizar en Vulkan y Opengl.