You are here

Why we didn't have Portable Apps for Linux

38 posts / 0 new
Last post
dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
Why we didn't have Portable Apps for Linux

I know the "Portable Apps for Linux" heat has kind of died down, but I'd like to say a few words why this isn't moving along.

On Windows, when you install a program, you get a folder with the program files, and possibly a few registry entries and configuration files (usually in the same folder as the program). Therefore, it is not too difficult to take the program (or make a launcher :), modify it so that it does not save registry entries, and publish that. All the necessary dependencies and outside functions are stored in the dll files found scattered all over a Windows install.

Linux is another story. On Linux, when you compile a program, you must have all its dependencies installed on the computer which it is compiled on and on the computers where it runs. The dependencies, however, aren't single files which can be placed (almost) anywhere, but rather folders lost in /usr/lib/, /usr/share/lib, /lib, and so on. Also, Linux has much more elaborate dependencies. On Windows, a dependency might be .NET Framework, on Linux it might be gettext for libintl version 2.4. Of course, on Windows, this results in bloated program distributions, but increased portability.

This leaves us with two ways to make Linux portables:

1. Install the program and all its dependencies into a non-standard prefix, basically imitating the Windows packaging, with the directory structure of the program folder /usr, /bin, etc. This results in huge distributions, because if you have a dependency like libc6, gettext, gtk2, and so on, this can make a 3MB program a 180MB package. Therefore, this renders this way inconceivable, so onto the next way:

2. Have the program packaged on its own, but have a huge list of dependencies that must be present on the machine so that the program can run, or give out a large number of errors. This pretty much kills the portability aspect of the program, therefore this renders this way inconceivable as well.

Of course, we can use way 1, but it would result in huge packages, which is totally not necessary.

As you can see, 'Portable Apps for Linux' would just not work. It would be very hard to make small, portable apps (yes, UPX works on Linux apps as well), which is the aim of Portable Apps.

A last note: I've heard a lot of talk about just having a Portable Wine, and having it run all the programs provided by Portable Apps, but I have attempted to create such a program, but it resulted in a 180MB (unzipped) package, which I believe is unfeasible. If you believe otherwise, I can post it in the Beta Testing forum, but I do not think that 180MB is worthwhile.

UPDATE 1/2: Portable Apps for Linux are actually possible. If you'd like, you can read the PAFL wiki to find out all the techinal details on how to accomplish this. Summed up, it uses shared dependencies and symlinks. You can also read the post discussing, in detail, how we might be able to accomplish this.

Bahamut
Bahamut's picture
Offline
Last seen: 12 years 4 months ago
Joined: 2006-04-07 08:44
I think there are only a few

I think there are only a few dependencies that would create a size problem since most are already on a system. The only one I can think of right now is GTK+. The main problem here may be needing a large number of small (in size) dependencies since it's likely that not all of them are present on the host.

Not to mention that portable apps for Linux is more of a novelty now than a real need for most people. Plus, the default on most Linux installs is to not mount devices not in /etc/fstab automatically, which makes any effort to put together a framework for portable apps on Linux meaningless.

Vintage!

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
I agree

I agree, and given that most apps such as Firefox, OpenOffice.Org, Calculator, and so on are present on almost all Linux distributions, this becomes meaningless.

Patrick Patience
Offline
Last seen: 4 years 4 months ago
DeveloperModerator
Joined: 2007-02-20 19:26
Oh My

Oh my, you're back. Haven't seen you in like a year. Cool to see you trying to start PAFL / Portools back up. I'd love to see Linux applications start here, but I think it may be a while yet. I have yet to read this post, however. Also, could you please remove the link from your sig, they're only permitted in the Homepage field.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
I'm not starting Portools

PorTools in the PAFL sense does not exist anymore. I'm following John's advice: If I will, at some point, be developing Portable Apps for Linux, I will be doing it here, and submitting it here. But again, as I've said in this post, PAFL development probably won't be happening for the reasons that I explained above.

BTW, I've "wised up" from when I was 11. I was reading through my posts 2 years ago, and I thought: Wow! What was the point of all that arguing...

alkoid
Offline
Last seen: 15 years 4 months ago
Joined: 2008-11-26 17:03
Since you can easily use

Since you can easily use portable Qemu or a bootable USB linux version there's not much point anyway.

I use a Qemu stick for when I want to use my linux software under windows.
And just boot from my other stick when I don't need windows.

Who needs portable software when you can have a complete portable OS? Smile

Bruce Pascoe
Offline
Last seen: 12 years 3 months ago
Joined: 2006-01-15 16:14
Umm

"Who needs portable software when you can have a complete portable OS?"

A lot of computers still don't support booting over USB, sadly. Seems to be standard issue now (finally), but it didn't become standard until relatively recently, so there's a lot of PCs still in the wild that can't boot from a USB drive.

agdurrette
Offline
Last seen: 4 months 2 weeks ago
Developer
Joined: 2008-01-16 13:55
yes but

yes but you can run it in a virtual box/machine like qemu.

"It's just an online installer. It's not going to mug you.", JTH
"The shell is the key to unlock Linux's greatest advantages."

Bruce Pascoe
Offline
Last seen: 12 years 3 months ago
Joined: 2006-01-15 16:14
...

Doesn't virtualization require admin privileges? And pure emulation is slow...

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
A portable OS is nowhere near

A portable OS is nowhere near the same as a few portable progams. Yes, Bruce, emulation is very slow. On the other hand, portable apps can make use of all the resources available to the host computer. Second, running QEMU from a USB drive will kill it within a year. Last, the OS will be very slow due to limited resources and due to the fact that it is running from a USB drive. A QEMU portable OS is fun, but not very practical.

jps
Offline
Last seen: 15 years 1 month ago
Joined: 2007-06-09 13:23
Linux is VERY good at USB booting

If BIOS is supporting USB booting - fine, everything will work out of the box. Otherwise there are two alternatives.

Both alternatives boot from an bootdevice which is (mostly) supported by BIOS such Floppy or CD-ROM.

You can either use a BIOS Extender or "kicker disk". I know only one BIOS Extender, PLoP Bootmanager http://www.plop.at/en/bootmanager.html. As kicker disk I know for example kexec, kexec-loader http://www.solemnwarning.net/kexec-loader/, damm small linux boot from floppy to USB http://damnsmalllinux.org/wiki/index.php/Boot_Floppies, Debian boot from floppy to USB http://wiki.debian.org/BootingFromFloppyToUsb, and more http://www.pendrivelinux.com/category/usb-boot-cds/.

Another goodie with Linux is that you can use that USB drive either by booting it on real hardware and you have additionally the chance to use Windows or Linux host and to use a virtual machine to boot the same device. The completely different hardware does not harm Linux.

JulianSmart
Offline
Last seen: 15 years 4 months ago
Joined: 2008-11-14 11:16
Relevant to less common apps

However, for less common applications, it becomes meaningful.

