Finally, I’ve Found Offline Package Management System I Need

Bismillahirrahmanirrahim.

For many years, I was waiting for offline package management system in Linux. I got it at 2013 and I implemented it at end of 2014. That offline management system is alldeb. Alldeb is a new package management system created by Nifa Dwi Kurniawan from Indonesia Ubuntu Forum to install a software in Ubuntu in single offline installer way. Alldeb made it possible to install one software by just one file. All dependencies included inside a single .alldeb file. Just the same way as EXE (Windows), DMG (Mac OS X), and APK (Android). And I packaged many alldeb packages as my implementation at end of 2014 in http://bengkelubuntu.org. Now by using alldeb and getting packages from BengkelUbuntu, you get your software in Ubuntu and you can save the installer and you can install that single package on another Ubuntu in completely offline way. So, for example, if you have a lab with 100 computers, you need only to download a single alldeb file for KDE to install KDE for all 100 computers. You don’t need to spend your lab bandwidth by downloading KDE in every single computer. Plus, the main function of alldeb system is to backup any of your chosen installed software completely with its dependencies into just single file. Every software you choose repackaged into single file. You choose what software you want to backup, not as bloated as APTOnCD does. So basically, alldeb does “magic” to repackage any single installed software with its dependencies into one single package with the extension .alldeb. Alldeb solution helps many users in Indonesia and it was my dream. Alldeb system has already included officially in some Indonesia Linux distributions such as GrombyangOS, AsrilOS, and Manux. I hope alldeb will come into Ubuntu official image soon or at least into another major Debian-based distro.

The alldeb_user interface installing wine.alldeb package

PS: this is the first post after 2 years in this blog.

New Package Management System (For You AppCenter Developers)

Bismillahirrahmanirrahim.

Maybe people don’t understand what I have written in many forums even in Launchpad about single offline installer. I will explain briefly now by this post. See at this pictures:

mockup-appcenter-scheme-normal

This scheme shows us the normal way our distro doing installation. Retrieve packages from the internet then install them then the installer saved on same directory (/var/cache/apt/archives).

What I Proposed to You I

mockup-appcenter-scheme-1

This scheme, at the main point is, the package manager (your AppCenter) must be able to save the installer (DEB/RPM) into specific folder based on the name of program. Why? You can see the “magical app” created by Indonesian guy Fajran Iman Rusadi: http://repo.ugm.ac.id/apt-web. This web app (Github: https://github.com/fajran/apt-web), has helped thousands of Indonesian Ubuntu users because it can give you the complete links into an application. Simply, enter an aplication name, the links appear, download all links into a folder, and install all packages on that folder. Try that first so you can understand closely this proposal. My proposal just a desktop implementation (similiar but not same) for APT-WEB. Why, once again, why? Because offline system has so many benefits even more than just normal installation system above. If we mix all downloaded packages, we don’t know which is the dependencies for one app. Different if the downloaded packages can be saved on separate folders. Offline installation system allows you to give the folder to another user so you can help your friends and neighbours.

Look at this screenshot. I have some folders contain apps I like. I download them by APT-WEB.

saved-packages-specific-folders

How to use the folder? So easy. We Indonesians, because of APT-WEB, we habitually use sudo dpkg -i *.deb on the directory. So, if your AppCenter has implemented this Proposed Installation System I, your users just do sudo dpkg -i *.deb again for installaing what he removed yesterday. No need to download it again.

To be clear: you can just add this feature to your AppCenter/package manager as an option. You don’t need to change the normal system to Proposed System I.

What I Proposed to You II

mockup-appcenter-scheme-2

Actually this is the one reason why this blog named DREAM. Yes because this is my dream since first time using Mandriva some years ago. I dreamed someday I can just install an app by one installer only. Not more than one. How? By combining the Normal System and Proposed System I. You don’t need to change radically the repo system. No, don’t do it. But change your AppCenter/package manager to do these:

  1. do the Normal System (OK)
  2. do the Proposed System I (not yet)
  3. accept what user select from installed program (not yet)
  4. ZIP down the folder which is the name selected by user (not yet)
  5. copy the ZIP into another folder (not yet)

