I wanna write such this article since I know the concept of dynamic library in Linux as a contrary of static library in Windows. Why I wanna? Because this difference made Linux disliked by most users in the world. Hey, I want you to use Linux as me too. I don’t have interest to explain technical-style what is library concept, but I only need people understand. Surely, this article contains purely my opinion. Concepts of new installation system in Linux.
Windows Application Installation
- You take one EXE.
- Double click it.
- Installed on system.
- Although happen redundancy (duplicating install) some parts of another applications.
- But you don’t care enough because your HDD is in 100++ GB or even TB.
- Freedom along with users to install.
Linux Application Installation
- Too many ways.
- Too many options.
- Installed on system.
- No redundancy but your head could become sick.
- Too many another things should be installed along even just wanna install Marble Globe Application.
In Linux, we can make an example. Simply take Marble. Marble is an application focused for education (good aim, Dude) and it is a part of KDE Education Package where it was focused on Geographical teaching. Now, we can make a scenario:
- I wanna install Marble.
- I select it from Synaptic and apply.
- Wow, it looks like many another applications following Marble to be installed. Time felt so long for install (read: download).
- Marble has installed successfully.
Advantage: if you install another application from KDE Education Package such as Kgeography or Kalzium or Kturtle, you don’t need to repeat what anything together with Marble has downloaded. As short I know, this is named dynamic linked library style.
Disadvantage: usually users don’t need another. User often just need 1. Okay if user has MB/s connection at home plus Synaptic plus enough fast server. But how if the user belongs to poor country where is no fast connection? So user should download one by one Marble and another applications along it (Linux advance usually call them dependencies)? User should go to one page, then follow instruction “this program needs program C” then follow again “program C needs program D” then follow again “program D needs program E” and next until infinite? No. It is unsmart installation system.
Comparison (for clearing):
- In Windows, imagine, imagine if you want IDM application, you will also install 100 another applications (dependencies) have to be installed in one time. But, you enough download 1 EXE contains 101 things.
- In Linux, imagine, imagine if you want Marble application, you will also install only 50 another applications (dependencies) have to be installed in one time. But, you should download them 51 things separately. They are not packaged in one compact installer.
- I ask you: which is easier? Which is simpler?
Problem: What I typed in disadvantage paragraph is the origin installation system of Linux. Users often love Windows ways. Although it will eats many spaces, okay. Please let user gets all in one packet. It is compact. It will ease user.
Maybe Windows style of installation is better. Remember, user should go to a web to download Marble along all dependencies (too many programs to be downloaded) this way: download one program, next “this program needs program A”, next “this program needs program B”, next “this program needs program C”, next until crazy. Look at simplicity of windows:
- Install IDM? Accept EULA.
- Bla? Next.
- You can use IDM directly.
Enough with one single download. You should download the single installer only. Then the next-next-next system only happen after the program download finished. So, there is no headache. It is should no too many next words in the web, just package them only in single installer, and let the installer verboses in our machine. Don’t let user becomes sick on downloading what he doesn’t know (majority of users don’t know programming).
So, how if the Linux application installation system changed to Windows-like? Or, how if there is a new distro apply this installation system absolutely? Surely complete with a repository contains packaged applications? So you just download a file only from repo to install an application that before you should download too many different items? It is simple for user, Dude. I feel many users from Windows will agree with me :)
Solution number 2?
I know when I said this to an advance man in Indonesia, he told that such Linux installation system have been standardized. I think somebody else will give me same reasoning at future. I feel Linux experts don’t want to change this unsmart installation system to one simply and absolutely simplify users. They refuse to change. So I type this for goaling my idea :)
How if we keep the origin system with adding this new system? How if there is a new distro provides you old installation system (you will find too many dependencies to be downloaded) and the new one (enough with one installer). You can choose between the old if you want and the new one if you prefer with :)
Solution number 3?
Hah? There is solution yet? Oh, alhamdulillah. All praises to Allah. I life with Linux users for some times. I learn from them that solution is always exist. Now hear.
How if we reject my idea but add ‘Give a Friend‘ feature to Synaptic? So, what you installed yesterday in your Ubuntu, you can give the installer (the DEB packages) in one folder to you friend? The system is simply creates one folder in your USB Flash Disk and copy what you program + all dependencies needed to the folder. So your friend just do sudo dpkg -i *.deb. At least, he doesn’t need to download anything. It is smart enough or stupid? You can give a value :)
Sure, this solution generates some problems again.
- The Ubuntu version must be same → okay.
- How if he absolutely doesn’t know Terminal? → go to solution number 4.
- How if my Synaptic didn’t save yesterday downloaded program? → avoiding better than curing. Set this at Preferences > Files TAB > check at first radio button.
- So on.
Solution number 4?
You should not force anyone to learn Terminal. Will you force me to learn abacus if there is a calculator in my table? I am a terminal user too but please don’t do that to anyone just join. So, we can modify the Synaptic:
How if we reject but inject that system at Synaptic? So when you “Give a Friend”, Synaptic will create one single installer for you? It is simpler than change whole Linux sistem, right? Or this is silly? You can also give a value :)
We can imagine this system like this:
- Open Synaptic.
- Check what program you want to give to your friend. Say: Testdisk.
- Click on Give a Friend button beside Apply button.
- Choose your folder to save.
- Wait for seconds. Synaptic is making single installer. Successfully created at /home/you.
- You can copy it to your friend’s machine. And if you want, you can give it to 10.000 friends.
- Install it. Simple.
My solution number 3 and 4 are orders for you developers who wanna keep your security awareness or something called ideology. It is your right, Dude :) Nobody forces you.
I hope somebody feels unsatisfied with Canonical or Red Hat or any major Linux makers, will take this ideas for creating new Linux distro. A “waiting for so long” distro which is dreamed by many users. Dream which is never be attended by most Linux developers.
I believe that someday such this distro will be created. Portability, simplicity of installation system, are important! More important than security. Users need your program, not your security awareness, nor your dependencies. They always think simply. They always do 1 thinking at 1 time. Your users are single tasking humans, not multitasking machines. So I imagine someday I will take only one installer from the net and install it in 1000 Linux mahines without any downloading again :)
Who will realize this idea someday? I don’t know. Temporaryly, I have satisfied with nowaday Linux system. Ahamdulillah.
You know, there is a hope. Apparently, some users be creative by doing something like I imagine about. Look at Indonesia Ubuntu Forum. Look at portablelinuxapps.com. But we are waiting for a new distro :) If Ubuntu have this system, I will be glad. If Fedora, I also be glad. If Blankon, whoa, glad also :) Another, still glad. Let the seed’s growing. And you can see these links:
- Offline Installer for Ubuntu 12.04.
- Cara Singkat Membuat Offline Installer Ubuntu 12.04.
If you don’t understand Indonesian, you can use Google Translate. You know, what the seed I mean? It is Keryx. An application for downloading app completely with dependencies. If you have not know yet, simply think Synaptic in Windows for downloading applications only and save them to a folder. Aha, that is Keryx. This application runs in Windows (innovative) for helping Linux users in slow connection country. So, in internet cafe (in Indonesia, internet cafes serve majority users who don’t have internet connection; and most internet cafes in Indonesia use Windows) we can run Keryx and download all applications via Keryx, save to flash disk, and install them at home. This app simplify installation in Linux. We can make .run file contains all apps downloaded by Keryx. And this single .run file can act like .exe in Windows. Wowowo, future! I have not use Keryx until now but I feel it is bright way for future Linux installation system.
I admit that Keryx has not meet all my imagination criterias. But this app seems will inspire many new developers to build new comfortable installation system. It is okay. And hope is still flying :) Thanks for reading!