Windows contará con sistema de paquetes similar al usado en Linux

microsoft-windows-7-boxGarret Serack, ingeniero del área Open Source en Microsoft, ha iniciado un proyecto para llevar el concepto de sistema de paquetes de Linux al sistema operativo Windows, para simplificar el uso e instalación de componentes de código abierto en este sistema.

La motivación de Serack es la dificultad existente hoy en día para instalar aplicaciones de código abierto en Windows, ya que el usuario puede perder horas y horas entre descargar, instalar y configurar componentes de código abierto, algo que en Linux es prácticamente automático y el sistema lo puede hacer en forma automática en pocos minutos (ver bonus track más abajo).

El proyecto bautizado como CoApp (Common Open Source Application Publishing Platform) y que se encuentra alojado en Launchpad.net de Canonical, es una iniciativa personal de Serack que cuenta con la bendición de Microsoft y se desarrollará como código abierto.

Aquí en Microsoft han reconocido el valor de este proyecto – y amablemente me ofrecieron trabajar en él a tiempo completo.  Estoy liderando el proyecto y Microsoft me da su 100% de apoyo.  El diseño es completamente un trabajo mio y de la comunidad de CoApp, y no tengo que pasar por la aprobación de nadie al interior de la compañía.  Esto hace de mi trabajo, un trabajo soñado: Consigo trabajar en un proyecto que me apasiona, lo hago de código abierto, y lo dirijo hacia donde tenga sentido.

CoApp resolverá varios problemas en la plataforma Windows respecto a instalación de aplicaciones de código abierto, dotándolo de un verdadero sistema de componentes compartidos, los que pueden ser descargados de repositorios oficiales en donde las versiones estén coordinadas:

Casi todo el tiempo, si alguien publica estos binarios (versiones compiladas), integran además sus copias de bibliotecas compartidas con la aplicación.  El problema es que no hay un versionamiento común, o realmente, bibliotecas compartidas que se compartan efectivamente en Windows.  Si tu aplicación y mi aplicación comparten la misma biblioteca, podrían (y usualmente lo hacen) distribuirse con versiones diferentes de una misma biblioteca.

El formato de los paquetes será el mismo utilizado hoy por los instaladores (MSI), y se proveerá tanto de fuentes oficiales de instalación como de una estructura de directorios común en donde estas aplicaciones serán instaladas.

Bonus Track: Instaladores en Windows y sistemas de paquetes en Linux

linuxLos sistemas de instalación actuales en Linux y Windows tienen un enfoque bastante distinto.  En Windows normalmente la aplicación es autocontenida y posee todo lo que necesita para funcionar, en cambio en Linux y en general en las aplicaciones de código abierto se evita reescribir la rueda y una aplicación está dividida en muchas partes pequeñas que se desarrollan en forma independiente, compartiendo muchos componentes entre ellas.

Un instalador para una aplicación en Windows puede ser bastante grande, ya que además de incluir la aplicación a ser instalada, debe incluir todas las bibliotecas que necesita esa aplicación para funcionar, lo que en algunos casos hace inevitable el uso de CD’s para contener sólo una aplicación.  En el caso de Linux, sólo se descarga e instala en el sistema lo que no se había instalado previamente: Por ejemplo, si una aplicación ya instaló una biblioteca de criptografía, la siguiente aplicación no necesita volverla a instalar.

En Windows, lo más cercano al enfoque de Linux podría ser la relación entre los juegos y DirectX, en donde Microsoft desarrolla DirectX mientras que terceros desarrollan los juegos: Primero se instala DirectX y luego los juegos pueden usar el DirectX que ya se encuentra instalado en el sistema.  Lamentablemente o afortunadamente depende del punto de vista de cada uno, no es mucho más lo que se comparte entre aplicaciones de Windows.

Desde el punto de vista positivo en las instalaciones de Windows, se asegura de que el instalador tiene todo lo que se necesita para que la aplicación funcione.  Desde el punto de vista negativo, cada aplicación usa su propia versión de cada componente, existen múltiples copias y no hay una forma unificada en que se pueda actualizar el sistema y las aplicaciones al mismo tiempo, por ejemplo para corregir bugs o problemas de seguridad.  Por ejemplo si una aplicación contiene la funcionalidad para decodificar mp3 y contiene una falla, cuando aparece la corrección se debe descargar e instalar la aplicación completa nuevamente.

En el caso de Linux también se tiene un punto de vista positivo y otro negativo:  Por el lado positivo, una aplicación es sólo un componente del sistema y puede ser instalada y actualizada en forma sencilla e independiente.  El instalador sólo tiene lo necesario y si la aplicación necesita otro componente para funcionar, se usa el que ya está instalado o bien se descarga automáticamente de Internet. A veces una actualización puede significar inmediatamente la mejora de varias aplicaciones, ya que los componentes se comparten. Desde el punto de vista negativo, instalar estas aplicaciones sin acceso a Internet puede resultar una odisea.

Paquetes

Para simplificar la instalación de estas aplicaciones, en Linux se utiliza un sistema de paquetes, en donde cada componente está constituido por uno o más paquetes.  Al instalar una paquete, el sistema determina qué más necesita, lo descarga de Internet, lo instala y configura en forma completamente automática.  En Windows, que no cuenta con un sistema de paquetes, instalar estas aplicaciones puede ser un infierno, porque el usuario debe instalar cada componente en forma manual y configurarlos para que conversen entre ellos.

Por ejemplo, si en Linux queremos tener un servidor web con soporte de PHP y base de datos, con una corta linea de comandos (o pocos clicks) el sistema instala todo lo necesario en forma automática y queda listo en pocos minutos o segundos dependiendo de la calidad de la conexión a Internet.  En Windows, instalar lo mismo puede llevar horas, ya que el usuario se debe encargar de todo, desde buscar la aplicación en Internet, hasta configurarlas para que se integren.  Si a esto agregamos que no hay una coordinación de versiones, es muy probable que en algunos casos no encuentre versiones que sean compatibles ente ellas.

Con COAPP en Windows, esta dificultad quedará en el pasado, porque instalar aplicaciones de código abierto en Windows llegará a ser tan simple como es hoy en Linux.

Links:
- What’s this ‘CoApp’ all about? (blog de Garret Serack vía FayerWayer Brasil)
- Microsoft aims to bring apt/rpm like tools to Windows (OS News)

Acerca del Autor
Franco Catrin Ingeniero Informático de profesión y músico de afición, no es poco el código que ha escrito con metal progresivo de inspiración. Se apasiona leyendo, escribiendo y también discutiendo. Para él, aprender es un desafío diario así como también enseñar, aunque sea a través de un Bonus Track.

Compartir Compartir
Publicado por Franco Catrin el 9 de April 2010 en la categoría Destacados, Software con los tags , , . Tiene 91 comentarios.

91 Comentarios

Windows contará con sistema de paquetes similar al usado en Linux

Deja tu Comentario ↓
Keichi Minamoto

DesaprobarAprobar2Keichi Minamoto dijo el 10-4-2010 a las 13:55:

61

JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA JA

Primero el XTerminal, luego el GRUB (sorry, gestor de booteo). Ahora los paquetes?
Pronto WinLinux… en un PC cerca de su casa (si es que no en la tuya).

UNICS… llegó para quedarse.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 15:42:

62

@Pelao
muy malo el ejemplo de directx… en windows lo mas parecido a los paquetes son las DLLs… pero el problema de estas ultimas es que son pesimamente administradas por el SO

El ejemplo de las DLL es malo: Las DLL no siempre son compartidas, justamente por lo que cuesta asegurar que una aplicación funcione bien con las DLL que ya están instaladas (alguien dijo DLL hell?). Por eso preferí el ejemplo de DirectX en donde si se instala y comparte en una forma similar a las bibliotecas de Linux.

http://es.wikipedia.org/wiki/DLL_Hell

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 15:52:

63

@CHILEBIT
pues no significa que en las proximas versiones de windows existan repositorios de adobe. ati o nvidia. en windows update

Por el momento es sólo para aplicaciones de código abierto, pero no sería extraño que otras aplicaciones les interese usar el mismo mecanismo, por ejemplo así no tendrían que preocuparse de escribir o mantener sus propios sistemas de actualización.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:10:

64

@setokaiba

Creo que el mejor de los Administradores de paquetes en linux, hoy por hoy, es pacman de Archlinux, el mismo busca el paquete y dependencias, si éstas ya están instaladas, entonces perfecto si no entonces el mismo las busca y las instala, la verdad es una maravilla y por eso uso esa distro

Y cual sería la diferencia con lo que ya hace Fedora, RedHat, CentOs, Debian, Ubuntu, OpenSUSE, etc? con apt, zipper y yum?

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:13:

65

@Nico1920
Nada más maravilloso que los gestores de paquetes, pero me parecen un poco incompatibles técnicamente. ¿Como interactuarán componentes privativos con componentes libress instalados a través de .exe o a través del gestor de paquetes respectivamente? ¿Como se manejarán dependencias, requsitos, bibliotecas, etc?