I maintain two cross-platform applications that can be used in their own portable mode on Windows, Linux and Mac - an app for authors (http://www.writerscafe.co.uk) and a little EPUB e-book creation tool called eCub (http://www.juliansmart.com/ecub). Writer's Café in particular has its own wizard for portable installation, and apps running on the three main operating systems can all share settings and data. The apps also both have PortableApps.com installers on Windows.

My apps' main dependency is on GTK+; they link statically to the wxWidgets toolkit so no problem there. They work on pretty much any modern Linux distribution. I've already mentioned my blog article on wxWidgets app + portability but here it is again: http://www.juliansmart.com/portableapps.

Anyhoo, it's certainly possible and I've had customers expressing interest in running my apps portably on Linux - so there's at least some demand.

mayorpacmanjones
Offline
Last seen: 15 years 1 month ago
Joined: 2009-01-20 20:27
I think a portable linux app

I think a portable linux app is very unnecessary, Most linux distributions come with all the proper software. Most of the windows software that's at portableapps.com is the same software that is on linux already.

José Pedro Arvela
Offline
Last seen: 5 years 3 months ago
Joined: 2007-07-10 07:29
That is not the reason

The reason for portableapps is to have our data everywhere, and that includes apps definitions, while most PortableApps hosted here are available for Linux, they don't have your data on it (unless they are on your computer Blum ). That is why they are sometimes necessary on Linux too.

Blue is everything.

mayorpacmanjones
Offline
Last seen: 15 years 1 month ago
Joined: 2009-01-20 20:27
Well, if you already had the

Well, if you already had the hardware it really wouldn't matter because you could save in on an external drive and most of Linux open source software has compatibility with the paid software it is an alternative of. So even if it you would be using different distributions with different software they would be mainly compatible.

José Pedro Arvela
Offline
Last seen: 5 years 3 months ago
Joined: 2007-07-10 07:29
What?

Wait, or I am not getting the point, or you are not getting the point. An app like Firefox, for example, has its own settings (bookmarks, addons, themes, security settings... and so on). If you have your own Firefox Portable on your flash drive, it has its settings (bookmarks, addons, themes...) saved on that flash drive, but then these apps don't work on Linux (because they were compiled for Windows). Linux has its own OSS apps that are the same to ours (Firefox, OpenOffice, Thunderbird and so on), but those apps don't have the settings on our PortableApps (the bookmarks, addons, themes and so on), unless the PC is yours (and if the PC is yours, then using PortableApps on your own PC is useless most of the times for the original objective).

If you go to a friend's house and his PC has Linux and you only have your flash drive, then PortableApps for Linux are practical here because they could be stored side by side with Windows PortableApps, and have your apps, with your settings.

So it is not a matter that the Linux software to be compatible with the Windows proprietary software, but to keep your settings along with each app you have on different PCs, which some of them might have Linux.

Did I made my point clear, or did you meant something else?

Blue is everything.

Ed_P
Offline
Last seen: 5 years 6 months ago
Joined: 2007-02-19 09:09
An interesting scenario

If you go to a friend's house and his PC has Linux and you only have your flash drive, then PortableApps for Linux are practical here because they could be stored side by side with Windows PortableApps, and have your apps, with your settings.

But I'm not sure it would/could work that way. I could see a USB device having Windows and Linux apps on it but each independent of the other and each having their own sets of files.

But your desire is an interesting one.

Ed

whoinsamhill
Offline
Last seen: 15 years 1 month ago
Joined: 2009-01-23 18:07
Using Wine (by new forum user)

My experience for several months now is using Wine to access PortableApps from Mandriva Linux on Toshiba Laptop. (Of the several Linux Brands only Mandriva accessed Toshiba's Atheros Wify connection upon installation) And being easily confused by Linux I needed to install Wine via the internet, which I was able to do then with Mandriva.

I access PortableApps from the second partition of my hard drive (E) and back them up with WinMerge to USB stick. This works fine when it is necessary to crank up Vista on same Toshiba laptop; the PortableApps run fine in Vista from said E Drive.

Originally I tried accessing PortableApps from USB stick on a different Windows Vista PC. Performance was, well there was no performence, slow to nothin'. Therefore, my PLAN is to continue accessing PortableApps from my hard drive using Mandriva Linux, continue to back them up to USB stick, and, then, to copy the PortableApps to a Vista PC if I find it necessary to use someone else's PC. And of course then back them back up to the USB stick when I'm finished.

To me, a major reason for PortableApps is to take them anywhere and run them, when necessary, off someone else's Windows Vista PC. Thanks for reading.

3/7 Much of this is a crock, I think. See my comment below. Maybe its timefor me to vacate the computer for a while.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
It is

It is, and it should be possible. (See my reply near the bottom.) The app code would be separate, but the bookmarks/settings/profile could be shared, because profile formats do not change between platforms.

gluxon
gluxon's picture
Offline
Last seen: 3 years 7 months ago
Developer
Joined: 2008-06-21 19:26
YES!!!

PLEASE post it on the beta forums.

I can't get ubuntu to install wine without internet connection!

Zach Thibeau
Zach Thibeau's picture
Offline
Last seen: 1 year 6 months ago
Developer
Joined: 2006-05-26 12:08
you can't install wine

you can't install wine without the internet connection :/ I did. I just went to a computer with internet grabbed it and plus 1 dependency and boom I got wine installed in Ubuntu Blum

your friendly neighbourhood moderator Zach Thibeau

José Pedro Arvela
Offline
Last seen: 5 years 3 months ago
Joined: 2007-07-10 07:29
Remembered now...

If you have another PC with Ubuntu and internet access, you can install APTonCD or something similar, that allows you to create a repository of the installed apps on that PC into a CD. So if you get a PC with Ubuntu, WINE and APTonCD or whatever, you can make a repository cd with WINE in there, and other apps too.

Blue is everything.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
Found a way

Actually, pTfL has found a way to do this, which involves launchers, re-packaging, compiling with special options, and so on: it gets pretty complicated.

What I'm saying is: PortableApps for Linux are possible, and there are ways to create them. In fact, the pTfL wiki explains in detail how to accomplish this.

whoinsamhill
Offline
Last seen: 15 years 1 month ago
Joined: 2009-01-23 18:07
Switching bet linux and vista

Disregard much of my comments above. My problem with slow to no loading and connection with firefox on vista via usb stick is, I believe, the usb stick itself---16g sale item from Fry's Electronics (don't have my reading glasses). I may be wrong but all seems well running PortableApps off 4gig Sansa stick on vista and linux.

jps
Offline
Last seen: 15 years 1 month ago
Joined: 2007-06-09 13:23
size is not an issue

I can not share your opinion that 180 MB for a 3 MB application is unreliable. My USB harddisk has 500 GB and you can believe me that I do not care about such small sizes.

Portable apps for Linux would be still useful for me, even if them would need a bit more space.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
Yes, but the majority of

Yes, but the majority of people do not have a 500GB harddisk. Biggrin I'm aiming at a broad audience, and 180MB for Wine is too much. That's why I've spent weeks so far trying to bring the size down and get this to work. Eventually, I should be down to half of that, 90MB.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
Seems practical...

I guess, and you guys would probably agree, that cross-platform integration is important. Therefore, a feature I see as pretty high on my TODO list for Portable Apps for Linux is integration between PAFL and Portable Apps (for Windows). That way, your settings, addons, and bookmarks would not only travel between computers, but also between platforms. I could work with John to make sure both our app sets can "inter-mingle" on a flash drive.

Basically, a halfway-there implementation of the "universal apps" concept.

solanus
solanus's picture
Offline
Last seen: 9 years 6 months ago
Joined: 2006-01-21 19:12
Have you any prototype apps that work on both?

This sounds great, but until someone does a proof of concept, cross-platform apps are just a hopeful theory.

Don't want to be a naysayer - cuz I like the dream - but it wasn't that long ago that portable apps for Linux was declared unfeasible.

I made this half-pony, half-monkey monster to please you.

dkulchenko
Offline
Last seen: 12 years 8 months ago
Joined: 2007-02-14 17:12
Yeah

Portable Apps for Linux was declared unfeasible for a few good reasons, which I've described at http://www.portools.com/node/30, but with some effort from our (the developers) side and maybe some sacrifices from the users' side, it's possible to get this going (it is feasible, and it is being worked on).

Second, about cross-platform apps. First of all, your first sentence didn't make sense, because Firefox, Thunderbird, OpenOffice.org, Abiword, VLC, etc. are all cross-platform apps. I'll get a prototype ready over the next few weeks, which would just involve changing the Portable Apps for Linux "Data" folder (profile) format to the Portable Apps (windows) format, which should not be difficult at all. The actual app code would have to be separate still (maybe, wishful thinking, but maybe in a few months, it would even be possible for some of the app code to be shared), but the data (settings/profiles/addons/bookmarks) could be shared between the platforms, as for most apps, the profile format is the same for both platforms.

solanus
solanus's picture
Offline
Last seen: 9 years 6 months ago
Joined: 2006-01-21 19:12
Sorry you misunderstood

Of course there are apps that have separate builds for separate platforms. I was referring to an app that has a single install that can run on (any) linux, windows and Mac, without the need for an emulator or WINE.

If your prototype works, that would be close to what I meant.

I made this half-pony, half-monkey monster to please you.

brotherinbluejeans
Offline
Last seen: 15 years 1 month ago
Joined: 2009-03-17 16:05
anyone tried this?

i just posted a new thread stating that i intend to try to put together a crossplatform desktop... we'll see how it goes.

what i wanted to say though was:
when considdering portability and cross-platform compatability one option i considered was installing XAMMP - a portable LAMP web server, then apps could be written in php/mysql (or adapted from web-apps) and run from your USB usin their own server there on the USB..

has anyone ever trie dthis? what do you think?

lordmax
Offline
Last seen: 3 days 16 hours ago
Joined: 2006-07-25 06:58
it exist

Hi to all.

There's a portable version for linux:
http://portablelinuxapps.org/

Not so good than this but we have it. ^__^

IT specialist
Writing/book coach
Ghostwriter
Game creator

techgurufloyd
Offline
Last seen: 12 years 10 months ago
Joined: 2011-05-31 23:03
You want portable? Heard of Gentoo Prefix?

So, you want portable apps on linux. There's a major hurdle and a nearly complete solution. It's called Gentoo Prefix.

If you try to create a portable linux app, you'll have to download dependencies and do some custom compilation to make sure things work just so. What a pain. I don't like manually keeping track of, downloading, and compiling dependencies. That's what a package manager is for. And that's where gentoo portage comes in.

Gentoo Portage is the oh-so-versatile package manager that tracks dependencies, automatically downloads and compiles them, and it compiles all of your apps to work according to the features you have enabled (via "use" flags). At first glance, you'll probably want to dismiss the idea of using an entire package manager to create a PortableApps like experience on linux - but it gets better. Another feature of Portage, is it can create a binary distribution, and then there would be only one central repository of binaries, all compiled to work across multiple linux distros.

But wait, If I used Gentoo, wouldn't that mean I'd have to install the entire OS?! NO! Check out Gentoo Prefix: it compiles everything to work on an un-privileged prefix, no super user required.

Whoever decided to implement something like this would probably want to create some kind of launcher to run these programs, but most of the grunt work is done: You don't have to reinvent a package manager to track dependencies. (This would be like option 1 on the first post in this thread) Heck, you could even write something in python or bash that would automate the process of packaging the portage compiled binaries as is described in the pafl App Creation Process page. (That would give you option number 2 from the same post) The possibilities with Gentoo Portage and Gentoo Prefix are fairly limitless (with much less overhead to get going IMO).

Sadly, I'm using loaner machines (the mb on my Gentoo box is dead), so I don't have access to a Linux box for now, and wouldn't be able to work on something like this. I would love to have a hard drive with a FAT partition dedicated to PortableApps.com apps; an ext2/3 partition with pafl or some kind of gentoo prefix install so that I can use my stuff anywhere; and a mac partition with my own /Applications folder from which I can run my favorite apps without downloading a bunch of dmgs. That would really give me a portable environment.

(Yah, I know this thread is old. I was browsing some old topics, and couldn't resist. :D)

dwebb5
Offline
Last seen: 2 months 3 days ago
Joined: 2009-01-06 01:04
Portable Linux, Wine, and Portable apps

Thanks for bringing this up again.

I have absolutely no interest in programming Linux (or anything else for that matter)
I have been trying to build a Linux toolbox for Windows.
A recovery CD for when the operating system has problems.
This has been needed lately for recovering a friends PC from a virus attack.

I want to run Linux off the CD (No problem there) and run the portable apps through Wine. So far I have gotten the Linux to run and loaded Wine, but that's all.

I would not care if the program to make this work was 180MB because I still would have room on a CD to do it. I have several versions of Linux, Mint, Ubuntu, Puppy, Knoppix, and a couple more.
Maximum PC had instruction for building a USB toolbox, and many projects I had no trouble with, but this one is not working for me.
I am just trying to run anti-virus and anti Mal-ware through Linux off of the CD.

This might be better addressed through another thread but it is still the subject of Portable Apps on Linux. Thanks for any input you can give. David

Quaamik
Offline
Last seen: 11 years 10 months ago
Joined: 2012-06-20 17:18
I'm interested in portable

I'm interested in portable apps for Linux for the same reason. The reality is that running a portable linux OS from a memory stick still gives me Gb of space for apps. As a recovery tool for my home PC and those of a few family & freinds, it won't be used for more than 20 hours a year at most, so i don't care if the USB stick dies after a while (at $4 for a 4 Gb USB, its still a cheap repair).

I'm thinking just a couple of anti virus / anti malware programs and maybe a program to ghost the hard drive prior to a OS re-installation.

humpty
Offline
Last seen: 2 years 11 months ago
Joined: 2007-08-01 15:59
The simplest way.

All you need is like 'win32' type of standard library but for linux.
It's similar to the wine suggestion, but uses a layer of standard (native) libraries.
You can activate (load) this layer on the fly before running the app.
All apps can then use the same library making sure you only activate it once.

The problem ofcourse is there is no such standard, so you will have to invent it and compile
it for x86.

BungieCord
Offline
Last seen: 5 years 1 week ago
Joined: 2009-03-12 16:11
Most of the major *NIX CLI

Most of the major *NIX CLI tools already are available ported for Win32 and can very easily be run under Command Prompt Portable.

http://gnuwin32.sourceforge.net/

lm8
Offline
Last seen: 10 years 4 months ago
Joined: 2006-04-17 08:49
portable apps for Linux

There's a reference to different methods of making apps portable on Linux at: http://hacktolive.org/wiki/Methods_for_Portable_Applications_on_Linux
There's also a Linux portable apps web collection at:
http://portablelinuxapps.org/

I've been researching various options for creating portable apps because it's one of the things I greatly miss when running a Linux system. I've also been working on making some cross-platform applications that I use more portable. For my own use, I've edited the source code on programs I work with to include a library that deals with many of the path issues.

One possible way to overcome the binary compatibility issues is to use a smaller C library like musl and modify it so it can find the loader portably or includes the loader. You couldn't take code for one processor and use it on another. You can't do that on Windows either. However, if you're working with the same processor type, you should be able to run the code with any Linux distribution even if that Linux distribution uses a different C library. FreeBSD can run Linux code from any Linux distribution using its Linux emulation as long as all the needed Linux libraries are available. A Linux distribution should be able to do the same.

Log in or register to post comments