140:
40:
81:
587:
folder. For example, right-clicking a file in Finder and then selecting "Open With..." will show applications available from both /Applications and ~/Applications. Developers can create Mac product installers which allow the user to perform a home directory install, labelled "Install for me only" in
390:
Microsoft saw the need for an application-specific registry for its
Windows operating system as far back as 2005. It eventually incorporated some of this technology, using the techniques mentioned above, via its Application Compatibility Database using its Detours code library, into Windows XP. It
879:
You can use a special keyword $ ORIGIN to say 'relative to the actual location of the executable'. Suddenly we found we could use -rpath $ ORIGIN/lib and it worked. The game was loading the correct libraries, and so was stable and portable, but was also now completely in the spirit of the LGPL as
246:
In practical terms, a portable application often stores user-created data and configuration settings in the same directory it resides in. This makes it easier to transfer the program with the user's preferences and data between different computers. A program that doesn't have any configuration
1056:
I, as the app maintainer, don't want my app bundled in a distribution anymore. Way to much pain for absolutely zero gain. Whenever I get a bug report my first question is "oh, which version of which distribution? which version of which library? What set of insane patches were applied to those
938:
If Hearn is correct, the real lesson of
Autopackage is not how to improve software installation, but the difficulty -- perhaps the impossibility -- of large-scale changes in Linux architecture this late in its history. It's a sobering, disappointing conclusion to a project that once seemed so
215:
368:: An application is "sequenced" or "packaged" against a runtime layer that transparently intercepts its file system and registry calls, then redirects these to other persistent storage without the application's knowledge. This approach leaves the application itself unchanged, yet portable.
906:
The Linux community, in their infinite wisdom, proceeds to flame the hell out of CDE. "We should all just be using package management." Here is what I want to say, and let my words be carried down from the mountaintops, written on tiny stone tablets: Package management is not a universal
383:, not only for the entire application. As a result, when individual components are ported in such manner they are able to be: integrated into original portable applications, repeatedly instantiated (virtually installed) with different configurations/settings on the same
1008:
I have seen this first hand with the other project I'm involved with, which is my dive log app. We make binaries for
Windows and OSX, we basically don't make binaries for Linux. Why? Because making binaries for Linux desktop applications is a major fucking pain in the
1150:
387:(OS) without mutual conflicts. As the ported components do not affect the OS-protected related entities (registry and files), the components will not require administrative privileges for installation and management.
512:, or CDE, but which gained only limited acceptance and support in the Linux community in the 2000s. Around 2015 the idea of portable and distro independent packing for the Linux ecosystem got more traction when
242:
designed to operate without changing other files or requiring other software to be installed. In this way, it can be easily added to, run, and removed from any compatible computer without setup or side-effects.
445:)—such would quickly result in "Permission denied" errors in Unix-like environments since users will be in an unprivileged state much more often. Programs are therefore generally designed to use the
274:—storing its program files and any configuration information and data on the storage medium alone. If no configuration information is required a portable program can be run from
1057:
libraries?". No, Windows and Mac get this right. I control the libraries my app runs against. With an AppImage I can give them just that. Something that runs on their computer.
331:
Most portable applications do not leave files or settings on the host computer or modify the existing system and its configuration. The application may not write to the
357:
format. While some applications have options to support this behavior, many programs are not designed to do this. A common technique for such programs is the
483:
A Linux application without need for a user-interaction (e.g. adapting a script or environment variable) on varying directory paths can be achieved with the
863:
1129:
361:
to copy necessary settings and files to the host computer when the application starts and move them back to the application's directory when it closes.
408:
343:, but today, many portables do; many, however, still store their configuration files in the portable directory. Another possibility, since
982:
358:
413:
Programs written with a Unix-like base in mind often do not make any assumptions. Whereas many
Windows programs assume the user is an
952:
364:
An alternative strategy for achieving application portability within
Windows, without requiring application source code changes, is
293:
Some applications which are not portable by default do support optional portability through other mechanisms, the most common being
563:
Many Mac applications that can be installed by drag-and-drop are inherently portable as Mac application bundles. Examples include
53:
575:
which do not require admin access and do not need to be placed into a central, restricted area. Applications placed into
1116:
201:
183:
121:
67:
893:
165:
1070:
921:
1034:
I finally got around to play with the "AppImage" version of +Subsurface, and it really does seem to "just work".
867:
150:
770:
614:
540:
followed in 2016 and started to use AppImage builds for software deployment. RedHat released in 2016 the
294:
1177:
636:
365:
602:
557:
308:
Like any application, portable applications must be compatible with the computer system hardware and
103:
59:
749:
703:
553:
99:
28:
484:
348:
275:
161:
583:) are registered with macOS LaunchServices in the same way as applications placed into the main
376:
157:
529:
1047:
1025:
497:
Not all programs honor this—some completely ignore $ HOME and instead do a user look-up in
451:
263:
20:
956:
504:
There are also cross-distro package formats that do not require admin rights to run, like
8:
663:
549:
251:
91:
24:
840:
235:
467:
680:
675:
641:
624:
384:
372:
344:
332:
309:
239:
564:
479:
HOME=/mnt/home/user LD_LIBRARY_PATH=/mnt/usr/lib /mnt/usr/bin/w3m www.example.com
267:
259:
219:
475:
contains the portable programs and configuration, a command line may look like:
471:
that programs can use to load libraries from non-standard directories. Assuming
1021:
978:
646:
513:
340:
1171:
1099:
668:
629:
588:
the
Installer user interface. Such an installation is performed as the user.
572:
438:
352:
434:
255:
505:
404:
271:
1078:
607:
597:
487:
430:
426:
422:
418:
925:
796:
548:
project which was inspired by klik (now called AppImage). Similarly,
533:
442:
414:
287:
819:
168:. Statements consisting only of original research should be removed.
1051:
1029:
774:
653:
619:
525:
521:
509:
336:
319:
is more or less complex to implement; to operating systems such as
301:
to simply instruct the program to behave as a portable program, or
820:"Secrets of the Application Compatilibity Database (SDB) – Part 1"
214:
990:
541:
517:
380:
371:
The same approach is used for individual application components:
320:
283:
996:
447:
279:
465:
browser). The dynamic linker provides an environment variable
658:
568:
537:
501:
to find the home directory, therefore thwarting portability.
391:
did not make any of this technology available via its system
724:
347:
will often differ on changing computers due to variation in
725:"Free Portable Apps and Games for USB â–· Pendrive Software"
462:
392:
544:
system, which is a successor of
Alexander Larsson's
351:, is that portable applications may store them in a
398:
698:
696:
1169:
326:
693:
323:, all applications are by definition portable.
977:
494:which allows a relative library search path.
335:or store its configuration files (such as an
971:
771:"Portable Application Conversion Technology"
305:to specify the configuration file location.
247:options can also be a portable application.
102:. There might be a discussion about this on
922:"Autopackage struggling to gain acceptance"
250:Portable applications can be stored on any
68:Learn how and when to remove these messages
286:. Some applications are available in both
1117:Experiments with run-timeless app bundles
417:—something very prevalent in the days of
202:Learn how and when to remove this message
184:Learn how and when to remove this message
122:Learn how and when to remove this message
861:
213:
1045:
919:
913:
894:"Dear Linux Community: We Need To Talk"
1170:
891:
1020:
955:. Elementary Project. Archived from
133:
74:
33:
855:
817:
315:Depending on the operating system,
13:
885:
14:
1189:
1068:
773:. Sphinx Software. Archived from
49:This article has multiple issues.
399:Portability on Unix-like systems
138:
79:
38:
1143:
1130:"Distributing Your Application"
1122:
1110:
1092:
1062:
1039:
1014:
945:
892:Vining, Nicholas (2010-10-13).
862:Hustvedt, Eskild (2009-02-08).
797:"Portable Application Registry"
222:can carry portable applications
57:or discuss these issues on the
864:"Our new way to meet the LGPL"
833:
811:
789:
763:
752:. PortableApps.com. Guidelines
742:
717:
706:. PortableApps.com. Definition
560:and many other Linux distros.
1:
1071:"MuseScore 2.0.3 is released"
983:"Q&A with Linus Torvalds"
920:Byfield, Bruce (2007-02-12).
686:
615:Portable application creators
327:Portable Windows applications
1151:"Distribution XML Reference"
1046:Hohndel, Dirk (2015-11-25).
577:/Users/username/Applications
516:discussed this topic on the
266:or external storage such as
7:
1077:. MuseScore. Archived from
924:. linux.com. Archived from
750:""What is a Portable App?""
591:
164:the claims made and adding
10:
1196:
637:Application virtualization
402:
366:application virtualization
18:
704:"What is a portable app?"
603:List of portable software
359:use of a launcher program
297:. Examples might include
234:), sometimes also called
1048:"This is just very cool"
1026:"This is just very cool"
520:2014 and endorsed later
454:to store settings (e.g.
349:drive letter assignments
29:multiarchitecture binary
19:Not to be confused with
16:Type of computer program
429:(and to some degree in
290:and portable versions.
1119:by Alex Larsson (2007)
295:command-line arguments
223:
1153:. developer.apple.com
1132:. developer.apple.com
254:, including internal
217:
1106:. Krita. 2016-05-31.
1100:"Krita 3.0 Released"
959:on December 13, 2010
843:. Microsoft Research
777:on September 7, 2010
452:environment variable
228:portable application
92:confusing or unclear
21:software portability
880:well as the letter!
664:Portable-VirtualBox
303:--cfg=/path/inifile
252:data storage device
236:standalone software
100:clarify the article
25:portable executable
373:run-time libraries
224:
149:possibly contains
1178:Portable software
552:released in 2016
270:, pen drives and
212:
211:
204:
194:
193:
186:
151:original research
132:
131:
124:
72:
1185:
1162:
1161:
1159:
1158:
1147:
1141:
1140:
1138:
1137:
1126:
1120:
1114:
1108:
1107:
1096:
1090:
1089:
1087:
1086:
1066:
1060:
1059:
1043:
1037:
1036:
1018:
1012:
1011:
1005:
1004:
987:
975:
969:
968:
966:
964:
949:
943:
942:
934:
933:
917:
911:
910:
902:
901:
889:
883:
882:
876:
875:
866:. Archived from
859:
853:
852:
850:
848:
837:
831:
830:
828:
826:
815:
809:
808:
806:
804:
793:
787:
786:
784:
782:
767:
761:
760:
758:
757:
746:
740:
739:
737:
736:
729:pendriveapps.com
721:
715:
714:
712:
711:
700:
681:Interoperability
676:Data portability
642:Turbo (software)
625:PortableApps.com
586:
582:
578:
532:. For instance,
500:
493:
480:
474:
470:
460:
450:
437:, though not in
385:operating system
339:) in the user's
333:Windows registry
310:operating system
304:
300:
278:storage such as
240:computer program
207:
200:
189:
182:
178:
175:
169:
166:inline citations
142:
141:
134:
127:
120:
116:
113:
107:
83:
82:
75:
64:
42:
41:
34:
1195:
1194:
1188:
1187:
1186:
1184:
1183:
1182:
1168:
1167:
1166:
1165:
1156:
1154:
1149:
1148:
1144:
1135:
1133:
1128:
1127:
1123:
1115:
1111:
1098:
1097:
1093:
1084:
1082:
1067:
1063:
1044:
1040:
1022:Torvalds, Linus
1019:
1015:
1002:
1000:
985:
976:
972:
962:
960:
951:
950:
946:
931:
929:
918:
914:
899:
897:
896:. Gaslamp Games
890:
886:
873:
871:
860:
856:
846:
844:
839:
838:
834:
824:
822:
818:Ionescu, Alex.
816:
812:
802:
800:
795:
794:
790:
780:
778:
769:
768:
764:
755:
753:
748:
747:
743:
734:
732:
723:
722:
718:
709:
707:
702:
701:
694:
689:
594:
584:
580:
576:
565:Mozilla Firefox
498:
491:
478:
472:
468:LD_LIBRARY_PATH
466:
455:
446:
411:
401:
329:
302:
298:
208:
197:
196:
195:
190:
179:
173:
170:
155:
143:
139:
128:
117:
111:
108:
97:
84:
80:
43:
39:
32:
17:
12:
11:
5:
1193:
1192:
1181:
1180:
1164:
1163:
1142:
1121:
1109:
1091:
1069:Weiss, Isaac.
1061:
1038:
1013:
981:(2014-08-29).
979:Linus Torvalds
970:
944:
912:
884:
854:
832:
810:
788:
762:
741:
716:
691:
690:
688:
685:
684:
683:
678:
673:
672:
671:
666:
661:
651:
650:
649:
647:VMware ThinApp
644:
634:
633:
632:
627:
622:
612:
611:
610:
600:
593:
590:
581:~/Applications
514:Linus Torvalds
400:
397:
379:components or
328:
325:
210:
209:
192:
191:
146:
144:
137:
130:
129:
87:
85:
78:
73:
47:
46:
44:
37:
15:
9:
6:
4:
3:
2:
1191:
1190:
1179:
1176:
1175:
1173:
1152:
1146:
1131:
1125:
1118:
1113:
1105:
1101:
1095:
1081:on 2016-04-23
1080:
1076:
1075:MuseScore.org
1072:
1065:
1058:
1053:
1049:
1042:
1035:
1031:
1027:
1023:
1017:
1010:
998:
994:
993:2014 Portland
992:
984:
980:
974:
958:
954:
948:
941:
940:
928:on 2008-03-31
927:
923:
916:
909:
908:
895:
888:
881:
870:on 2009-02-20
869:
865:
858:
842:
836:
821:
814:
798:
792:
776:
772:
766:
751:
745:
730:
726:
720:
705:
699:
697:
692:
682:
679:
677:
674:
670:
669:Windows To Go
667:
665:
662:
660:
657:
656:
655:
652:
648:
645:
643:
640:
639:
638:
635:
631:
628:
626:
623:
621:
618:
617:
616:
613:
609:
606:
605:
604:
601:
599:
596:
595:
589:
585:/Applications
574:
573:Google Chrome
570:
566:
561:
559:
555:
554:Snap packages
551:
547:
543:
539:
535:
531:
527:
523:
519:
515:
511:
507:
502:
495:
489:
486:
481:
476:
469:
464:
458:
453:
449:
444:
440:
439:Windows Vista
436:
432:
428:
424:
420:
416:
415:administrator
410:
406:
396:
394:
388:
386:
382:
378:
374:
369:
367:
362:
360:
356:
355:
350:
346:
342:
338:
334:
324:
322:
318:
313:
311:
306:
296:
291:
289:
285:
281:
277:
273:
269:
265:
264:cloud storage
261:
257:
253:
248:
244:
241:
237:
233:
229:
221:
216:
206:
203:
188:
185:
177:
167:
163:
159:
153:
152:
147:This article
145:
136:
135:
126:
123:
115:
105:
104:the talk page
101:
95:
93:
88:This article
86:
77:
76:
71:
69:
62:
61:
56:
55:
50:
45:
36:
35:
30:
26:
22:
1155:. Retrieved
1145:
1134:. Retrieved
1124:
1112:
1103:
1094:
1083:. Retrieved
1079:the original
1074:
1064:
1055:
1041:
1033:
1016:
1007:
1001:. Retrieved
989:
973:
961:. Retrieved
957:the original
947:
937:
936:
930:. Retrieved
926:the original
915:
905:
904:
898:. Retrieved
887:
878:
872:. Retrieved
868:the original
857:
845:. Retrieved
835:
823:. Retrieved
813:
801:. Retrieved
791:
779:. Retrieved
775:the original
765:
754:. Retrieved
744:
733:. Retrieved
731:. 2007-01-08
728:
719:
708:. Retrieved
562:
545:
528:application
503:
496:
482:
477:
456:
412:
409:Zero Install
389:
370:
363:
353:
330:
316:
314:
307:
292:
272:floppy disks
256:mass storage
249:
245:
232:portable app
231:
227:
225:
198:
180:
171:
148:
118:
109:
98:Please help
89:
65:
58:
52:
51:Please help
48:
963:January 19,
953:"AppImages"
847:January 19,
825:January 19,
803:January 19,
781:January 19,
506:Autopackage
499:/etc/passwd
405:Autopackage
317:portability
288:installable
174:August 2009
1157:2017-05-23
1136:2017-05-23
1085:2016-04-05
1003:2016-05-14
999:.net. 6:28
939:promising.
932:2012-01-21
900:2011-01-30
874:2011-03-09
756:2022-11-15
735:2024-06-17
710:2022-11-15
687:References
608:WinPenPack
598:Load drive
530:Subsurface
431:Windows XP
419:Windows 95
403:See also:
345:file paths
268:USB drives
260:file share
158:improve it
112:April 2018
94:to readers
54:improve it
1104:Krita.org
841:"Detours"
550:Canonical
534:MuseScore
443:Windows 7
299:/portable
276:read-only
220:USB drive
162:verifying
60:talk page
1172:Category
907:panacea.
799:. ip.com
654:Live USB
620:LiberKey
592:See also
526:dive log
524:for his
522:AppImage
510:AppImage
492:$ ORIGIN
461:for the
354:relative
337:INI file
284:DVD-ROMs
1052:Google+
1030:Google+
991:DebConf
986:(video)
542:Flatpak
518:DebConf
490:option
381:ActiveX
341:profile
321:AmigaOS
280:CD-ROMs
238:, is a
156:Please
90:may be
997:debian
558:Ubuntu
488:Linker
457:$ HOME
659:Ceedo
569:Skype
546:glick
538:Krita
459:/.w3m
27:, or
1009:ass.
965:2012
849:2012
827:2012
805:2012
783:2012
571:and
556:for
536:and
473:/mnt
448:HOME
435:2000
407:and
393:APIs
282:and
258:, a
485:GCC
463:w3m
441:or
377:COM
160:by
1174::
1102:.
1073:.
1054:.
1050:.
1032:.
1028:.
1024:.
1006:.
995:.
988:.
935:.
903:.
877:.
727:.
695:^
630:U3
567:,
508:,
427:ME
423:98
395:.
375:,
312:.
262:,
226:A
218:A
63:.
23:,
1160:.
1139:.
1088:.
967:.
851:.
829:.
807:.
785:.
759:.
738:.
713:.
579:(
433:/
425:/
421:/
230:(
205:)
199:(
187:)
181:(
176:)
172:(
154:.
125:)
119:(
114:)
110:(
106:.
96:.
70:)
66:(
31:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.