Respondiendo blogs al azar. Hoy: 2009: la instalación de software en GNU/Linux no funciona -- y un camino para arreglarla
Como no tengo cuenta en FSM y no pienso abrir una hoy, voy a responder acá, donde nadie se dé cuenta. Porque soy así de seguro. Aviso, esta respuesta está llena de prueba-por-afirmación y generalizaciones inválidas, pero así es la opinión.
Empieza con una interesante premisa:
Y sin embargo, la instalación de software en GNU/Linux no funciona... No, no es que no funciona... está terriblemente mal. ¿Porqué, y qué se puede hacer para arreglarla?
Pretendo mostrar que hay un pequeño problema con esa aseveración: la realidad. Realidades como "¿Cuál es la plataforma de entrega de software a usuarios comunes de mayo éxito en 2009, y porqué eso importa?". Pista: no es windows, y no es algo en mac.
Es el iphone, y su App Store. Y lo que el autor propone es abandonar algo que funciona muy parecido y volver a la era de las cavernas del "bajáte ésto del sitio de la aplicación", el modelo que usa windows.
Describe el procedimiento habitual de instalación. Hoy en día casi todas las distros hacen lo mismo, sea con apt, yum, pacman o lo que sea, y empieza a describir el problema.
Los usuarios necesitan ser root para instalar software; no se permiten instalaciones para un usuario.
Esto sería un problema en las viejas épocas de computadoras compartidas. Hoy en día sos root, o (en algún caso) la mamá de root. Todas las distros modernas usan sudo, así que no necesitás acceso a la cuenta root, sólo tu propia password (o ninguna password).
Así que ésto es un no-problema.
Es complicado instalar varias versiones del mismo programa. Piense en el pobre diseñador gráfico que necesita instalar varias versiones de Opera o Firefox; Los usuarios están forzados a usar el software instalado en el sistema.
¿Cómo instalo iFart 1.0 y 2.0 en un iphone? ¿Se puede? Usuarios específicos (como diseñadores gráficos) deben ser atendidos por soluciones especiales, como portable firefox. Hay una necesidad de eso? Adelante, es tal vez un día de trabajo.
El software tiene que obtenerse de los repositorios oficiales. Bueno, no tiene que obtenerse así pero un usuario promedio quiere mantenerse alejado de repositorios extraoficiales por motivos técnicos;
El software de iphone tiene que bajarse del app store. Eso no molestó a nadie (salvo desarrolladores, digo).
En algunos casos (especialmente si el usuario añade repositorios o instala paquetes directamente), el mecanismo de dependencias suele fallar y los usuarios terminan con dependenicas circulares.
No veo una dependencia circular desde 2003, pero bueno, en una de ésas existen. En ese caso: no hagas eso.
Cada programa está atado a una distribución específica, y — lo que es peor — a una versión específica de esa distribución. No es trivial instalar Openoffice 3.1 en Ubuntu 8.10. Pueden decir que se puede instalar el montón de .deb que hay en el sitio de OpenOffice. Inténtalo con tu abuela o un usuario promedio sin experiencia.
Algunas aplicaciones de iphone no funcionan sin el firmware 3.0. Solución? Actualizar el firmware. ¿Cuál es la diferencia con Linux?
No es trivial “darle” un programa a un amigo. Para el usuario final, darle un programa a un amigo debería ser tan simple como arrastrar un icono a un memory stick; en vez de eso, tenemos archivos esparcidos por todo el sistema.
Es aún mas simple que eso: permitime que te de rst2pdf para ubuntu: "Tony, install rst2pdf, it's in 'universe'". Ni siquiera tengo que darte un floppy o lo que sea que los chicos usan hoy en día.
Ah, y "¿cómo le doy a alguien una aplicación iphone?"
Entonces pasa a proponer soluciones, que pienso son peores que el status quo:
Los usuarios deberían poder instalar software sin ser root.
Los usuarios son root, o la mamá de root. Esto no es un problema.
Los usuarios deberían poder instalar diferentes versiones del mismo software con inmensa facilidad.
La única manera de hacer esto es hacer todo estático o congelar las bibliotecas del sistema.
Háganlo para versiones "portables" de aplicaciones específicas si quieren. No hagan que el sistema sea una porquería por favor.
Los usuarios deberían poder correr sus propias versiones del software o las instaladas en el sistema (si existen)
No tengo problema. ¿Por otro lado, como hacés eso en un iphone? No lo hacés. Por favor, no diverjan de lo que funciona en 2009.
Debería ser posible descargar e instalar software aunque no venga de un repositorio oficial
De nuevo, el iphone no te deja, y a nadie le importa. Si te importa no sos el usuario normal que afirmás defender.
El software debe funcionar — sin modificar — aún si es un poco viejo y corre en una distribución nueva.
Sí, quiero Quick Shot para iphones con firmware 3.0!
Estás actuando como un usuario de Linux hombre!
Debería ser posible “darle” un programa a un amigo arrastrando un icono a un memory stick.
¡Decíle el nombre de la aplicación a tu amigo de una vez!
Todo esto es cierto con OS X de Apple. Manejan la instalación de software de manera perfecta — aunque algunos programas, ultimamente, vienen con procesos de instalación horribles.
Nadie elige una mac por esto. La eligen porque es más linda, o porque les dijeron que son mejores, o lo que sea, pero ¿alguien diciendo "hey, en una mac te puedo dar Office compartiendo este dmg de 800MB!"? No sólo nadie lo hace, es ilegal!
Aparte, le das el dmg a tu amigo, y 92% de las veces, tu amigo tiene windows o Linux y no le sirve! Así que tu probabilidad de exito es apenas 8%!
Imaginate que sólo funcionara si la computadora de tu amigo fuera una Acer? Ahí tenés un 10.5%! Nadie diría que eso es bueno!
No, compartir aplicaciones así con tus amigos no es el problema.
Por favor, queridos desarrolladores de distros de linux, miren alrededor, y vean lo que funciona en 2009.
Sorprendentemente, lo que funciona es muy, muy parecido a lo que venimos disfrutando desde 1998 o algo así, así que sigamos disfrutándolo y hagámoslo mejor, en vez de intentar convertirnos en una mac, o en windows, plataformas antiguas en la era del smartphone y el netbook.
ACTUALIZACIÓN: más comentarios sobre esta historia, en reddit, lxer y OSNews.
I agree with most of your points, only thing thing I would change is having standard directories and packages for linux so that a package will work for most distros. Thats probably not gonna happen though.
Well, you can always package for LSB, I suppose :-)
I am so tired of all those articles saying "Is Linux ready for the desktop", "Linux is not ready for the Desktop" etc
Linux IS ready for the desktop but users ARE dumbass... that's the fact.
When I first started using linux 8 yrs ago, my inclination was to install software by downloading *.rpms. I quickly figured out how to manage repositories. It's a Windows mentality that installing software requires downloading a file, launching it, accepting an EULA, and clicking 'next' until the installer is finished. I can't look back and understand why I initially preferred that system because it seems so archaic, like a relic of the pre-internet age where files had to be installed from floppies. Repository-based application management, which Apple's app store is an example of, is an easier and more secure method of managing software. I predicted that Microsoft would eventually develop their own app store.
@yOp: I think the right position in "linux and the desktop" is something between "I don't give a crap" and "it's good enough for *my* desktop"
Heh, a guy at work uses Photoshop on the Mac. His version doesn't work on Mac OS 10.5 so he has to dual boot with OS 10.4. So much for the idea that everything "just works" on a Mac.
Packaging non-repo applications into a single directory is quite easy on Linux. Just link with -rpath and include the libraries needed!
I kinda agree with you..but you have to admit-the point wich he says about giving software to a friend is really wrong right now.
If I want to give a software to a friend wich has internet,yes,it's okay
But what if that friend lives in an area where there is no internet access? (please,stop thinking the world is USA and Canada)
For example,in Romania,Moldavia,Ukraine,etc. there are villages in wich there isn't even Cable TV - what can I say about Internet? Think about that too.
At this point,windows got over us-you can just go with the .exe and install it and that's that.In linux,it's more complicated - .debs that have dependencies,and those dependencies have other dependencies,etc etc,you get the idea.
Great post. I agree with you. I love using Ubuntu now and I would be miserable going back to the way I installed software on Windows. It sucked (stated in the past tense because I no longer use Windows).
@Bodo: I am not in the US, or Europe.
In fact, I have friends in Cuba, where access to FTP or HTTP is restrictd by the government.
How do they get their software? They ask for it by mail, then we send it to them in hundreds of tiny files.
However, I don't think just because some have special needs everyone should share their inconveniences.
So by all means package portable apps and mail them or send them via carrier pigeon!
One thing doesn't hurt the other *at all*!
Oh, I forgot, the cubans *obviously* don't have macs, either.
>It should be possible to download and install software even though it doesnt come from an official repository
GetDEB.net anyone?
It's really disingenuous to point to the iPhone app store as the ideal distribution model. Not only does it have well-documented flaws with respect to apps which Apple refuses to accept, but it's also very different from the Linux model which you're arguing for.
Root access *is* important. It's incredibly glib to just assume that everybody has root access because it's the common case. The fact is, though, that Linux supports this better than most OSes, because you can compile programs from source and install them to arbitrary paths. Linux distros, on the other hand, don't support this (except for Gentoo derivatives). This is a problem with current distros which can and probably should be looked at.
Installing multiple versions of a piece of software isn't just a "special solution", it's actually required for many libraries where programs require specific versions (autotools being one egregious example), and those programs are specifically designed for it. Distros *could* support this, by allowing alternate installation paths for different versions, but this would be tricky from a package manager perspective, so nobody has yet. For a nontrivial application like a web browser, it's a lot more than one day work to do it properly. :p
It is already really easy to give a program to a friend, though, since you can just give them whatever file (rpm, deb, source tarball) you installed it from in the first place. Not sure what that guy was getting at there. XD
Finally, I'm not really sure why you're arguing so strongly against becoming more "mac-like", when your whole argument revolves around the iPhone.
I was directed to your article after being directed to the original source article.
I've heard a lot of people talking about the "other guy" as being a "mac fanboy", or an "idiot".
I'm going to be honest, and I don't mean any disrespect, but I think your response misses the boat. Completely.
First of all, comparing a home computer to an iPhone doesn't have any real value. They are two completely different devices, with completely different practical application, needs, and software models.
Second, there may have been a lot of holes in his proposed solution, but he in no way said "This is how it needs to be done". He simply offered suggestions off the top of his head. A more productive response would have been to offer better alternatives to his solutions that still address the problem.
Third, is recognizing that there is a problem, which I don't believe you do. The bottom line, is that the current method of program distribution walks on a tightrope, and is very very easy to break your system if you don't grab and use exactly what is in the package manager on your system.
Fourth, the user is not root. Bottom line. Yes, there may only be a single user at a home computer, but there may be 4. If someone logged in as root wants to install OpenOffice systemwide for everyone to use, great.
If somebody's 12 year old brother then wants to install a game, also great. Excpet when it's a game that needs a different version of a library that is installed systemwide. The package manager should then put that version in the game folder... no root access needed.
That example was of course, beyond hypothetical, but I'm just saying, the user is not root.
I see your points, and where you're coming from, but I think your points were very poorly made, and backed up.
Thanks for the opportunity to leave my 2 cents.
@ Daniel...
erm.. The iphone is a portable computer.. it uses a managed, centralised repository (albeit one you pay to access) It does not support multiple versions of the same thing on your device. The system is what we're looking at, not the symantecs.
I'd like to know how you install multiple versions of anything on a mac. The dmg does everything. Whats worse, it isnt that portable, you actually need the .dmg to give to someone else.
And yes, there is a way to dl the repository, and put it on DVD and give said DVD to your friend... Then, not only do you give him the APP he wants from you.. but a whole host of MORE stuff.
And it can be trivial to install multiple versions on a linux machine, but, why would you? and honestly, this is hard to do on any system. Because, programs to not only affect their own binaries, they affect others too. That said... you can usually run older programs on newer libs.
I agree with the post, Users mustnt be root, and shouldnt JUST install things, it would create the WINDOWS ideal bot distribution system in Linux. Login, or get the root personage to login when you want to install. Sudo, but use a password.
zypper in WORKS!!!
Nuff said!
@Daniel Costalis: just to be clear: I didn't call Tony Mobily any of those things, I just think he is wrong.
I am not comparing Linux to the ophone perse, but their software distribution strategies, to see what works in 2009.
It turns out that every user *loves* the App Store. Blackberry, Palm, Nokia and Windows are going to implement the same thing.
And here we are, already proud owners of wheels, and this article suggests reinventing the sled.
@Tsue Desu
The iPhone may be considerably more feature rich than your standard phone, but the iPhone is not a portable computer.
Even if we do decide to not split hairs about it, and agree that it IS, comparing the iPhone to a desktop computer isn't a fair comparison.
A DMG is a disc image file, similar to an ISO. Installing another version of something is as simple as moving the contents of the DMG to a different location.
Having multiple versions of an application has a lot of value, specifically for somebody that would like to try a new version of a product without having to destroy their old version. An example of this would be a newer version of video editing software that may have heavy system requirements, or multiple versions of Firefox for testing web applications.
@Robert Alsina
iPhone users may in fact love the app store. If they didn't, however, they'd be SOL, because that is their ONLY option. However, we're talking about ONE device and ONE operating system, not numerous OS choices and numerous different possibilities for hardware and software configuration. It's simply comparing Apple and oranges.
@Daniel Costalis: it sure is a portable computer. It even runs OS X (kinda).
About the app store:
They love it. It's successful. Everyone is going in that direction now.
Arguing that if they didn't love it it woud suck is pointless because they love it.