LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop
User Name
Password
Linux - Desktop This forum is for the discussion of all Linux Software used in a desktop context.

Notices

Reply
 
Search this Thread
Old 10-26-2010, 08:54 AM   #1
gnumaru
LQ Newbie
 
Registered: Dec 2009
Posts: 6

Rep: Reputation: 0
Lightbulb Using i4l to create application installers for Linux


Using i4l to create application installers for Linux

Installing applications on GNU/Linux has been a longstanding struggle.
Prior to 1993, to have a functional system, it was necessary to build everything, from the kernel, passing by the GNU tools, until the desired applications.
Today it is past, and installing software on GNU/Linux has become something even trivial. Having an internet connection, just a simple command like "apt-get install <program>" or "yum install <program>" suffices to install the desired application. If it is not in the standard distro repositories, it can probably be found in some other repository. If this is not possible, there is always the option to build it from the sources, that although refers to a past where this was the only option, now it becomes necessary only in extreme cases.

However, there is still a way to go.

Windows users are well accustomed to the paradigm NNF (next, next, finish) when it comes to managing applications. Also, are used to download at your own the application installer, which consists of a single executable file that contains everything needed to run the application.

In the GNU/Linux world, things are different.
The user do not need to open the browser and get into any website to download the installer.
The "installer" is divided into parts, ie a main package and its dependencies.
The command to install the program is the same that download's it.

These differences, among others, as the fact of the application files become scattered across the system apart, confuses users coming from Windows or Mac. This difference in paradigm is not a crucial factor in determining whether or not the use of GNU/Linux, but should not be disregarded.

Moreover, we have a classic problem installing applications on offline machines, which I discussed in the folowing site:

http://www.vivaolinux.com.br/dica/In...quinas-offline

In order to create an installation system for applications where all packets were available in a single file, and where they could install them on any offline machine, even if it had never updated its list of packages from the repository, I created a project in sourceforge called i4l (installers for linux)

https://sourceforge.net/projects/i4l/

i4l is not a new form of package manager. He is a kind of "wrapper" around apt. A package created with i4l contains all the debs needed to install a particular application in any apt based system, even on offline machines, where the list of the repositorie's packages has never been downloaded.

The code is written entirely in shell script and the user interface is made with zenity, or xmessage if zenity is not available. For now, it is compatible with the i386 versions of the following systems: Ubuntu 10.10, 10.04, 9.10, 9.04, 8.04 and Debian lenny.

You can create installers for any application available at your distro's repositories. You can also create installers to a target system different from the distro you are using to create the installer.

Now, I will give instructions on how to use the i4l to create installers.

First, download the latest version of the system preparer (i4l-system-preparer.sh), available on sourceforge

http://sourceforge.net/projects/i4l/

Then, run the file and follow the onscreen instructions.
At the end of the process, your system will be ready to create installers.

If you're kind of careful, and do not run any file you download from untrusted sites, open the file in gedit or any other text editor. This file is a bzip2 compressed archive whit a shell-script header, in charge of extracting and executing the file contents. This self-extracting compressed file, as well as installers i4l, are all generated using makeself available on the following page:

http://megastep.org/makeself/

If you only want to extract the contents of the package to see what's inside, run it in terminal with the parameters "--keep --noexec". This will create a folder in the current directory with the entire contents of the package. This also goes for the installers generated with i4l.

After running the system preparer, if you want, run i4l-set-target-system.sh to choose the target system you want to create installers to.

To create an installer, simply run the command

# I4l-installer-creator.sh <app-name>

to generate an installer, which will be placed in your home directory.
Note that <app-name> is the name of any package available in the repositories of your distro.
Examples:

# I4l-installer-creator.sh gimp
# I4l-installer-creator.sh chromium-browser
# I4l-installer-creator.sh broffice.org
# I4l-installer-creator.sh ubuntu-restricted-extras

Conclusion

When creating i4l, My goal was to develop an easy way to install software on offline machines. Furthermore, it proves to be useful for backing up applications for those who have slow connection and do not want to download a program more than once.
It is also possible to use aptoncd for backing up your system cache, but when it comes to backing up a single application, rather than a collection of them, using the i4l shows to be simpler. In fact, initially i4l was inspired by aptoncd. I thank very much to those who created aptoncd, and the creators of makeself, which use to create self-extracting packages.

