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

SCM Repository

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

Diff of /sml/trunk/INSTALL

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1047, Tue Jan 29 21:31:50 2002 UTC revision 1385, Fri Sep 19 20:55:21 2003 UTC
# Line 1  Line 1 
1  Installation instructions for SML/NJ  Installation instructions for SML/NJ
2  ------------------------------------  ------------------------------------
3    
4  These are instructions for installing recent "working" versions of SML/NJ.  These are instructions for installing recent "working" versions of SML/NJ
5    on Unix-like systems, including MacOX X with the developer tools installed.
6    
7    If you are running MacOS X but don't have the developer tools, you can
8    install the system starting from the disk image that we provide.  See
9    MACOSXINSTALL for details.
10    
11    If you are running Win32, see WININSTALL.
12    
13  1. If you are in a hurry (and you have network connectivity) ...  1. If you are in a hurry (and you have network connectivity) ...
14  ----------------------------------------------------------------  ----------------------------------------------------------------
# Line 43  Line 50 
50     - Use some other means of downloading the necessary tarballs.  Store     - Use some other means of downloading the necessary tarballs.  Store
51       them in directory $d.  Then run the installer (config/install.sh).       them in directory $d.  Then run the installer (config/install.sh).
52    
53       Here is table that shows which packages you will need to download       Here is a table that shows which packages you will need to download
54       depending on what you select in config/targets.  Take the union of       depending on what you select in config/targets.  Take the union of
55       all the packages corresponding to your selection.  Don't forget to       all the packages corresponding to your selection.  Don't forget to
56       include the "(always)" entry.  (<arch> and <os> should match your       include the "(always)" entry.  (<arch> and <os> should match your
57       host system.)       host system.)
58    
59       Make sure you satisfy the "requires" dependencies when you make your       Keep in mind that making selections in config/targets there are
60       selection in config/targets.  (Actually, you need to satisfy these       dependencies between packages.  For example, eXene requires cml
61       requirements even if you do have network connectivity.  But you       and cml-lib.  The installer script "knows" about these dependencies
62       said you were in a hurry...  Future versions of the installer       and will automatically calculate the transitive closure of the
63       might be enhanced so that dependencies are satisfied automatically.)       "requires" relation for you.  Still, if you do not have network
64         connectivity, then you should have downloaded tarballs for the
65         entire transitive closure.  (If you didn't, the installer will
66         kindly remind you.)
67    
68            if you select...         |    ... you need            if you select...         |    ... you need
69        ---------------------------------------------------------------        ---------------------------------------------------------------
# Line 116  Line 126 
126      - If you have a local mirror for ftp.research.bell-labs.com/dist/smlnj,      - If you have a local mirror for ftp.research.bell-labs.com/dist/smlnj,
127        then you can speed up installation by pointing the automatic URL        then you can speed up installation by pointing the automatic URL
128        fetch mechanism there.  The URL of the repository is stored in        fetch mechanism there.  The URL of the repository is stored in
129        config/srcarchiveurl.  Edit this file before running config/install.sh.        config/srcarchiveurl.  Edit this file before running
130          config/install.sh.
131    
132     2.4.  Using locally stored tarballs     2.4.  Using locally stored tarballs
133     -----------------------------------     -----------------------------------
# Line 127  Line 138 
138            file:///usr/src/packages/smlnj/working/110.38            file:///usr/src/packages/smlnj/working/110.38
139    
140        (In other words, the URL should spell out the name of the local        (In other words, the URL should spell out the name of the local
141        directory that happens to contain the tarballs.)        directory that happens to contain the tarballs.  Notice that
142          this method does not seem to work with certain versions of wget
143          which do not understand the file:// scheme.)
144    
145     2.5.  What needs to be on my PATH?     2.5.  What needs to be on my PATH?
146     ----------------------------------     ----------------------------------
# Line 150  Line 163 
163     2.7.  Can I move files to another directory after the fact?     2.7.  Can I move files to another directory after the fact?
164     -----------------------------------------------------------     -----------------------------------------------------------
165    
166     Yes.  But this requires two small tweaks (points 2. and 3. below).     Yes.
167    
168     Here is the procedure:     Here is the procedure:
169    
# Line 161  Line 174 
174    
175          $ mv $d/{bin,lib} $e          $ mv $d/{bin,lib} $e
176    
177       2. Edit $e/bin/.run-sml and change the value of       2. Before running the "sml" command, set the environment variable
178          the variable BIN_DIR to (the value of) $e/bin.          SMLNJ_HOME to point to $e:
         (If e=/usr/share/smlnj, then the value would have to be  
         /usr/share/smlnj/bin.)  
   
      3. Before running the "sml" command, set the environment variable  
         CM_PATHCONFIG to $e/lib.  You could do this globally, either  
         in a system-wide .profile or even by adding a line, e.g.,  
   
            export CM_PATHCONFIG=/usr/share/smlnj/lib  
179    
180          to $e/bin/.run-sml.          $ export SMLNJ_HOME=$e
181    
182          Alternatively, each user who wants to run "sml" could set the          If you want to put the contents of $e/lib somewhere else, then
183          variable by him/herself.          point CM_PATHCONFIG to wherever the path configuration file
184            lives.  (The default is $SMLNJ_HOME/lib/pathconfig.)
185    
186            You can also scatter around the contents of $e/lib.  If you do so,
187            you have to edit the path configuration file itself.  See the CM
188            manual for more information on path anchors and path configuration.
189    
190     2.8 Forcing the installer to use a particular URL getter program     2.8 Forcing the installer to use a particular URL getter program
191     ----------------------------------------------------------------     ----------------------------------------------------------------
192    
193     By default, config/install.sh will attempt to use wget, curl, and lynx     By default, config/install.sh will attempt to use wget, curl, and
194     (in that order).  If you already know which of these programs you want     lynx (in that order).  If you already know which of these programs
195     the installer to use, then set the environment variable URLGETTER     you want the installer to use, then set the environment variable
196     to "wget", "curl", or "lynx", respectively.     URLGETTER to "wget", "curl", or "lynx", respectively.
197    
198     You can also set URLGETTER to any other command "foo" as long as     You can also set URLGETTER to any other command "foo" as long as
199     it can be invoked as     it can be invoked as
# Line 193  Line 203 
203     where <source> is the URL you want to fetch and <destination> is     where <source> is the URL you want to fetch and <destination> is
204     the file name where the result will be stored.     the file name where the result will be stored.
205    
206       2.9 Where are those "CM" directories?
207       -------------------------------------
208    
209       CM metadata (source skeletons, compiled files, stable libraries, GUIDs,
210       ...) are now stored under a directory called ".cm".  We changed this
211       from the original "CM" because of name clashes on case-insensitive
212       file systems.  However, SML/NJ itself can work with any (reasonable)
213       choice of name for the metadata directory -- but for consistency the
214       choice has to be made at installation time.
215    
216       To choose a different name for metadata directories, run
217       config/install.sh in the presence of an environment variable
218       CM_DIR_ARC.  For example, if you want to have all these directories
219       be named "FOOBAR", then run the installer (assuming a Bourne-ish
220       shell) as
221    
222          $ CM_DIR_ARC=FOOBAR config/install.sh
223    
224  3. Troubleshooting:  3. Troubleshooting:
225  -------------------  -------------------
226    
# Line 215  Line 243 
243        "xget".  You could then make a shell script that wraps xget, e.g.        "xget".  You could then make a shell script that wraps xget, e.g.
244        using a shell script "myxget" consisting of the single line:        using a shell script "myxget" consisting of the single line:
245    
246            exec xget -nv -O $2 $1           $ exec xget -nv -O $2 $1
247    
248        Once you have myxget, simply run:        Once you have myxget, simply run:
249    
250            URLGETTER=myxget config/install.sh           $ URLGETTER=myxget config/install.sh
251    
252    ----------------------------------------------------------------------------

Legend:
Removed from v.1047  
changed lines
  Added in v.1385

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