Installing a UNIX-like Enviroment
This short guide is intended to get your software up and running fast
and to prevent you from having to read a lot of documentation files for
programs you maybe never will use yourself, but other programs may need.
Most of this software can do a lot for you, but to explore the possibilities
I'd suggest you get a book about Linux/UNIX basics.
1.1 Preparing the drives
Create a UNIX-like directory tree on one partition that is large
enough to hold all unixish stuff. You should do this because some
-especially older- ported programs are not enhanced to know driveletters
and simply won't find files on other drives. If you don't want to do this
or simply don't have enough space on one HDD, you can workaround the problem
by using the Toronto Virtual File System (TVFS). TVFS allows creating virtual
drives and linking directories from other drives into the virtual tree
very similar to the UNIX filesystems. Note however that you will experience
a slight performance hit.
Suggested tree structure:
+--bin/ (executables and shell scripts)
+--doc/ (documentation that's not in the form of man-pages or texinfo files)
+--emx/ (emx+gcc related stuff)
+--etc/ (configuration files and stuff)
| +-userid/ (your HOME directory, on unixish systems named like your login-ID)
| the place user-specific configuration files get stored)
+--include/ (only needed if you're planning to compile something yourself)
+--info/ (documentation in the form of texinfo files)
+--lib/ (DLLs and the like)
+--man/ (the place the man-pages for the man(ual) help system get stored)
| +-man1/ (for man-pages matching the *.1* pattern, e.g. bla.1 or blah.1.gz)
| +-cat1/ (for pre-formatted man-pages which are loaded faster)
+--share/ (things shared by programs, e.g. internationalization support)
+--tmp/ (for temporary files)
1.2 Getting the necessary software
Get the following packages from LEO,
or The Power Users's BBS.
Some GNU software can also be obtained from Jun
Note: Depending on the version of emx you are using (09c or 09d) you will
have to keep an open eye on the packages you choose. Programs that have
been compiled with emx 09d won't work with 09c. Most of the software compiled
with emx09c or older runs on a 09d system. So there is no reason to still
use version 09c, especially if you are developing own programs.
GNU gawk, gettext (only DLL-version needed), grep, groff, fileutils,
findutils, readline (only DLL-version needed), sed, shellutils, textutils
less, man, pdksh
Perl (You can get the latest distribution available via CPAN or http://www.perl.com.
However you may come across older programs relying on the naming convention
of the 5.002b implementation that's available on Hobbes and LEO and easier
to install. If you don't want to fiddle around then you can install both.)
If you're planning to compile things yourself you'll likely need the
If you want to develop software yourself these might be of interest:
emx+gcc plus certain contribs, pgcc
GNU autoconf, gettext (full package), libtool, m4, make, perf, readline
GNU bison, CVS, flex, RCS
2.1 Unpacking and placing the files
Get the free Info-Unzip program and place unzip.exe into a directory that's
in your PATH environment variable. Place all needed emx archives
into one empty temporary directory and issue a unzip * -d x:\
command. All extracted files will be placed into the x:/emx tree.
Create a temporary directory and unzip a package into it (or use your archive
viewer). Doing this seperately for each package will reduce the risk of
overlooking something. Copy or move all files and subdirectories in directories
to their corresponding directory on drive x (e.g. /lib/awk/* into
x:/lib/awk). DLLs should be placed into x:/lib.
In case the archive doesn't contain directories consider the following
patterns. Copy *.exe, *.cmd, *.*sh and any other
shell scripts to x:/bin. Copy *.dll to x:/lib
and *.doc, *.htm*, *.ps, *.tex or *.txt
to x:/doc. Files like *.info and *.texi* go
into x:/info. Put man-pages (e.g. files like *.1 or *.1.gz
or *.1.bz2) into the corresponding subdirectories of x:/man.
Some files or directory trees have to be placed in special directories.
E.g. language dependent messages go into x:/share/locale/<country_code>/LC_MESSAGES
with <country_code> being something like de for German
or en for English. Simply copy *.mo files and rename *.gpo
The recent port of Perl has an own installation program. However, don't
forget to customize the config.pm file and check the environment
variables! (See Perl README.)
Most packages come with the source code or diffs you can apply to the
original source. If you don't want to recompile the packages you can safely
delete the src/ or diffs/ directories.
2.2 Setting the required environment variables
Note: Note the difference between unix-style "/" and OS/2-style "\" path
Add x:\bin and x:\emx\bin to your PATH, x:\lib
and x:\emx\dll to your LIBPATH statement in CONFIG.SYS.
Consider placing x:\bin before bootdrive:\OS2 since OS/2
also has commands like sort and find, but with less functionality
so you will run into problems if some program uses them to process files
Add the following variables to CONFIG.SYS or add the paths
if they already exist. Try copy&paste and replacing x: with
the driveletter you have chosen!
Note: Some programs like e.g. certain commercial compilers may use some
of the variables (LANGUAGE, TEMP, TMPDIR, TMP,
...) and will change them without notice upon installation. So check your
Directory for temporary files:
SET TEMP=anydrive:\TMP (the filesystem on anydrive: must support long filenames!)
SET TMP=anydrive:\TMP (HPFS and ext2fs are a good choice)
SET TMPDIR=anydrive:/TMP (NFS is possible, but will cause problems if the network goes down!)
SET LOCALEDIR=x:/share/locale (add x:/XFree86/lib/X11/locale if you are running XFree86/OS2)
SET GNULOCALEDIR=x:/share/locale (add this if you are using the new ports from Japan)
SET LANGUAGE=<country_code> (e.g. jp for Japan, en for English)
SET AWKPATH=x:/share/awk (or x:/lib/awk)
Copy gawk32.exe (old port) to gawk.exe and awk.exe, or gawk.exe (new port)
to awk.exe. Not everybody uses the AWK variable.
SET AC_PREFIX=x: (your drive)
SET GROFF_TYPESETTER=cp850 (Or cp437 respectively. These devices don't exist in the port from Jun Sawataishi, so choose another!)
SET NROFF=GROFF -Tascii -mandoc (Or -Tlatin1 if your're living in Europe.)
SET MANPATH=x:/man;x:/emx/man (add x:/XFree86/man if you're running XFree86/OS2)
SET PERL5LIB=x:/perl5/lib (only for Perl 5.002b)
SET PERL_BADLANG=0 (for recent Perl ports)
SET PERLLIB_PREFIX=F:/perllib/lib;x:\PERLLIB\LIB (the F: part is hardcoded)
Something about you:
The login-ID is best set to the one you use to access your ISP or email
account, since some programs automatically will use it for these purposes.
SET TERMCAP=x:/emx/etc/termcap.dat (or x:/XFree86/lib/X11/etc/emx.termcap.x11 if you're running XFree86/OS2)
SET EMXOPT=-h512 (this increases the limit of open files, you may want to set it even higher)
SET HELPNDX=EMXBOOK.NDX (settings for the OS/2 online help)
SET INFOPATH=x:/emx/info;x:/info (searchpath for the texinfo documentation system)
SET PAGER=less (something like 'more' or 'less', less has more functionality)
Note: There are some versions of less out there that don't work under XFree86/OS2!
Note: It may be a good idea to set this variable to a PM or VIO program
in CONFIG.SYS and a X program in a special script that sets variables for
use in XFree86/OS2. As far as I know Emacs, ViM and FTE are available in
both PM/VIO and X versions so you can use a familiar user interface.
The following is only needed if you want to compile/port programs with
emx yourself. Also have a look at Alexander
Mai's Porting FAQ.
© 2000, 2001 firstname.lastname@example.org
Well, that's it for now. Now go on and install XFree86/OS2! ;-)
Unless otherwise noted, all content on this site is Copyright © 2004, VOICE