Can’t we get an easier & handy software installation process in Ubuntu?

After eying the title of this post, you must be astonished -  why on earth I am saying that Ubuntu needs an ‘easier‘ and ‘handy‘ software installation process! Software Installation in Ubuntu is already a breeze. All one have to do is just heading to the Ubuntu Software Center, find/choose what software one needs and then hit the install button. Or one can download the .deb package and double click it to install the program. The installed program is ready for one in no time. Anyone have to admit that it is really pretty easy, even easier than Windows (where you have to click lots of ‘Next’ buttons during the installation process).

This whole procedure is easy if the computer is connected to the internet. What if the computer is in offline? You’re probably wondering who doesn’t have internet now a days! Actually there are a lots of them. Such as in my country Bangladesh, internet is not available to the majority of the computer users. Even though the minority gets the benefit of internet, they don’t have blazing fast speed. An average home user gets 10 kbps to 15 kbps download speed. Which is quite a low speed for downloading. And obviously majority users are using Windows. As there is a scarcity of internet and proper download speed, people download  necessary software installer from some online computers and then use that downloaded installer to several other offline computers to install the program.

Now compare the scenario with an Ubuntu installed offline PC. Probably the easiest way to install a software in an offline Ubuntu computer is using the Keryx. It can keep track of the source ppa and dependencies, which is quite awesome. But still not easy enough to handle for a newbie. How? Well… firstly, using a third party software to install programs is a bit ‘scary‘. Secondly, if any one wants to share the downloaded file with others then it will be a problem. Suppose I have an offline Ubuntu computer and I want to install some program. So I take my flash drive (which have Keryx inside it) and connect it to a computer which has the internet connection. Then I download the desired program with the Keryx, and install it in my offline computer. It is easy. But what if I want to install that same downloaded program to another offline Ubuntu PC? There are sure chances that the dependencies in the second PC will be conflicted. Because it downloads the dependencies according to the first PC, so the second PC will suffer from dependency issues. And that is a nightmare for an average computer user. So as a result, previously mentioned “download with one computer and install in several different computers” theory does not work here smoothly.

To be frankly, the average users don’t give a damn about the dependencies. They don’t want to search the web to find out which libraries (and which versions) are required to install a specific program. They need the system to be ‘just worked’. I’ve seen many users who are very much afraid to use Ubuntu as they don’t have internet connection in there home. And they don’t want to jumble themselves with the dependency hell.

My point is to find out that whether it is possible to implement a more easier and handy software installation process for the offline computers (like MacOSX may be). All the dependencies will be packed in a single package for a certain program. (Please don’t be confused with the projects like portable linux apps. I am talking about a complete software installation.) The user just need to download that file and drag-n-drop that file (like MacOSX) to some places (may be in the Application lens) or double click the file (like the .deb files) for installation. Or may be we can figure out a smarter way to accomplish this. Thus it would be much more handy for the newbie users as well as the offline users.