The i4l is still in early stages but is already able to do what he proposes: Create application installers for GNU/Linux systems.

I Would be extremely grateful to receive suggestions and criticisms of those who use it.
I intend in future to increase i4l's scope to cover rpm based systems.

In the same project on sourceforge, I hosted several application installers for Ubuntu 10.10 and 10.04. Whoever tests them, please, give me your feedback.

Send suggestions and comments to.

gnumaru <at> users <dot> sourceforge <dot> net

Exchanging <dot> with "." and <at> "@". Standard anti-spam procedure.

I'll be happy if I can guide the development of i4l based on suggestions from users.

And please, excuse me for the bad english. I'm not an english speaker.
This text was first posted at the portuguese ubuntu forum, at:

http://ubuntuforum-br.org/index.php?topic=74203.0
 
Old 10-27-2010, 01:19 PM   #2
saurabh4lq
LQ Newbie
 
Registered: Jan 2009
Posts: 11

Rep: Reputation: 0
Thanks for i4l

Thanks a lot for thinking about this and spending time for it.
I have just downloaded i4l from sourceforge .
I am using ubuntu 9.04.

Let me try this and I will come back to you with some feedback.


NJoyCoding
Saurabh
 
Old 10-27-2010, 07:05 PM   #3
alan_ri
Senior Member
 
Registered: Dec 2007
Location: Croatia
Distribution: Debian GNU/Linux
Posts: 1,733
Blog Entries: 5

Rep: Reputation: 127Reputation: 127
This is great great great!


I was thinking and hoping for something like that to happen. Actually I was thinking of doing it myself, but never really got the time for it.


I'll be on my laptop next few days where I have SUSE, but as soon as I can I'll check it on my desktop.


This is for sure one thing that Linux was missing and I've been talking about it many times. I never wanted Debian to abandon .deb or RedHat .rpm, I, and many others for sure, wanted some kind of standardization in package managment, so if folks at Fedora for example, create some package, I could install it on my Debian the very same day and I wouldn't have to do it from source, or call Aliens for help or alike.

Now, some ideas come to my mind and I know that you said i4l is in early stages, but tell me, will it be possible to add repositories of another distro? Because that would make things really interesting!!!

Also, you said that You can also create installers to a target system different from the distro you are using to create the installer.
So, are these target systems limited in any way? We know how many different distros are out there. And is it possible to create .run script just like i4l-system-preparer is? - so that in essence you could install package with/or by use of a script created with i4l to any Linux distro out there?

OK, I'm looking forward to see i4l available for more systems, but this project in my opinion could become really really big. I hope that it is a bright sign for Linux community, because we all could benefit from it, not to speak about new Linux users and those who will become.

Keep up the great work, and if you need help, I'll be happy to help if I can!

Regards, Alan.

Last edited by alan_ri; 10-27-2010 at 07:13 PM.
 
Old 10-30-2010, 09:57 AM   #4
gnumaru
LQ Newbie
 
Registered: Dec 2009
Posts: 6

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by alan_ri View Post
This is great great great!


I was thinking and hoping for something like that to happen. Actually I was thinking of doing it myself, but never really got the time for it.


I'll be on my laptop next few days where I have SUSE, but as soon as I can I'll check it on my desktop.


This is for sure one thing that Linux was missing and I've been talking about it many times. I never wanted Debian to abandon .deb or RedHat .rpm, I, and many others for sure, wanted some kind of standardization in package managment, so if folks at Fedora for example, create some package, I could install it on my Debian the very same day and I wouldn't have to do it from source, or call Aliens for help or alike.

Now, some ideas come to my mind and I know that you said i4l is in early stages, but tell me, will it be possible to add repositories of another distro? Because that would make things really interesting!!!

Also, you said that You can also create installers to a target system different from the distro you are using to create the installer.
So, are these target systems limited in any way? We know how many different distros are out there. And is it possible to create .run script just like i4l-system-preparer is? - so that in essence you could install package with/or by use of a script created with i4l to any Linux distro out there?

OK, I'm looking forward to see i4l available for more systems, but this project in my opinion could become really really big. I hope that it is a bright sign for Linux community, because we all could benefit from it, not to speak about new Linux users and those who will become.

