Manifiesto Anti Distros
Total Page:16
File Type:pdf, Size:1020Kb
Manifiesto anti distros Diego Saravia1 Primera versión: 10 de marzo del 20052 1. Introducción La mayoría de las distros -tal como las conocemos- son al software libre como los cuadros a la pintura y los temas de 7 minutos a la música. Una forma o formato de distribución diseñado para convertir al Software Libre en producto y capitali- zarlo. Lo que ocasiona la aparición de burocracias, especialmente las comerciales, con metas innecesarias salvo para ellas mismas, y que como toda burocracia busca formas de hacerse imprescindible e impone normas que retrasan o ponen la innovación real en los márgenes del sistema. El problema de que distro usar, es lo primero que se plantea una persona u organización que se acerca al movimiento. Un problema que suele ocasionar luchas comerciales y discusiones religiosas. Un problema que crea empresas de servicios que solo son aptas para trabajar con una distro. Y es un problema artificial que solo aparece en aquellas personas que se acercan al movimiento, pero no que debiera ser un problema para el técnico competente. Los problemas de elección reales e importantes son las otras cientos de opciones a tomar, como que escritorio usar, que sistema de archivos en red, que paquete de oficina, etc, etc.. Una vez decididas, usar una distro u otra no tiene la más mínima relevancia, tanta como elegir de donde instalar los paquetes. Discutir que distro usar es entrar en el juego perverso de las empresas comerciales que asocian su distro con dinero y servicios. Debemos insistir en que la distro es lo de menos, lo que importa es que la gente conozca los conceptos y que se pueda interoperar de la mejor forma. ¿Es el trabajo de hacer distros o subdistros malo? No, por supuesto que no. Es muy útil tener repositorios (distros) particulares, específicas para cada empresa o adaptadas a los médicos o a las escuelas. Debemos facilitar este trabajo y que cualquiera puede hacerse su distro. Pero esto no tiene porque generar ramas incompatibles de software. Me parece genial que cada empresa usuaria, cada organización, cada “Linux User Group” (LUG), cada persona, tenga su distro, con su menú, su selección de paquetes y sus fondos de pantalla. Ese no es el problema. Por lo tanto debemos rediseñar el concepto de distro. 1URLs: http://www.ututo.org.ar/dsa; mailto:[email protected]. Inenco; Dpto. Física; Fac. Cs. Exactas; Uni- versidad Nacional de Salta. Hipatia y Solar, Con aportes de las comunidades de Conexion Social: http://www.migrandovenezuela.org, y Solar: http://www. solar.org.ar 224 de agosto de 2005 Versión 0.60. Se puede encontrar la última versión de éste trabajo en sus diferentes formatos y sus fuentes en: http://www.hipatia.info/docs/distros/ o en https://softwarelibre.unsa.edu.ar/dsatex/ distros.dir/. Primera versión: 10 de marzo del 2005 Si Ud. quiere contribuir con modificaciones o agregados puede enviar un correo a Diego Saravia con los mismos: mailto: [email protected]. Por razones legales y prácticas al enviar sugerencias ud. transifere el copyright de sus sugerencias a Diego Saravia. No siempre será posible registrar el origen de cada aporte. Diego Saravia se compromete a permitir que la última versión de este material este universalmente disponible bajo licencias libres. Verifique que ud. tiene derecho a enviar ese material en estas condiciones. Ante cualquier duda consulte y envie la información relevante por Correo. 1 2. Definiciones y elementos REPOSITORIOS: consistentes en uno o mas medios conteniendo paquetes. Deben contener el paquete necesario para ejecutar un sistema autónomo y todos los necesarios para ejecutar lo que se desee para el objeto del repositorio. DISTROS: mecanismos, formas, organizaciones creadas para distribuir los paquetes de los repositorios. Materializadas al menos en un medio (en CDROM, diskette o Internet) con un conjunto de paquetes conteniendo ejecutables y archivos de configuración. Probablemente este preparado para ejecutarse e instalarse. Así pues el trabajo que caracteriza a un distro es la compilación de paquetes propios, la forma de empaquetarlos y como subdivide el software en paquetes. SUBDISTROS: distros derivadas de otras, que toman los paquetes del repositorio de la distro madre, constituyendo otros repositorios y alterando algunos paquetes, a veces solamente el fondo de pantalla, otras veces scripts, menús, etc.. GENERADORES DE DISTROS: mecanismos, procedimientos, protocolos, normas (como las “Guide- lines” de “Debian”[Debian:SW, Nguyen:CCD-04]) o software para generar distros, como “Linux from Scratch”[LFS:SW] o “Gentoo”[Gentoo:SW] y hasta cierto punto “Metadistros”, o el paquete “apt-get”[Welton:C-00] source de “Debian”. PAQUETE: conjunto de software que no se puede o conviene subdividir, cada paquete tiene ejecutables, archivos de configuración, librerías provistas y requeridas, además de otras cosas, pero estos estarán identificados a los efectos de su incorporación en los menús y en los instaladores, actualizadores y retardadores DEPENDENCIAS: archivos que necesita tener un paquete pero que están en otros, para funcionar (ver dependencias de compilación). Lo interesante es que la división del software necesario para una computadora en paquetes trae el fenómeno de la dependencia. Entonces no es importante hablar solo del paquete sino de la forma en que se subdivide el software y se arma la red de dependencias. La forma de dividir los paquetes es también característica de las distros. MANEJO DE PAQUETES: sistema que permite manejar los paquetes en un menú, ejecutar y configurar lo que deba hacerse además de instalar, actualizar y retardar un paquete SISTEMA AUTÓNOMO: es un sistema distribuido en un paquete que contiene: núcleo, imagen y sof- tware adicional que se instala y puede auto-manejarse y repararse. SISTEMA QUE COMPILA: sistema que tiene los paquetes ejecutables que permiten crear paquetes eje- cutables o simplemente paquetes. Un directorio donde se agrupan las fuentes y un superrepositorio donde se colocan los paquetes producidos. SUPER-REPOSITORIO: de un sistema que compila (o de varios sincronizados) conteniendo todos los paquetes en muchas versiones. FUENTES: Url del proyecto original de cada soft, puede adicionarse parches con lo necesario para que cada paquete funcione como aquí se indica. Siempre se harán esfuerzos para que estos parches sean incorporados al proyecto original. No hay unicidad entre paquetes fuentes y paquetes ejecutables. Es decir 3 fuentes pueden producir 8 ejecutables. SOFTWARE LIMITADO A UNA DISTRO: como parte del mecanismo perverso mencionado algunos han confeccionado software con la idea de que solo funcione en una distro. Por ejemplo Yast. O el conjunto de scripts que inicia una computadora en muchas distros. O la forma de hacer un discos compactos “vivos”, o el sistema “apt-get” en Debian. Por suerte ya hay gente intentando que Yast funcione en Debian o Ututo[Ututo:SW] por ejemplo. Pero hay que entender que este software no es mas que paquetes. Artificialmente limitado, pero un paquete mas al fin. 2 Se suele asociar una distro con estos paquetes, pero esto es un error. Un error mas inducido por este modelo. 3. Discusión y propuesta ¿Cual es el problema con las distros tal como las conocemos? 1. Que favorecen la aparición de un trabajo adicional e independiente centrado en la distro y no en el software original: “el empaquetamiento”.Así, se alienta a un conjunto de desarrolladores a centrar su esfuerzo en el concepto de distro en vez de concentrarse en mejorar cada paquete. Con lo cual se desperdicia y se multiplica el trabajo sin mayor diversidad real. ¿Esta mal que empaquetar sea importante? No, es un trabajo muy importante. El problema es que se use y se enfoque en separar a la gente por distros. Es importante que se enfoque en cada paquete. Me gustaría hablar de los empaquetadores del Open Office, y no de los empaquetadores Debian o SUSe[Suse:SW]. 2. Que tras el concepto de distro se construye software que solo opera en el marco de esa distro. 3. Algunas distros comerciales, en su afan de vender CDROMs, hacen mucho mas complejo la actuali- zación entre versiones, lo que muchas veces resulta en la necesidad de construir rpm específicos por cada versión de la distribución. 4. Que imponen al usuario novato un problema innecesario como esencial: ¿que distro usar?. La solución ¿Es la solución elegir una distro y abandonar las otras? No, la solución es cambiar el modelo actual de distros. Sacar el foco de allí y concentrarse en los paquetes. Pensar la forma de disolver el concepto actual de distros y hacer mas fácil la vida a la gente. Hacer que el empaquetamiento sea un trabajo vinculado estrechamente con el desarrollo del software que empaqueta. Concentrarse en mejorar los miles de paquetes originales para que interoperen mejor entre si y se insta- len directamente desde cada uno de sus sitios. Para que tener 1000 personas trabajando en paquetes Debian, que directamente mejoren los “Makefile” de los originales, Así devuelven al proyecto lo que usan, me pa- rece mas racional y funcional al modelo de software libre. Lo mismo para las otras distros. Los “Makefile” de cada proyecto puede producir los paquetes necesarios para que se usen, tales como deb, rpm, tgz, sh o incluso paquetes completos o que separen documentación, ejecutables y desarrollo. Armar repositorios que los agrupen y discos compactos que distribuyan esos repositorios, originados en el sitio base de cada proyecto. Hacer que la diferencia entre un paquete deb y un rpm sea solo de formato, como puede ser la diferencia entre un gz y un bz2. Ambos se abren con un tar -algo3. Hacer un “particionador” general, un instalador general y un vivificador (para CDROMs vivos) general. Lo ideal es que el paquete pueda generarse e instalarse los “Makefile” de cada software original. Así cada desarrollador y los empaquetadores vinculados producirán los “Makefile” apropiados para que se generen los paquetes que se instalen apropiadamente en una computadora.