I am not sure if I made my point clear. In recent days, Ubuntu emphasis on the looks-n-feels for the users. I think it is also important to simplify the software installation process for the newcomers as well as for all the offline users. To my view it is one of the important bottle neck. May be it is a dumb idea. Some of you may point your finger to the security issues. But I didn’t find any simpler idea than this for helping the offline users. Any thought on this? Any other idea?

  • http://faddai.multiply.com amoeba

    Nice read, you make some strong cases in your post. Nope, it’s not dump at all. I am kinda ubuntu evangelist back at my school and when questions are asked on this particular subject, I find myself wanting. Thanks Adnan

  • http://www.flyingmolehill.com/ Ronan Jouchet

    Hi Adnan. As mentioned before, you make very valid points, especially the need for something less network-dependent. Some projects aim at addressing these points, you should check the following links:
    http://www.portablelinuxapps.org/
    http://hacktolive.org/wiki/Methods_for_Portable_Applications_on_Linux
    http://www.omgubuntu.co.uk/2010/07/portable-linux-apps-run-your-favourite.html
    http://www.omgubuntu.co.uk/2010/07/distro-agnostic-packaging-making.html

    • http://adnan.quaium.com Adnan Quaium

      Hi Ronan, you are almost right.

      These apps are totally isolated from the system. Suppose you are using portable VLC player. This portable VLC will not be integrated with the system. Which means you can not find it in the Application menu (though you can link it manually but that is a hassle for an average user), you can not right click a media file and choose to play with VLC. That’s why I am talking about actual complete installation of a program, so that the programs can be fully incorporated with the OS.

  • DavidW

    I agree. And I would like to see this idea extended to include updates. I would like to be able to download an “update pack” which would include all updated libraries and applications since Ubuntu x.y release.

  • Jamal Uddin

    You have the point . But the dependency “idea” makes it a lot harder to implement . Ubuntu changes the softwares as well as dependencies frequently and the problem is that dependencies also have other dependencies ! In Ubuntu 10.04 I am still using codeblocks 8.02 because to use codeblocks 10.05 I have to change the whole thing !

    To utilize all resources ubuntu/linux makes it difficult to do what we need .

  • Anonymous

    Commuter that are not connected to the internet does not really suffer from security problems that much, so updates are not so important.

    Maybe it could be an easier way of doing this like a DVD (one or more) to install the software from. For example from Ubuntu Software Center you click an application and it gets installed from DVD.

    I also like idea of having setup.exe type of solution and that all of the needed dependencies would be packed into one file (some archive).

  • http://mofanim.wordpress.com/ mangecoeur

    Very good point. Here’s one semi-solution: Ubuntu One online software store which would work similarly to the software centre but give you the option to “download for a different computer”. You would need a special file on your flash drive from the computers you want to download for which basically contains a list of your installed packages (or some reasonable subset – you could assume people with a given ubuntu version would have a minimum requirements). You upload that to the webpage which resolves dependancies and generates a complete install package for you to download. You could supply several “key files” and it could create a mega-packages with all the dependancies for each computer.

    Not perfect because you need you “computer key file” – which is kinda useless if you end up wanting to install on a computer you haven’t got a key for, but it could be a compromise between offline installs and keeping the advantages of re-using software libs.

    Mac obviously has the advantage that the installs are completely self contained and dependant only on having a certain version of the OS. I suppose you could loose the lib re-use advantages and supply a system to integrate portable linux apps into the menus etc.

    Actually that might be very handy for commercial software (since at the moment most third parties have horrible installers that never seem to work properly) – that way you have an option for easy software installation without always going through ubuntu.

  • http://twitter.com/kabbo_s Kabbo Sarker

    Yes, this is a great problem for off-line computer users. debs of softweres along with all the dependences. When we install it, it will check whether the system have the dependences installed and will install those which are not installed. It will also upgrade packages from the same installer if necessary. I don’t know if it is possible. I just shared my mind :)

    Oh another thing: “10 kbps to 15 kbps down­load speed”- may be it would kBps. We don’t have soooo slow speed as 10 kilo *bit* per second in Bangladesh.

    • http://adnan.quaium.com Adnan Quaium

      That was a typo. :p Thanks for noticing.

  • http://profiles.google.com/gerald.edward.butler Gerald Butler

    I think this could be solved quite well as follows. Create a program that could create an archive of “.deb” packages that have all the right version of any “.deb” packages that would be needed to get the desired version of the application or set of applications being requested. Include in the archive the packages for the desired application(s) and all their dependencies that are not on already on the particular Ubuntu release’s install CD/DVD. So, If I had Ubuntu 10.10 installed, I could say, “Give me a super-package containing all the .deb’s for Firefox 4.0b13 and LibreOffice 3.4″ and I would get an archive containing the .deb’s for those packages and all packages they depend upon that are not on the base install of 10.10. I may already have some of those dependencies installed, but, that would not matter. I would get a super-archive with all the packages necessary to bring any 10.10 system up-to-date sufficiently to run the desired software packages/versions. I would take this “installer” and run it by double-clicking it. That would add the super-archive as a local apt repository (temporarily) then invoke “apt” to install the desired packages which would automagically install the needed dependencies (if I did not already have them). Can anyone see why this wouldn’t work?

  • http://profiles.google.com/cryogenfx Heine Salte

    my thoughts exactly. I live in a well developed country, and have 40Mbit fibre at home, but i often find myself without internet access, such as when travelling to work, or at work, offshore for 2-3 weeks at a time. then i have to download a deb from a windows pc with internet access, stick it in my laptop, only to find out it needs blablabla, back rinse and repeat until i get it all right.

    these sort of mini local repos is a brilliant idea, and doesn’t install more cruft on system, as it only installs that which you don’t already have.

    might be a problem for bangladesh ansd such as it’s probalby quite a few packages downloaded that might not have been necessary, but at least it’s fairly failsafe method. assume certain packages are there, such as all default packages for that distro or such?

    please make this idea happen :)

  • Gonzalo Porcel Quero

    The kde folks implemented what you wanted over six years ago:

    http://dot.kde.org/2005/09/16/dont-install-just-copy-klik

    Unfortunately, the “klik” project seems to not be in development anymore, but it worked damn well at the time.

  • nahid anwar

    Without any doubt, that’s the major problem thats been faced by us and yah, I want some single packages for my favourite apps too.
    Thaks adnan vai.