|
Installing USYS
But why USYS?
Can I use my existing MSYS/MinGW/GnuWin32?
At this time, USYS is just wpkg and a copy of
the MSYS basic environment.
First you should download and install the
wpkg tool. That will get you the tool you need to install all the
.deb packages. Assuming that you do not have anything more than
MS-Windows, download the following and put it in any folder:
unzip.exe
wpkg_0.5_win32-i386.zip
Decompress the wpkg tool and its documentation
from an MS-DOS console with the following commands:
cd <path to wpkg_0.5_win32-i386.zip>
unzip wpkg_0.5_win32-i386.zip
Now download the MSYS debian
package(1) and
put it under the newly extracted bin directory and type the
following commands in your still open console:
cd bin
wpkg --install msys_1.0.11_win32-i386.deb
After this one command, you will have
a valid USYS installation. You can now start your new Unix
environment under MS-Windows by double clicking
msys.bat in the root directory or on
rxvt in the /bin directory.
Make sure you have the right PATH
environment variable so you can access your new tools.
This is done with the following command inside the
shell you just opened:
export PATH=/mingw/bin:/bin
Of course, feel free to include a path to
C:\WinNT\System32 and other MS-Windows directories
(but do not add some other versions of MSYS/MinGW/GnuWin32!) And
you can always make use of your .profile or .bashrc files, but
that may require a global HOME variable which you cannot easilly
change (i.e. you can have only one global HOME for Cygwin, MSYS,
USYS... but you can change it in the msys.bat to your liking and
maybe I will have a post process to automate that at some point!)
From there on, any .deb package compatible with
USYS can be installed with the wpkg.exe tool (see
Installing a package.)
Note that you can install any package from anywhere, the wpkg tool assumes
it is installed under /bin and considers / as being the root. Everything
will always be installed under that root path (if not, that's a bug in wpkg!)
Thus, you can be in any folder to run wpkg as long as it is in your path or
you use the full path to the tool.
(1) The following is the list of files
present in the debian package msys_1.0.11_win32-i386.deb.
MSYS-1.0.11-2004.04.30-1.exe Base
MSYS-1.0.11-20060807.tar.bz2 Fixes
tar-1.13.19-MSYS-2005.06.08.tar.bz2 Fixes
At first, I would like to transform many of the
packages I need to .deb packages. This will very much simplify their
installation in this Unix like environment and thus help me in building
Made to Order Software Corporation
products.
Second, it will be to have my own version of the
gcc suite in order to get the library libusys.a (still to be created!)
to auto-link with the different software I build under USYS.
This library will offer support to ease the porting of projects to
MS-Windows by offering the POSIX API of what is directly available
under MS-Windows (at this time, the most problematic function is
fork(), most others are relatively simple to implement and some
already are available such as the pthread API from
RedHat.)
For instance, USYS will transform the
fopen() call in two ways:
- The mode will always be forced to binary like under Linux
(and most other Unices)
- If the file being opened is a (soft-)link, then the target will
be opened instead.
Some of that functionality is currently available under MSYS, but not
under GnuWin32. Also, MSYS makes heavy use of Cygwin source files
and thus it cannot directly be used in a commercial project.
Yes.
However, I suggest you be more careful in that
case since you may start mixing up packages you installed with wpkg
and packages you just uncompress in your environment. You may not be
able to install some packages because some files already exist. And
files which get modified cannot be removed without the --force flag
and you could end up with packages incompatible between each others.
This being said, for a little while, it is very
likely that you won't be able to find a .deb for a package you need.
In that case you will have to install it from its .zip or whatever
other archive currently available. The problem here is: you won't
be able to uninstall it without going through hoops.
|