Keep up the great work, and if you need help, I'll be happy to help if I can!

Regards, Alan.
Alan
Thank you for believing in the future of my project. However, it is still far from becoming a "unified way" of installing applications in any GNU/Linux system.
There are several impediments that prevent this goal (to create a unified installer) to be reached easily.
For this specific purpose, my biggest bet is not i4l but application virtualization, in other words, portable applications. There are already projects for GNU/Linux to that effect. I can mention the following

http://www.portools.com/
http://portablelinuxapps.org/
http://sourceforge.net/projects/infodomestic/files/
http://statifier.sourceforge.net/
http://www.magicermine.com/

And I venture to bet that there are other projects and solutions that I do not know yet.
I myself started to develop an application virtualization project earlier this year, but had no time to continue it. Today I decided to develop i4l because it show's to be much simpler and less painful, although much less embracing.

i4l is simply a kind of framework that overlays the target distro's main package manager. For now, he is limited exclusively to distros that use apt as package manager.
To be more specific, I make a list.

Systems that can be used to generate an application installer:
> Anyone, provided they use apt as package manager
The target systems, ie those where the application will be installed:
> For now, only the 32bit version of Debian Lenny and 32bit versions of Ubuntus 10.10, 10.04, 9.10, 9.04 and 8.04.

For which application we can generate an installer?
> Only to those available in the target distro's default repositories.

Example: You use Debian Lenny on your desktop. You could use i4l to generate an installer for gimp to Ubuntu 10.10 i386. This is possible because gimp is available in the Ubuntu 10.10 repositories. If you want to generate an installer for the application XYZ, which is not available in the Ubuntu 10.10 repositories, then you can not create the installer, even if it is available at Debian Lenny's repositories.
Likewise, if you want to use i4l on your laptop to create an installer, regardless of the target distro, this is not possible, because SUSE does not use apt as package manager.

The mechanism used by i4l to create installers depends strongly on the presence of applications like apt-get and dpkg on the system used to create installers. Likewise, the script i4l-installer-creator.sh temporarily changes the settings of apt and dpkg - and even temporarily replace certain files - wich are implemented differently in distros that use rpm, such as Fedora. I even tried to "port" i4l to Fedora, but I saw that I would not have time to do it this year, and preferred to take care of other matters.

Suppose then a future where i4l can be used in any distro to generate an application installer for any other distro, independent of the application being present or not in the target distro's repository. Even if that were true today, once generated the installer, it can only be used on the target distro for which he was created. If we wanted an installer that works on every GNU/Linux systems without exception, this would be far beyond the initial goal of i4l, which is to have an easy way to install applications on offline machines, facilitate the backup of applications and reduce the impact suffered by new users GNU/Linux that came from other systems such as Windows and Mac

To solve this problem of portability, my biggest bet are portable applications, as I said earlier.

I apologize if I diminished your expectations about i4l.
But even if i4l is not the definitive solution for managing applications on GNU/Linux, it already has some use and I hope that the installers created with i4l will be widely disseminated and used.

Thanks for the support. And if you have any question or suggestion, please let me know

Regards, Lucas
 
Old 10-30-2010, 03:41 PM   #5
Valery Reznic
ELF Statifier author
 
Registered: Oct 2007
Posts: 666

Rep: Reputation: 133Reputation: 133
Quote:
Originally Posted by gnumaru View Post
Alan

For this specific purpose, my biggest bet is not i4l but application virtualization, in other words, portable applications. There are already projects for GNU/Linux to that effect. I can mention the following

http://www.portools.com/
http://portablelinuxapps.org/
http://sourceforge.net/projects/infodomestic/files/
http://statifier.sourceforge.net/
http://www.magicermine.com/
If you want to integrate i4l with statifier I'll be glad to help.

Valery.
 
  


Reply

Tags
application, apt, installer, ubuntu


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How can I create setup for my application for Linux sandy1234sa Linux - Software 4 07-01-2007 03:48 AM
LXer: Application Installers: Let's Be Open LXer Syndicated Linux News 0 06-04-2007 08:46 AM
LXer: Self-Executing Application Installers in Linux: Yay or Nay? LXer Syndicated Linux News 0 02-28-2007 08:16 PM


All times are GMT -5. The time now is 02:08 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration