ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Urlader/README
Revision: 1.2
Committed: Wed Jan 4 14:19:05 2012 UTC (12 years, 4 months ago) by root
Branch: MAIN
Changes since 1.1: +93 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.2 NAME
2     Urlader - installer-less single-file independent executables
3    
4     SYNOPSIS
5     use Urlader;
6    
7     DESCRIPTION
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    
32     EXAMPLE
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    
58     CONCEPTS
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    
89     FUNCTIONS AND VARIABLES IN THIS MODULE
90     AUTHOR
91     Marc Lehmann <schmorp@schmorp.de>
92     http://home.schmorp.de/
93