ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Urlader/README
(Generate patch)

Comparing Urlader/README (file contents):
Revision 1.1 by root, Mon Jan 2 09:23:03 2012 UTC vs.
Revision 1.2 by root, Wed Jan 4 14:19:05 2012 UTC

1NAME
2 Urlader - installer-less single-file independent executables
3
4SYNOPSIS
5 use Urlader;
6
7DESCRIPTION
8 Urlader (that's german for "bootloader" btw.) was created out of
9 frustration over PAR again not working, again not being flexible enough
10 for simple things, and again causing mysterious missing files issues on
11 various platforms.
12
13 That doesn't mean this module replaces PAR, in fact, you should stay
14 with it for many reasons, user-friendlyness is one of them.
15
16 However, if you want to make single-file distributions out of your perl
17 programs (or python, or C or whatever), and you are prepared to fiddle a
18 LOT, this module might provide a tiny step towards your goal. Well, if
19 it ever gets finished.
20
21 Also, *nothing in this module is considered very stable yet*, and it's
22 far from feature-complete.
23
24 Having said all that, Urlader basically provides three services:
25
26 A simple archiver that packs a directory tree into a single file.
27 A small C program that works on windows and unix, which unpacks an
28 attached archive and runs a program.
29 A perl module support module (*this one*), that can be used to query the
30 runtime environment, find out where to install updates and so on.
31
32EXAMPLE
33 How can it be used to provide single-file executables?
34
35 So simple, create a directory with everything that's needed, e.g.:
36
37 # find bintree
38 bintree/perl
39 bintree/libperl.so.5.10
40 bintree/run
41 bintree/pm/Guard.pm
42 bintree/pm/auto/Guard/Guard.so
43
44 # cat bintree/run
45 @INC = ("pm", "."); # "." works around buggy AutoLoader
46 use Guard;
47 guard { warn "hello, world!\n" }; # just to show off
48 exit 0; # tell the urlader that everything was fine
49
50 Then pack it:
51
52 # wget http://urlader.schmorp.de/prebuilt/1.0/linux-x86
53 # urlader-util --urlader linux-x86 --pack myprog ver1_000 bintree \
54 LD_LIBRARY_PATH=. ./perl run \
55 >myprog
56 # chmod 755 myprog
57
58CONCEPTS
59 urlader
60 A small (hopefully) and relatively portable (hopefully) binary that
61 is prepended to a pack file to make it executable.
62
63 You can build it yourself from sources (see prebuilt/Makefile in the
64 distribution) or use one of the precompiled ones at:
65
66 http://urlader.schmorp.de/prebuilt/1.0/
67
68 The README there has further information on the binaries provided.
69
70 exe_id
71 A string that uniquely identifies your program - all branches of it.
72 It must consist of the characters "A-Za-z0-9_-" only and should be a
73 valid directory name on all systems you want to deploy on.
74
75 exe_ver
76 A string the uniquely identifies the contents of the archive, i.e.
77 the version. It has the same restrictions as the "exe_id", and
78 should be fixed-length, as Urlader assumes lexicographically higher
79 versions are newer, and thus preferable.
80
81 pack file (archive)
82 This contains the "exe_id", the "exe_ver", a number of environment
83 variable assignments, the program name to execute, the initial
84 arguments it receives, and finally, a list of files (with contents
85 :) and directories.
86
87 override
88
89FUNCTIONS AND VARIABLES IN THIS MODULE
90AUTHOR
91 Marc Lehmann <schmorp@schmorp.de>
92 http://home.schmorp.de/
93

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines