home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume38 / lude / part00 < prev    next >
Encoding:
Text File  |  1993-07-11  |  12.7 KB  |  332 lines

  1. Newsgroups: comp.sources.misc
  2. From: laplante@crim.ca (Pierre Laplante)
  3. Subject: v38i032:  lude - A Distributed Software Library, Part00/12
  4. Message-ID: <csm-v38i032=lude.171419@sparky.Sterling.COM>
  5. X-Md4-Signature: 526d65e2aa0bed52eb080eb9f00e3a85
  6. Sender: kent@sparky.imd.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Sun, 11 Jul 1993 22:14:59 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: laplante@crim.ca (Pierre Laplante)
  12. Posting-number: Volume 38, Issue 32
  13. Archive-name: lude/part00
  14. Environment: UNIX
  15.  
  16. Numerous software packages are being used and updated regularly on most 
  17. computer systems. Installing all these software packages is a formidable
  18. task because each one has a different procedure for compiling or for
  19. placing the files required at run time. This limits the number of
  20. packages that a single system administrator can maintain. Moreover, it
  21. is difficult to organize software servers such that:
  22.  
  23.   - heterogeneous systems can be served.
  24.  
  25.   - each disk server can decide, on a package per package basis, if it wants a
  26.     network access or a local copy of the executables
  27.     and/or source code.
  28.  
  29.   - users can access new software packages without editing their
  30.     configuration files (.login .cshrc).
  31.  
  32.   - more than one version of a given package can coexist during transitions.
  33.  
  34.   - each software package is kept in a separate subtree to ease the
  35.     management of disk space and prevent name conflicts.
  36.  
  37.   - all the documentation is easily accessible through a single
  38.     user interface.
  39.  
  40.  
  41. The LUDE (Logitheque Universitaire Distribuee et Extensible) software
  42. library is a joint project of the Computer Science and Operational Research
  43. Department of Universite de Montreal, of the Electrical and Computer
  44. Engineering Department of Ecole Polytechnique de Montreal
  45. and of the Centre de recherche informatique de Montreal.
  46. The LUDE project was initiated in December 1991 to address the above
  47. mentioned goals. LUDE is an organization for installing software
  48. packages, a set of tools to install and uninstall software packages
  49. and browse their documentation, and a number of FTP servers offering
  50. over 100 pre-installed freely available software packages.
  51.  
  52. The LUDE software library enables a large number of sites to pool the
  53. software packages compiled by their system administrators. Each computer
  54. can act as a client and/or a server as it desires. A client only needs a
  55. network connection to a LUDE server (such as the Internet). A server
  56. needs to install software packages as described in the Lude documentation 
  57. and to export them through NFS (Network File System) or FTP (File Transfer
  58. Protocol). A client may represent a more or less heavy load for a server:
  59.  
  60.   - A client takes a complete copy whenever a new package is available and
  61.     remains autonomous thereafter. This represents a light load and can be
  62.     performed between distant sites.
  63.  
  64.   - A client takes a copy of the install and run subtrees and
  65.     maintains a symbolic link to the source code on the server. If access to
  66.     the source code is relatively infrequent, this is not a very heavy load
  67.     either.
  68.  
  69.   - A client only keeps symbolic links to the server 
  70.     for the source code as well as the run time for most 
  71.     software packages. Thus, each time one such package is
  72.     accessed, the server is involved. This is only acceptable if the client
  73.     and server are very close, on the same network and in the same
  74.     organization.
  75.  
  76. Typically, a multi-level client server organization will be found:
  77.  
  78.   - Public servers allow clients from around the world to take copies of
  79.     their packages through FTP. Some usage restrictions may apply if
  80.     the load is too high on these servers.
  81.  
  82.   - Departmental servers regularly interact with public servers to keep a
  83.     large set of up to date packages. Departmental clients may then use these
  84.     packages either by taking a copy or even through symbolic links for the
  85.     infrequently used packages. In some cases, a departmental server can also
  86.     be a public server.
  87.  
  88.   - A local server takes a copy of frequently used packages from the
  89.     departmental server and perhaps keeps symbolic links for other packages.
  90.     The source code for these packages is normally accessed through a
  91.     symbolic link to the departmental server or to a nearby consenting
  92.     public server.
  93.  
  94.   - Individual workstations may simply mount /usr/local from the
  95.     laboratory server.
  96.  
  97.   - Notebook computers copy packages according to their upcoming needs for
  98.     standalone, nomadic,  operation.
  99.  
  100.  
  101. In order to make the servers directly accessible to the lude tools, the 
  102. /usr/local/server directory must lead to the /usr/local/soft
  103. directories on the reachable servers. This is conveniently achieved
  104. through automount (amd-5.2) and NFS. For instance, one could have:
  105.  
  106. % ls /usr/local/server
  107. lude-poly                  lude-iro1            lude-crim
  108. % ls /usr/local/server/lude-poly
  109. amd-5.2                ghostscript-2.4.1
  110. andrew-5.1             ghostview-1.2         
  111. dig.2.0                less-177          
  112. emacs-18.58            libg++-2.0  
  113. emacs-19.0             lude-1.0
  114. find-3.5               modula3-2.11
  115. gcc-2.1                
  116.  
  117.  
  118. Some coordination is required between the different lude servers.
  119. Indeed, the same class names must be used to characterize the
  120. architecture and operating system of the computers. Similarly, when
  121. many packages use the same information (fonts, emacs macros), 
  122. the location in /usr/local must be agreed upon.
  123.  
  124. Mailing lists have been created for this purpose. Eventually they may
  125. be replaced by Usenet newsgroups.
  126.  
  127. lude@iro.umontreal.ca: discussion and announcements on lude.
  128.  
  129. lude-request@iro.umontreal.ca: requests to be added or removed
  130.  
  131. lude-bugs@iro.umontreal.ca: problems encountered using the tools
  132.                             associated with lude.
  133.  
  134.  
  135. Each software package has a unique name consisting of its name and 
  136. version number (for instance emacs-18.58). However, several 
  137. modifications (or minor versions) may exist for a package; 
  138. these usually represent minor modifications to
  139. the original source code (for instance in the Makefile). Most often, 
  140. a single modification is needed and is named after the person or 
  141. the site performing the compilation. Sometimes, a second 
  142. modification exists which brings locally developed
  143. new functionality, such as the modifications poly-plain and
  144. poly-8bit for standard emacs versus one that accepts
  145. accentuated characters.
  146.  
  147. The compiled binaries for a software package will differ according to the
  148. target architecture and operating system. The two together form the
  149. class of the target system. The following classes have been
  150. registered up to now. It is important that the same names be used
  151. throughout the various LUDE software libraries on connected servers.
  152.  
  153.   - linux0.99.10_386
  154.  
  155.   - sun3.5_68020
  156.  
  157.   - sun3.5_68010
  158.  
  159.   - sun4.1_sparc
  160.  
  161.   - sol2.1_sparc
  162.  
  163.   - vax4.3_vax
  164.  
  165.   - ultrix2.1_uvax
  166.  
  167.   - ultrix4.1_mips
  168.  
  169.   - dec2.1_alpha
  170.  
  171.   - hp8.0_s200
  172.  
  173.   - hp8.0_s800
  174.  
  175.   - ibm3.1_rs6000
  176.  
  177.   - sgi4.0_mips
  178.  
  179.  
  180. The proposed organization can be used on most operating systems that
  181. offer tree-structured file systems and symbolic links. The utilities
  182. that come along with LUDE require the Perl interpreter (available on
  183. most platforms) and the system commands tar, date, hostname/uname 
  184. and domainname.
  185.  
  186. To install LUDE, one needs access to the /usr/local directory,
  187. and bin, lib, include, man, info, doc, soft and server sub-directories
  188. must exist. A new sub-directory under /usr/local/soft will be created
  189. for each software package installed.
  190.  
  191. To start, the LUDE utilities and the Perl interpreter must be retrieved.
  192. The following FTP servers are accessible on the Internet:
  193. ftp.crim.ca, ftp.iro.umontreal.ca and ftp.vlsi.polymtl.ca. With FTP, 
  194. it is often easier to retrieve the complete subtree for a package 
  195. and then remove the unwanted binaries (for architectures not 
  196. used at your site).
  197.  
  198. Here is how to proceed for installing lude and perl:
  199.  
  200. % cd /usr/local/soft
  201. % ftp ftp.crim.ca
  202. Connected to Clouso.CRIM.CA.
  203. 220 clouso FTP server (Version 2.0WU(3) Mon Apr 12 22:48:26 EDT 1993) ready.
  204. Name (ftp.crim.ca:dagenais): ftp
  205. 331 Guest login ok, send e-mail address as password.
  206. Password:
  207. 230-
  208. 230-This ftp daemon support tar and compress.
  209. 230-To get a directory, append ".tar" to the name of the directory.
  210. 230-To get a compress version, append ".Z" to the name of the directory or file.
  211. 230-
  212. 230-
  213. 230 Guest login ok, access restrictions apply.
  214. ftp> cd lude-crim
  215. 250 CWD command successful.
  216. ftp> binary
  217. 200 Type set to I.
  218. ftp> ls
  219. 200 PORT command successful.
  220. 150 Opening ASCII mode data connection for file list.
  221. X11R5
  222. TeX-3.141
  223. xrolo-v2p6
  224. procmail-2.7
  225. et3.0-alpha.1
  226. lucid-19.3
  227. hyperbole-3.04
  228. wafe-0.92
  229. cvswrapper-0.9
  230. xntp-3.0
  231. bibview-1.4
  232. etgdb
  233. perl-4.035
  234. lude-1.1
  235. 226 Transfer complete.
  236. 859 bytes received in 0.3 seconds (2.8 Kbytes/s)
  237. ftp> get lude-1.1.tar.Z
  238. 200 PORT command successful.
  239. 150 Opening BINARY mode data connection for /bin/tar.
  240. 226 Transfer complete.
  241. local: lude-1.1.tar.Z remote: lude-1.1.tar.Z
  242. ftp> get perl-4.035.tar.Z
  243. 200 PORT command successful.
  244. 150 Opening BINARY mode data connection for /bin/tar.
  245. 226 Transfer complete.
  246. local: perl-4.035.tar.Z remote: perl-4.035.tar.Z
  247. ftp> quit
  248. 221 Goodbye.
  249.  
  250. % zcat lude-1.1.tar.Z | tar xf -
  251. % rm lude-1.1.tar.Z
  252. % zcat perl-4.035.tar.Z | tar xf -
  253. % rm perl-4.035.tar.Z
  254. % sh
  255. $ PERL=/usr/local/soft/perl-4.035/run/poly/sun4.1_sparc/bin/perl
  256. $ cd /usr/local/soft/lude-1.1/run/poly_eng/sun4.1_sparc/bin
  257. $ $PERL lude -sof perl-4.035 -mod poly -cl sun4.1_sparc -link
  258. $ ./lude -sof lude-1.1 -mod poly -class sun4.1_sparc -link
  259. $ exit
  260. %
  261.  
  262.  
  263. Then, any other software package is easily installed. Suppose that you
  264. also downloaded modula3-2.11.tar.Z in /usr/local/soft using FTP. 
  265. The following commands are now sufficient to install it.
  266.  
  267. % zcat modula3-2.11.tar.Z | tar xf -
  268. % rm modula3-2.11.tar.Z
  269. % lude -sof modula3-2.11 -mod poly -class sun4.1_sparc -link
  270.  
  271.  
  272. However, if lude or perl are not available for your
  273. architecture, their README files should explain how they can be
  274. compiled and installed.
  275.  
  276. Each software package is placed in its own subtree. Moreover, every
  277. version of a software package is treated as a different package with its
  278. own subtree. The unique name of a package is then formed by the
  279. concatenation of its name and version number (e.g. emacs-18.58,
  280. modula3-2.11). This enables more than one version of the same software
  281. to coexist peacefully during transitions and simplifies the management
  282. of disk space since each package is kept separate.
  283.  
  284. Inside the subtree, three subdirectories are present src,
  285. run and install, as well as a file, history, which traces where 
  286. this package was copied from.
  287.  
  288.                               Software-Version
  289.        ______________________________|____________________
  290.       /                    |                 |            \
  291.      src                  run             history       install
  292.    ___|___         ________|____                        ___|___
  293.   /   |   \       /         |   \                      /   |   \    
  294. orig mod  ...   share      mod  ...                  orig mod  ...
  295.                 _|_        _|_____________           ______|______
  296.                /   \      /           |   \         /             \
  297.              man  ... `class`       share ...   `class`           ...
  298.             ______________|____      _|_           |               |
  299.            /   |   |   |   |   \    /   \          |               |
  300.           bin man lib etc info ... man  ...     mapping         mapping
  301.  
  302.  
  303. The lude tools are used to create this file hierarchy, to install
  304. symbolic links in the standard directories (/usr/local/bin, lib...)
  305. and to make the associated documentation available via World Wide Web
  306. and WAIS document browsing servers.
  307.  
  308. Each installed software package has an associated summary under the
  309. Internet Anonymous FTP Archive format (IAFA-PACKAGES). Moreover,
  310. man pages, info files and miscellaneous files in the doc subdirectory
  311. of a package are recognized by the documentation indexing tool.
  312. Portions of this documentation (synopsis of man pages, IAFA-PACKAGES
  313. files...) is indexed through the Wide Area Information System (WAIS)
  314. and all these files are linked to form a World Wide Web hypertext
  315. document. Thus, it permits keyword searches to find relevant
  316. software packages, and easy hypertext navigation through
  317. the IAFA-PACKAGES, info, doc and man pages that accompany a 
  318. software package, using a single browsing tool.
  319.  
  320.     The LUDE tools and associated documentation are freely redistributable
  321.     under the terms of the GNU General Public License as published by
  322.     the Free Software Foundation; either version 2, or (at your option)
  323.     any later version.
  324.  
  325. Enjoy!
  326.  
  327.        Pierre Laplante; Centre de Recherche Informatique de Montreal
  328.     Stephane Boucher, Michel Dagenais: Ecole Polytechnique de Montreal
  329.         Robert Gerin-Lajoie, Pierre Mailhot: Universite de Montreal
  330.  
  331. exit 0 # Just in case...
  332.