No veo la incompatibilidad técnica. Si bien CoApp es solo para aplicaciones de código abierto, perfectamente podrian tener repositorios de software restringido, tal como hoy lo hacen en Linux.

Por otro lado, estas interacciones podrían tener problemas de licencias. Muchas licencias de software de código abierto permiten interacción con software cerrado sin problemas (BSD, MIT), pero en otros casos es más complejo (GPL con Copyleft) en tanto el software que utilice partes del software con copyleft debe ser distribuido a su vez como copylef

Las restricciones de distribución no van a cambiar si descargas el programa a mano o lo baja un sistema automático.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:22:

66

@guindows

Uso Lenny estable, para arm, y creeme de vez en cuando sigo teniendo problemas tontos para instalar algunos programas, pero lejos lo peor es cuando el sistema me obliga a instalar 50 o 60 megas en “dependencias” para un programa de 300 kilos, como por ejemplo la sarta de software para instalar el convert de image magick. Si esta bibliotecas de X.org me obliga a instalar cuando yo no tengo x en mi maquinita arm!!!. Al final de suerte encontre un binario estatico por ahi con todo lo necesario y me ahorre 50 megas en cosas que jamas iba a utilizar.

Pero ese no es un problema del sistema de paquetes, es un problema del personaje que hizo el paquete. Problema que perfectamente podrías reportar.

Sin usar un sistema basado en dependencias, la mayoría de los usuarios no bajaría 300k sino que tendría que bajar los 50 megas completitos aunque ya tuviera las bibliotecas instaladas, ya que sin esas bibliotecas, ese programa no funcionaría como fue compilado originalmente.

Lo que hiciste al final fue bajar otro paquete en donde estaban planeadas las dependencias de otra forma, generalmente recortando funcionalidad de la aplicación, pero como dije al principio, definir las dependencias no es un problema que resuelve el sistema de paquetes, sino el desarrollador del paquete.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:27:

67

@Hector Macias+Ayala

¿Instalar aplicaciones puede ser un infierno en windows? Pues solo que tengas retraso mental para no poder instalar algo en windows.

Lee bien el artículo. No se refiere a aplicaciones como uTorrent o MS MSN (o Live), sino que a las aplicaciones del ecosistema de código abierto que a estas alturas es bastante grande.

¿Los malditos repositorios no instalan también un montón de mierda que no voy a necesitar?

No, porque los repositorios los podría proveer Microsoft, y así se puede asegurar de que no se abusen. Hoy en día no tienes nada de eso para aplicaciones de terceros. Si descargas aplicaciones en Windows te pueden meter cualquier backdoor, adware o spyware, es justamente uno de los grandes problemas de instalar aplicaciones de internet para Windows hoy en día.

Bueno si no pueden con algo tan simple no es nuestra culpa, orgasmeados linuxeros de caca.

Trata de instalara algo similar a lo que incluye Linux en Windows y después conversamos.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:31:

68

@Hector Macias+Ayala

¿Ademas quien va a diseñar paquetes para el software que tengo instalado? es decir, ¿Como saben que es lo que ya tengo instalado para estructurar un paquete con actualizaciones para ese software? y sin meterme otras pendejadas que no quiero ni necesito.

Los paquetes los podría hacer cualquiera, es un proceso abierto (y público) así como está planteado.
La estructuración de los paquetes se define mediante coordinación, piensa que en distribuciones como Debian se coordina el versionamiento y estructura de más de 15.000 paquetes. Hoy en día los paquetes construibles para Windows son una pequeña fracción.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:36:

69

@guindows

Ademas que en tu ejemplo olvidas que de antemano debes saber el nombre del paquete, y eso no es trivial muchas veces asi que tienes que recurrir a un apt-cache search etc etc.

Para eso existen aplicaciones como el Centro de Software de Ubuntu. Perfectamente podrían hacer lo mismo en Windows.

También existen mecanismos como Apturl, en donde un sitio web publica una link que gatilla al sistema de instalación de la distribución para que se instale el paquete desde los repositorios, ni siquiera necesitas alojar el paquete en el sitio web.

Por ejemplo un usuario de Ubuntu puede instalar Cairo Clock simplemente haciendo click sobre ese enlace.

Franco Catrin

Franco Catrin dijo el 10-4-2010 a las 16:39:

70

@guindows
Y si el bendito paquete (como algunas veces pasa) tiene ganas de causar problemas por incompatiblidad con alguna biblioteca (por ahi tengo un software muy importante para mi en linux que la unica forma de utilizarlo es teniendo un sistema chrooteado por que no le gusta la glibc que yo uso) entonces ahi si que comenzo la perdida de tiempo y la lectura y lectura de kilos de informacion para saber que hacer…