See? Just a modification to Normal System. The second option is these:

  1. do the Normal System (OK)
  2. don’t do the Proposed System I (OK)
  3. accept what user select from installed program (not yet)
  4. do filtering/selecting from mixed and crazy-crowded folder (/var/cache/apt/archives/) which are the correct dependencies for the selected program (not yet)
  5. copy the filtered packages into one folder (not yet)
  6. ZIP the folder (not yet)

The most headacheable part is number 4. This part is what I asked on many forums and as I know nobody can do it until now. And, if the last part is OK (ZIP), then it is amazing if your AppCenter/package manager can convert the ZIP into RUN. Single offline installer.

Benefits of Proposed I

  1. Your users can save the installers for further installments.
  2. Your users can give the  folder to their friends. At least, their distro version is same. Further ideas are waiting.
  3. Your offline users (such as majority in Indonesia) can install app without any difficulties anymore. Tutorials can be short and simple.
  4. You help your users to save their bandwidth because they don’t need to download again.
  5. You help your users to save their money because of point 4.
  6. You help your users to save their time because they don’t need to searching one by one dependencies by themselves in the /var/cache/apt/archives or on PKGS.org.
  7. You help your users to avoid headache because of point 6.
  8. You can keep the Normal System ahead of this system.

Benefits of Proposed II

  1. Same with Proposed I.
  2. No folder, just one file (single offline installer).

Conclusion

This is just an idea. My idea because I live at a place where internet is expensive. You can take this idea or just abandon it. I wish it is the best for end users and I have feel it 7 years with Windows. Now I see my friends’ smartphone (Android) and I wish the APK-like system comes to Linux desktop. Don’t care what distro you are. You have chances to implement this proposals. Choice is yours! Thank you so much.

Important Notes!

Firstly, this post have begun by some posting I have created on many forums. You can see them here:

  1. [ASK] Tracking Package Dependencies in /var/cache/apt/archives (Ubuntuforums.org)
  2. [ASK] Tracking Package Dependencies in /var/cache/apt/archiv (LinuxMint Forum)
  3. [ASK] Tracking Package Dependencies in /var/cache/apt/archives (Debian Mailing List)
  4. [ASK] Backup Manjaro Installed Applications (Manjaro Forum)
  5. [ASK] apt-get download Untuk Yang Sudah Diinstal (Indonesian Backtrack Team)
  6. [TANYA] apt-cache untuk Instalasi Offline (Ubuntu Indonesia Forum)
  7. [TANYA] apt-cache untuk Instalasi Offline (Kaskus The Largest Indonesian Forum)
  8. The future of package management in Fedora (a Fedoran blog)
  9. I forget where again I posted the ideas.

Secondly, I have found some candidates similiar to my ideas but they are not meets all of my criterias. They are:

  1. PortableLinuxApps.org (the best but not officially accepted by community)
  2. Zeroinstall | Official | (awesome but honestly I don’t understand how the system works)
  3. Keryx | Omgubuntu | Askubuntu | (almost the best and very close to Proposed I above but it seems uncontinued)
  4. apt-get hack | Webup8 (simple, clean, easy but only for us not for newbies)
  5. Synaptic script (why should script if you can make it Proposed I and Proposed II?)
  6. apt-offline | Ubuntu Official Manpages | Fifi | Its FOSS | Debian Admin | Askubuntu | (not same with the name, the PC with apt-offline must be connected to the internet)
  7. apt-cache (it can’t do point 4 at Proposed II second option)
  8. apt-rdepends (some people say it is suite but apparently not)
  9. dpkg-repack (almost perfect and almost out of the box except it only can handle one package)
  10. AptOnCD | Askubuntu | (just wanna backup one installer, not whole system)
  11. Wagung’s Way | Linuk | (the inspiration (beside MegaGlest’s installer) behind Proposed II and the most out of the box hacker in this section. He don’t modificate the AppCenter. He created a new packaging system. Amazing but same with point 1, community don’t see it as a brilliant idea, unfortunately)

So you don’t have to worry.

Thirdly, as the great inspiration of PortableLinuxApps, I have created a mirror server for it. You can access it now http://otodidak.freeserver.me. Hope Allah will bless me.