Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/INSTALL
ViewVC logotype

Annotation of /sml/trunk/INSTALL

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1047 - (view) (download)

1 : blume 1047 Installation instructions for SML/NJ
2 :     ------------------------------------
3 :    
4 :     These are instructions for installing recent "working" versions of SML/NJ.
5 :    
6 :     1. If you are in a hurry (and you have network connectivity) ...
7 :     ----------------------------------------------------------------
8 :    
9 :     - Pick a place to do the installation, e.g.
10 :    
11 :     $ d=/usr/share/smlnj # or whatever you like
12 :     $ mkdir $d
13 :     $ cd $d
14 :    
15 :     - Download config.tgz, e.g.
16 :    
17 :     $ v=110.38 # or whatever is the version you desire
18 :     $ wget http://ftp.research.bell-labs.com/dist/smlnj/working/$v/config.tgz
19 :    
20 :     - Gunzip and untar, e.g.
21 :    
22 :     $ gunzip <config.tgz | tar xf -
23 :    
24 :     This creates a subdirectory "config"
25 :    
26 :     - Edit the "config/targets" file to your taste. If you leave this
27 :     file alone, you end up with a minimal installation.
28 :    
29 :     - Run the installer, it will automatically fetch all other necessary
30 :     tarballs:
31 :    
32 :     $ config/install.sh
33 :    
34 :     If the installer complains about not being able to fetch those
35 :     tarballs, try step 2.1.
36 :    
37 :     2. If you have a bit more time...
38 :     ---------------------------------
39 :    
40 :     2.1. If you do not have network connectivity...
41 :     -------------------------------------------------
42 :    
43 :     - Use some other means of downloading the necessary tarballs. Store
44 :     them in directory $d. Then run the installer (config/install.sh).
45 :    
46 :     Here is table that shows which packages you will need to download
47 :     depending on what you select in config/targets. Take the union of
48 :     all the packages corresponding to your selection. Don't forget to
49 :     include the "(always)" entry. (<arch> and <os> should match your
50 :     host system.)
51 :    
52 :     Make sure you satisfy the "requires" dependencies when you make your
53 :     selection in config/targets. (Actually, you need to satisfy these
54 :     requirements even if you do have network connectivity. But you
55 :     said you were in a hurry... Future versions of the installer
56 :     might be enhanced so that dependencies are satisfied automatically.)
57 :    
58 :     if you select... | ... you need
59 :     ---------------------------------------------------------------
60 :     (always) | boot.<arch>-<os>.tgz
61 :     | runtime.tgz
62 :     |
63 :     src-smlnj | MLRISC.tgz
64 :     | cm.tgz
65 :     | compiler.tgz
66 :     | smlnj-lib.tgz
67 :     | ml-yacc.tgz
68 :     | system.tgz
69 :     |
70 :     ml-yacc | ml-yacc.tgz
71 :     |
72 :     ml-lex | ml-lex.tgz
73 :     |
74 :     ml-burg | ml-burg.tgz
75 :     requires: ml-lex |
76 :     |
77 :     smlnj-lib | smlnj-lib.tgz
78 :     |
79 :     pgraph-util | cm.tgz
80 :     |
81 :     cml | cml.tgz
82 :     requires: smlnj-lib |
83 :     |
84 :     cml-lib | cml.tgz
85 :     |
86 :     eXene | eXene.tgz
87 :     requires: cml, cml-lib |
88 :     |
89 :     ckit | ckit.tgz
90 :     |
91 :     ml-nlffi-lib | ml-nlffi-lib.tgz
92 :     |
93 :     ml-nlffigen | ml-nlffigen.tgz
94 :     requires: smlnj-lib, |
95 :     ckit |
96 :     |
97 :     mlrisc-tools | MLRISC.tgz
98 :     |
99 :     nowhere |
100 :     requires: mlrisc-tools |
101 :     |
102 :     doc | - (currently unavailable)
103 :    
104 :     2.2. Tweaking "preloads"...
105 :     ----------------------------
106 :    
107 :     - Before running the installer (but after unpacking the config
108 :     directory), you can customize the set of libraries that are
109 :     pre-loaded (either directly or via CM's "autoload" mechanism).
110 :    
111 :     For this, edit config/preloads before running config/install.sh.
112 :    
113 :     2.3. Using a different ftp server (for a step-1.-like installation)
114 :     --------------------------------------------------------------------
115 :    
116 :     - If you have a local mirror for ftp.research.bell-labs.com/dist/smlnj,
117 :     then you can speed up installation by pointing the automatic URL
118 :     fetch mechanism there. The URL of the repository is stored in
119 :     config/srcarchiveurl. Edit this file before running config/install.sh.
120 :    
121 :     2.4. Using locally stored tarballs
122 :     -----------------------------------
123 :    
124 :     - This is like step 2.3. -- except the URL in config/srcarchiveurl
125 :     should read something like
126 :    
127 :     file:///usr/src/packages/smlnj/working/110.38
128 :    
129 :     (In other words, the URL should spell out the name of the local
130 :     directory that happens to contain the tarballs.)
131 :    
132 :     2.5. What needs to be on my PATH?
133 :     ----------------------------------
134 :    
135 :     - You should include $d/bin into your PATH.
136 :    
137 :     2.6. Which of all those files do I really need?
138 :     ------------------------------------------------
139 :    
140 :     After the installer completes, directory $d will be full of files
141 :     and subdirectories. Not all of them are actually required if you want
142 :     to use the system.
143 :    
144 :     In particular, if you are not interested in any of the source code,
145 :     you can DELETE EVERYTHING EXCEPT:
146 :    
147 :     $d/bin
148 :     $d/lib
149 :    
150 :     2.7. Can I move files to another directory after the fact?
151 :     -----------------------------------------------------------
152 :    
153 :     Yes. But this requires two small tweaks (points 2. and 3. below).
154 :    
155 :     Here is the procedure:
156 :    
157 :     Suppose you have installed everything under $d and now you want to
158 :     move things to some other directory $e (e.g., e=/usr/share/smlnj):
159 :    
160 :     1. Move (at least) $d/bin and $d/lib to $e:
161 :    
162 :     $ mv $d/{bin,lib} $e
163 :    
164 :     2. Edit $e/bin/.run-sml and change the value of
165 :     the variable BIN_DIR to (the value of) $e/bin.
166 :     (If e=/usr/share/smlnj, then the value would have to be
167 :     /usr/share/smlnj/bin.)
168 :    
169 :     3. Before running the "sml" command, set the environment variable
170 :     CM_PATHCONFIG to $e/lib. You could do this globally, either
171 :     in a system-wide .profile or even by adding a line, e.g.,
172 :    
173 :     export CM_PATHCONFIG=/usr/share/smlnj/lib
174 :    
175 :     to $e/bin/.run-sml.
176 :    
177 :     Alternatively, each user who wants to run "sml" could set the
178 :     variable by him/herself.
179 :    
180 :     2.8 Forcing the installer to use a particular URL getter program
181 :     ----------------------------------------------------------------
182 :    
183 :     By default, config/install.sh will attempt to use wget, curl, and lynx
184 :     (in that order). If you already know which of these programs you want
185 :     the installer to use, then set the environment variable URLGETTER
186 :     to "wget", "curl", or "lynx", respectively.
187 :    
188 :     You can also set URLGETTER to any other command "foo" as long as
189 :     it can be invoked as
190 :    
191 :     $ foo <source> <destination>
192 :    
193 :     where <source> is the URL you want to fetch and <destination> is
194 :     the file name where the result will be stored.
195 :    
196 :     3. Troubleshooting:
197 :     -------------------
198 :    
199 :     3.1. You think you have network connectivity, but the installer fails
200 :     ---------------------------------------------------------------------
201 :    
202 :     - You probably do not have any of the following commands available
203 :     on your system: wget, lynx, curl.
204 :    
205 :     Failsafe remedy: Proceed according to step 2.1., using whatever
206 :     other FTP client you have.
207 :    
208 :     Alternative remedy: If you have some other command-line tool to
209 :     fetch URLs, make a wrapper for it (if necessary) so that it can
210 :     be invoked with precisely two arguments: <srcurl> and <dst>.
211 :     Then set the environment variable URLGETTER to the name of this
212 :     (wrapped) tool and try running the installer.
213 :    
214 :     Example: Suppose you don't have wget but a wget-lookalike named
215 :     "xget". You could then make a shell script that wraps xget, e.g.
216 :     using a shell script "myxget" consisting of the single line:
217 :    
218 :     exec xget -nv -O $2 $1
219 :    
220 :     Once you have myxget, simply run:
221 :    
222 :     URLGETTER=myxget config/install.sh

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0