Ese es un problema de quien hizo el paquete, no del sistema de paquetes. En distribuciones bien coordinadas no encuentras ese tipo de problemas.

Recuerdo que hace muchos años, cuando no existía Fedora y RedHat solo tenía RPM, sin yum, era un problema bastante común.

heavymetalmixer

DesaprobarAprobar0heavymetalmixer dijo el 10-4-2010 a las 17:58:

71

Hay muchas aplicaciones libres que me gustaria tener en Windows pero que por culpa de que solo esta el codigo no puedo, pero con esto si que voy a empezar a experimentar con apliaciones de Linux en “Tintows”.

alan

DesaprobarAprobar0alan dijo el 10-4-2010 a las 20:08:

72

Interesante ojala que algun dias se animen ellos portar Office 2010 a linux,como demas productos de Microsoft,eso seria un gran paso por que no ?¿
Creo que Microsoft lo hace con MacOS X por que no para linux
ya basta de peleas,mas programas multiplataforma

Hendrix

DesaprobarAprobar0Hendrix dijo el 10-4-2010 a las 21:50:

73

Chuta , pare que la comprensión lectora de algunos es paupérrima acá, pobre franco tener que contestar a tanta gente que no lee bien el articulo.

Sencillisimo!

DesaprobarAprobar0Sencillisimo! dijo el 10-4-2010 a las 22:28:

74

+100 para Franco Catrin por responder los comentarios como corresponde, para comprender bien esta noticia es necesario tener mínimos conocimientos de Software Libre y acotarse a la NOTICIA en si, no a quejarse de tal o cual paquete de tantos MB, Ojo que en Mac OS el sistema esta diseñado y restringido a cierta manera de trabajar, es “normal” que funcione bien tal como lo haría Ubuntu con almacenes “Oficiales”, ahora una distro Linux y su sistema de paquetes es bastante resistente a todo: paquetes mal hechos, ineficientes, de pruebas y demás, que son problemas de quienes “empaquetan” NO de los sistemas de paquetes, que de por si trabajan muy bien y abiertos a poder utilizar software de toda procedencia e incluso desarrollos en curso (versiones alpha, betas y demás) ¿donde más obtienes semejante flexibilidad?

stargeizer

DesaprobarAprobar1stargeizer dijo el 10-4-2010 a las 23:01:

75

En realidad lo veo como una comodidad para los programadores que necesitan/quieren portar software de Linux a Windows. Para el usuario final promedio de windows, usualmente el sistema de paquetes no es mas que una mala broma. (Es dificil comparar el modelo “Inserte un CD -> siguiente -> siguiente -> siguiente -> Finalizar -> A disfrutar” sin tocar el teclado, comparandolo con un sistema de paquetes que ocasionalmente te forzará a tomar decisiones…).

Pero como leo en el blog del impulsor de la idea, el tema es portar el sistema de paquetería de linux a windows para poder facilitar el trabajo de porteo de aplicaciones linux a windows, sin tener que buscar a mano cada paquete y resolver dependencias a mano, que es lo que usualmente hacen los programadores cuando se porta un paquete a windows (piensen en el GIMP, por ejemplo, que tiene varias dependencias y cada version cambia las versiones de las dependencias.). El usuario final simplemente instala un archivo MSI, siguiente, siguiente, instalar ahora, finalizar, disfrutar.

Al parecer la idea es simplemente facilitarles la vida a los programadores que portan código de linux a windows. No es malo para los programadores y probablemente sea transparente para los usuarios.

BionicTenshi96

DesaprobarAprobar0BionicTenshi96 dijo el 10-4-2010 a las 23:49:

76

Pero no les va a funcionar por que la razón por la que en Linux se pueden usar paquetes es por que Linux es modular y los paquetes y librerias son abiertos, no asi en Windows donde el código de las librerias que usa Windows están cerradas…

Exelius

DesaprobarAprobar-5Exelius dijo el 11-4-2010 a las 00:27:

77

Es risible ver como opinan muchos sin tener la menor idea de desarrollo ni de hacia adonde apunta la plataforma windows, solo linuxfanboys reclamando por nada.
El problema de los instaladores, microsoft lo viene revisando desde antes de surgir .net, y precisamente la respuesta a esta problemática la presenta el citado framework. Microsoft desde 2005 aprox viene con la determinación de mudar la plataforma windows completamente .net y así evitar los problemas de inestabilidad del SO que genera la existencia de aplicaciones de terceros con acceso nativo, que salía del control del SO. La idea es hacer menos complejo el desarrollo de terceros, y facilitar la distribución de aplicaciones, en un entorno controlado y seguro. En teoría Vista sería la transición entre plataformas, y Win7 trabajaría completamente en .net, pero los problemas que tuvo Vista con el público llevaron a aplazar esta implementación(aunque en el caso de Windows mobile, si va a ser así)
Por consiguiente el asunto no es nada nuevo, y no es una simple copia del sistema usado en linux.

Repositorios en Windows? - Galego

DesaprobarAprobar0Repositorios en Windows? - Galego dijo el 11-4-2010 a las 10:20:

78

[...] FareWayer Descargar en PDFClic aquí para [...]

Andrés

DesaprobarAprobar0Andrés dijo el 11-4-2010 a las 12:39:

80

Al fin y al cabo, una buena idea.

El sistema de repositorios es muy cómodo y eficiente.

Nadie niega que a veces hay conflictos con dependencias estilo

“se ha retenido el siguiente paquete”

Pero en mi caso la solución siempre ha sido simple.

Muchas veces actualizan un paquete pero no su dependencia, y queda retenido por un tiempo, el sistema se corrige solo a medida que se va actualizando.

En otros casos, me ha pasado que queda la grande, unos 5 paquetes retenidos, paquetes rotos, y demás etcéteras. Pero la solución nunca ha sido un dolor de cabeza. Casi siempre es abrir Synaptic, Marcar todas las actualizaciones, aplicar, o bien, filtros, paquetes rotos, reinstalar.

H

DesaprobarAprobar1H dijo el 11-4-2010 a las 13:49:

81

se embaló Franco Catrin

Franco Catrin

Franco Catrin dijo el 11-4-2010 a las 15:33:

82

@BionicTenshi96

Pero no les va a funcionar por que la razón por la que en Linux se pueden usar paquetes es por que Linux es modular y los paquetes y librerias son abiertos, no asi en Windows donde el código de las librerias que usa Windows están cerradas…

Nuevamente… esto se está haciendo para paquetes de código abierto en Windows. cOapp O = Open.

Franco Catrin

Franco Catrin dijo el 11-4-2010 a las 15:38:

83

@Exelius

evitar los problemas de inestabilidad del SO que genera la existencia de aplicaciones de terceros con acceso nativo, que salía del control del SO.

Ningun sistema operativo moderno, incluyendo Windows desde NT, permite acceso nativo. Todo el acceso está supervisado por el sistema operativo a través de mecanismos provistos por el hardware.

Plataformas “managed” como .NET y Java apuntan a otro tipo de problemas : gestión de memoria, seguridad de las aplicaciones (sin comprometer al sistema operativo), etc.

Lectura recomendada:
http://en.wikipedia.org/wiki/Protected_mode

Maya Lab » Blog Archive » Microsoft podría incluir gestión de paquetes estilo APT/RPM en Windows

DesaprobarAprobar0Maya Lab » Blog Archive » Microsoft podría incluir gestión de paquetes estilo APT/RPM en Windows dijo el 11-4-2010 a las 19:00:

84

[...] FayerWayer y Genbeta Más información: Garret Serrack – OS News Sitio oficial: CoApp Imagen: Flickr – [...]

pac-mac

DesaprobarAprobar1pac-mac dijo el 11-4-2010 a las 19:32:

85

windows es una mierda

Windows contará con sistema de paquetes similar al usado en GNU/Linux. « Comunidad Virtual Software Libre del Tecnológico de Orizaba.

DesaprobarAprobar0Windows contará con sistema de paquetes similar al usado en GNU/Linux. « Comunidad Virtual Software Libre del Tecnológico de Orizaba. dijo el 12-4-2010 a las 02:12:

86

[...] Completo|Fayerwayer.com Esta entrada fue escrita por linuxitomex, publicada en Abril 12, 2010 a las 12:07 am, archivada [...]

Gabriel

DesaprobarAprobar0Gabriel dijo el 12-4-2010 a las 17:20:

87

Muy interesante, con tal que luego los amigos de Redmond no patenten el concepto de COAPP
(como patentaron el sudo que hace mas de 1 decada lo tenemos en *NIX)
me parece un cambio positivo

Hugo

DesaprobarAprobar0Hugo dijo el 12-4-2010 a las 19:00:

88

Windows no deberia existir :) .

FABIAN

DesaprobarAprobar0FABIAN dijo el 13-4-2010 a las 01:27:

89

Al Parecer se repite la historia, M$ le copia cada vez más a LINUX

Deja tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Por favor, complete los campos obligatorios

Previsualizar comentario?