[mswin]: mingw64; separate Win7 and WinXP installs

modified:   A-word-on-text-editors.md
	modified:   Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows.md
	new file:   Install-MMGen-and-Its-Dependencies-on-Windows-XP.md
	deleted:    Install-MMGen-on-Microsoft-Windows-pre0.10.md
	modified:   Install-MMGen-on-Microsoft-Windows.md
	new file:   Install-MinGW-64-and-MSYS-on-Microsoft-Windows.md
	deleted:    Install-MinGW-and-MSYS-on-Microsoft-Windows.md
	new file:   Install-MinGW-and-MSYS-on-Windows-XP.md
	new file:   Unix-commands-and-environment.md
philemon 2016-12-02 20:53:14 +03:00
commit 61ce1981da
9 changed files with 324 additions and 224 deletions

@ -1,7 +1,7 @@
The text file editors that come with Windows, “edit” and “notepad”, are
unsuitable for editing files in an MSYS environment for many reasons, but above
all because they can't handle Unix text-file line endings. So it's imperative
you install a Unix-capable text editor such as Nano or Vim.
all because they can't handle Unix line endings. So it's imperative you install
a Unix-capable text editor such as Nano or Vim.
[Nano][00] is an easy-to-use editor designed for less experienced users. It's
available [here][04] as a precompiled Windows binary. Just extract `nano.exe`
@ -16,9 +16,8 @@ After installing Vim, you should add its executable path
`C:\Program Files\Vim\vim80` (this may be different for your version)
to your PATH variable. Editing user paths is explained [here][06].
[06]: Editing-the-user-path-in-Windows
[04x]: http://mingw-and-ndk.googlecode.com/files/win-mingw-nano.7z
[04]: https://www.nano-editor.org/dist/v1.0/NT/nano-1.0.9.zip
[05]: http://www.vim.org/download.php
[00]: http://www.nano-editor.org/
[01]: http://www.vim.org/
[04]: https://www.nano-editor.org/dist/v1.0/NT/nano-1.0.9.zip
[05]: http://www.vim.org/download.php
[06]: Editing-the-user-path-in-Windows

@ -1,83 +1,98 @@
***Warning: the MMGen installation process on Windows is not easy, and the user
experience is less than optimal. You're urged to use the prebuilt
[MMGenLive][20] USB image instead. It's now the preferred way for all non-Linux
users to run MMGen.***
### 1. Install the Python interpreter:
Grab the [Windows 32-bit installer][09] and run it, accepting the defaults.
Add the Python base and Scripts directories to your [path][08], e.g.
`C:\Python27;C:\Python27\Scripts`.
***Warning: though the MMGen installation process on Windows is now easier,
it still requires patience, and the user experience is less than optimal.
You're urged to use the prebuilt [MMGenLive][20] USB image instead. It's now
the preferred way for all non-Linux users to run MMGen.***
### 1. Create the build directory:
Enter your MSYS environment, create the directory `/c/build` and move to it.
Enter your MSYS environment, create the directory `/build` and move to it.
This is where you'll be unpacking and building archives:
$ mkdir /c/build
$ cd /c/build
$ mkdir /build
$ cd /build
If the machine you're installing on is online, you can download the various
tarballs and zipped archives you need from the Internet exactly as described in
the instructions below. If you're offline, you'll need to download them first
on another machine and then transfer them to the install computer using a USB
stick, for example.
In either case, you'll probably be downloading the archives to a folder
somewhere outside the root of your MSYS filesystem. To access it within MSYS,
use `/c/` for drive `C:`, `/d/` for drive `D:` and so forth. A full path to an
archive would thus look something like this:
`/c/my_downloaded_archives/archive_name.tar.gz`.
### 2. Build OpenSSL:
Grab the v1.0.x [tarball][06sc] from openssl.org, unpack and build:
Grab the v1.0.x [tarball][06] from openssl.org, unpack and build:
$ tar.exe -xzf <path to openssl archive>/openssl-1.0.2j.tar.gz
$ tar -xzf <path to openssl archive>/openssl-1.0.2j.tar.gz
$ cd openssl-1.0.2j
$ ./config --openssldir=/usr
$ ./Configure mingw64 --openssldir=/usr
$ make
$ make install
### 3. Build the Scrypt Python module:
The latest scrypt tarball available from [Python][07] at this writing
(scrypt-0.8.0.tar.gz) has missing files and doesn't build, so unless this has
been fixed, you must grab the source from the scrypt repository using mercurial
(you'll have to install mercurial for Windows if it's not installed) and copy it
to your build directory:
(scrypt-0.8.0.tar.gz) has missing files and doesn't build, so grab the latest
[zipfile][07z] from the scrypt source repository, unzip and build:
From Windows:
> hg clone https://bitbucket.org/mhallin/py-scrypt
... copy to c:\build
$ cd /build
$ unzip <path to scrypt archive>/91d194b6a6bd.zip
$ cd mhallin-py-scrypt-91d194b6a6bd
From MSYS:
$ cd /c/build/py-script
Open the file `setup.py` in your text editor. Change the line reading
Open the file `setup.py` in your text editor. Right before the line beginning
with
from setuptools import setup, Extension
to read
from distutils.core import setup, Extension
Right before the line beginning with
scrypt_module = Extension(
add the following lines (with no indentation):
library_dirs = ['c:\msys\lib','c:\windows\system32']
includes = ['c:\msys\include']
library_dirs = [r'c:\mingw64\x86_64-w4-mingw32\lib','/msys/lib']
includes = [r'c:\msys\include']
Save `setup.py`, build and install:
$ python setup.py build --compiler=mingw32
$ python setup.py install
You can ignore the error messages at the end of the build.
Now, to solve a problem with the interpreter not finding the scrypt extension
module, we have to do this little workaround:
module, we have to do this little fixup:
$ cd /c/Python27/lib/site-packages
$ cd /mingw/opt/lib/python2.7/site-packages
$ unzip scrypt*.egg
### 4. Build the pycrypto Python module:
Download the latest pycrypto [tarball][02sc] from the Python website, unpack and build:
Download the latest pycrypto [tarball][02] from the Python website, unpack and build:
$ cd /c/build
$ tar -xzf <path to pycrypto archive>/pycrypto-2.6.1.tar.gz
$ cd pycrypto-2.6.1
Open the file `setup.py` in your text editor. Remove *exactly* four spaces at
the beginning of the line reading
self.__remove_extensions(["CryptoPublicKey._fastmath"])
so that it's now one level of indentation further to the left. Save the file
and exit the editor. Now build and install:
$ python setup.py build --compiler=mingw32
$ python setup.py install
### 5. Install the ecdsa Python module:
Grab the latest python-ecdsa [tarball][03sc], unpack and build:
Grab the latest python-ecdsa [tarball][03], unpack and build:
$ cd /c/build
$ tar -xzf <path to ecdsa archive>/ecdsa-0.13.tar.gz
@ -86,7 +101,7 @@ Grab the latest python-ecdsa [tarball][03sc], unpack and build:
### 7. Install the colorama Python module (optional but recommended):
Grab the colorama [tarball][14sc], unpack and build:
Grab the latest colorama [tarball][14], unpack and build:
$ cd /c/build
$ tar -xzf <path to colorama archive>/colorama-0.3.7.tar.gz
@ -95,39 +110,24 @@ Grab the colorama [tarball][14sc], unpack and build:
### 8. Install MMGen:
Get the [zip archive][10b] from GitHub, unpack and install:
Get the [zip archive][10] of the latest stable version from GitHub, unpack and install:
$ cd /c/build
$ unzip.exe <path to mmgen archive>/stable_mswin.zip
$ cd mmgen-stable_mswin
$ python setup.py build --compiler=mingw32
$ sudo ./setup.py install
If you wish, you may run the MMGen test suite to make sure everything's working:
If you wish, you may run the MMGen test suite to make sure your installation's
working:
$ test/test.py
$ test/test.py -s
[00]: https://www.dlitz.net/software/pycrypto/
[01]: http://www.voidspace.org.uk/python/modules.shtml#pycrypto
[02x]: http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe)
[02]: https://pypi.python.org/pypi/pycrypto
[02sc]: https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
[03]: https://pypi.python.org/pypi/ecdsa
[03sc]: https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz#md5=1f60eda9cb5c46722856db41a3ae6670
[04]: https://pypi.python.org/pypi/bitcoin-python/0.3
[09]: https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi
[08]: Editing-the-user-path-in-Windows
[02]: https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
[03]: https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz#md5=1f60eda9cb5c46722856db41a3ae6670
[06]: https://www.openssl.org/source/openssl-1.0.2j.tar.gz
[07]: https://pypi.python.org/pypi/scrypt/
[07exe]: https://pypi.python.org/packages/b7/4b/b11eac2aa846231ade35f323e7ad5c98f3c5f77c3b6b2ca33e24afe9518c/scrypt-0.8.0.win32-py2.7.exe#md5=db04ef2223c0594e4429698744690d99
[07exe64]: https://pypi.python.org/packages/3e/b8/e09f4f557ce21459a691d8bf3072affac31379941586229f857788b2034a/scrypt-0.8.0.win-amd64-py2.7.exe#md5=f5faeecfcd9be3412a6d10ec2e5a373b
[07sc]: https://pypi.python.org/packages/af/82/44b030646b9de44ba5a5c7e87b0419a4d44318ba18468f5292b9c16737ac/scrypt-0.8.0.tar.gz#md5=0704e59cc3afb3845c27bb3827baeea9
[06sc]: https://www.openssl.org/source/openssl-1.0.2j.tar.gz
[06x]: https://www.openssl.org/source/openssl-1.1.0c.tar.gz
[05]: http://www.openssl.org/source/
[10]: https://github.com/mmgen/mmgen/archive/master.zip
[10b]: https://github.com/mmgen/mmgen/archive/stable_mswin.zip
[11]: http://slproweb.com/download/Win32OpenSSL-1_0_1f.exe
[12]: http://www.openssl.org/related/binaries.html
[13]: Getting-Started-with-MMGen
[14]: https://pypi.python.org/pypi/colorama
[14sc]: https://pypi.python.org/packages/f0/d0/21c6449df0ca9da74859edc40208b3a57df9aca7323118c913e58d442030/colorama-0.3.7.tar.gz#md5=349d2b02618d3d39e5c6aede36fe3c1a
[07z]: https://bitbucket.org/mhallin/py-scrypt/get/91d194b6a6bd.zip
[10]: https://github.com/mmgen/mmgen/archive/stable_mswin.zip
[14]: https://pypi.python.org/packages/f0/d0/21c6449df0ca9da74859edc40208b3a57df9aca7323118c913e58d442030/colorama-0.3.7.tar.gz#md5=349d2b02618d3d39e5c6aede36fe3c1a
[20]: https://github.com/mmgen/MMGenLive

@ -0,0 +1,115 @@
***Warning: the MMGen installation process on Windows is not easy, and the user
experience is less than optimal. You're urged to use the prebuilt
[MMGenLive][20] USB image instead. It's now the preferred way for all non-Linux
users to run MMGen.***
### 1. Install the Python interpreter:
Grab the [Windows 32-bit installer][09] and run it, accepting the defaults.
Add the Python base and Scripts directories to your [path][08], e.g.
`C:\Python27;C:\Python27\Scripts`.
### 1. Create the build directory:
Enter your MSYS environment, create the directory `/c/build` and move to it.
This is where you'll be unpacking and building archives:
$ mkdir /c/build
$ cd /c/build
### 2. Build OpenSSL:
Grab the v1.0.x [tarball][06] from openssl.org, unpack and build:
$ tar.exe -xzf <path to openssl archive>/openssl-1.0.2j.tar.gz
$ cd openssl-1.0.2j
$ ./config --openssldir=/usr
$ make
$ make install
### 3. Build the Scrypt Python module:
The latest scrypt tarball available from [Python][07] at this writing
(scrypt-0.8.0.tar.gz) has missing files and doesn't build, so grab the latest
[source zipfile][07z] from the scrypt repository, unzip and build:
$ cd /build
$ unzip <path to scrypt archive>/91d194b6a6bd.zip
$ cd mhallin-py-scrypt-91d194b6a6bd
Open the file `setup.py` in your text editor. Right before the line beginning
with
scrypt_module = Extension(
add the following lines (with no indentation):
library_dirs = [r'c:\msys\lib',r'c:\windows\system32']
includes = [r'c:\msys\include']
Save `setup.py`, build and install:
$ python setup.py build --compiler=mingw32
$ python setup.py install
You can ignore the error messages at the end of the build.
Now, to solve a problem with the interpreter not finding the scrypt extension
module, we have to do this little workaround:
$ cd /c/Python27/lib/site-packages
$ unzip scrypt*.egg
### 4. Build the pycrypto Python module:
Download the latest pycrypto [tarball][02] from the Python website, unpack and build:
$ cd /c/build
$ tar -xzf <path to pycrypto archive>/pycrypto-2.6.1.tar.gz
$ cd pycrypto-2.6.1
$ python setup.py build --compiler=mingw32
$ python setup.py install
### 5. Install the ecdsa Python module:
Grab the latest python-ecdsa [tarball][03], unpack and build:
$ cd /c/build
$ tar -xzf <path to ecdsa archive>/ecdsa-0.13.tar.gz
$ cd ecdsa-0.13
$ python setup.py install
### 7. Install the colorama Python module (optional but recommended):
Grab the colorama [tarball][14], unpack and build:
$ cd /c/build
$ tar -xzf <path to colorama archive>/colorama-0.3.7.tar.gz
$ cd /c/colorama-0.3.7
$ python setup.py install
### 8. Install MMGen:
Get the [zip archive][10] from GitHub, unpack and install:
$ cd /c/build
$ unzip.exe <path to mmgen archive>/stable_mswin.zip
$ cd mmgen-stable_mswin
$ python setup.py build --compiler=mingw32
$ python setup.py install
If you wish, you may run the MMGen test suite to make sure everything's working:
$ test/test.py
[02]: https://pypi.python.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
[03]: https://pypi.python.org/packages/f9/e5/99ebb176e47f150ac115ffeda5fedb6a3dbb3c00c74a59fd84ddf12f5857/ecdsa-0.13.tar.gz#md5=1f60eda9cb5c46722856db41a3ae6670
[06]: https://www.openssl.org/source/openssl-1.0.2j.tar.gz
[07]: https://pypi.python.org/pypi/scrypt/
[07z]: https://bitbucket.org/mhallin/py-scrypt/get/91d194b6a6bd.zip
[08]: Editing-the-user-path-in-Windows
[09]: https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi
[10]: https://github.com/mmgen/mmgen/archive/stable_mswin.zip
[13]: Getting-Started-with-MMGen
[14]: https://pypi.python.org/packages/f0/d0/21c6449df0ca9da74859edc40208b3a57df9aca7323118c913e58d442030/colorama-0.3.7.tar.gz#md5=349d2b02618d3d39e5c6aede36fe3c1a
[20]: https://github.com/mmgen/MMGenLive

@ -1,50 +0,0 @@
Installing MMGen on Windows can be divided into four steps:
> 1. [Install MinGW and MSYS][01], if you haven't already;
> 2. [Install MMGen's dependencies (excluding the bitcoin daemons) and
> MMGen itself][02];
> 3. [Install the offline bitcoin daemon (bitcoind)][07]; and
> 4. [Build the online "watch-only" bitcoin daemon][03].
Steps 1 and 2 are somewhat lengthy but straightforward. You may proceed
directly to them by following the links above and then returning to this page.
If you've finished step 2, then you may pause the installation process if you
wish and begin exploring some of MMGen's features as described in [**Getting
Started with MMGen**][08]. To be able to track addresses and create
transactions, however, you must install the bitcoin daemons on your online and
offline machines as described in steps 3 and 4.
The bitcoind on the **offline machine** is used solely to sign transactions and
runs without a blockchain. Therefore, it will run just fine even on a
low-powered computer such as a netbook. Installing it is easy. Just follow the
link on item 3 above.
The **online machine** uses a custom "watch-only" bitcoin daemon to import and
track addresses and maintain the complete blockchain. These are CPU-intensive
tasks which require a more powerful computer. You'll also need plenty of free
disk space for the rapidly growing blockchain (~20GB at the time of writing).
The watch-only bitcoind is still new and hasn't yet been included in the stock
Bitcoin distribution. Therefore, it must be compiled from source code. On
Windows, this process involves some additional work: compiling and installing
libraries on which bitcoind depends and making some simple edits to source code
and configuration files.
Detailed, step-by-step instructions for installing and building each component
and dependency have been provided to make this process go as smoothly as
possible. The instructions have been thoroughly tested on the author's build
machine running 32-bit Windows XP. The target computer is not required to have
an Internet connection.
Be advised that compiling bitcoind on Windows requires some time and patience.
If you're ready to proceed, first read [**A word on text editors**][09] and
install a Unix-capable text editor if you haven't yet done so; then follow the
link on item 4 above to begin the build process.
[01]: Install-MinGW-and-MSYS-on-Microsoft-Windows
[02]: Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows
[03]: Build-Bitcoind-on-Microsoft-Windows
[07]: Install-the-Offline-Bitcoind
[08]: Getting-Started-with-MMGen
[09]: A-word-on-text-editors

@ -1,20 +1,21 @@
***Warning: the MMGen installation process on Windows is not easy, and the user
experience is less than optimal. You're urged to use the prebuilt
[MMGenLive][00] USB image instead. It's now the preferred way for all non-Linux
users to run MMGen.***
***Warning: though the MMGen installation process on Windows is now easier,
it still requires patience, and the user experience is less than optimal.
You're urged to use the prebuilt [MMGenLive][20] USB image instead. It's now
the preferred way for all non-Linux users to run MMGen.***
Install MMGen on Windows by completing the following three steps:
> 1. [Install MinGW and MSYS][01], if you haven't already;
> 2. [Install MMGen's dependencies (excluding the bitcoin daemons) and
> MMGen itself][02]; and
> 3. [Install the offline and online bitcoin daemons (bitcoind)][07].
>> 1. Install MinGW and MSYS ([WinXP][03]|[>=Win7][01]), if you haven't already;
>> 2. Install MMGen's dependencies (excluding the bitcoin daemons) and MMGen itself ([WinXP][04]|[>=Win7][02]); and
>> 3. [Install the offline and online bitcoin daemons (bitcoind)][07].
Congratulations, your MMGen installation is now complete! Now you can
proceed to [**Getting Started with MMGen**][08].
[01]: Install-MinGW-and-MSYS-on-Microsoft-Windows
[01]: Install-MinGW-64-and-MSYS-on-Microsoft-Windows
[02]: Install-MMGen-and-Its-Dependencies-on-Microsoft-Windows
[03]: Install-MinGW-and-MSYS-on-Windows-XP
[04]: Install-MMGen-and-Its-Dependencies-on-Windows-XP
[07]: Install-Bitcoind
[08]: Getting-Started-with-MMGen
[00]: https://github.com/mmgen/MMGenLive
[20]: https://github.com/mmgen/MMGenLive

@ -0,0 +1,34 @@
MinGW-64 (Minimal GNU for Windows) provides the gcc compiler and related tools
for compiling source code into Windows binaries. MSYS provides a Unix-like
environment with basic Unix shell commands. MinGW-64 and MSYS were originally
part of the same project and are designed to be used together.
Download the latest [MSYS zip archive][01] and [MinGW-64 7-zip archive][02]
provided by the MinGW-64 team. To unpack the latter you'll need the program
[7-zip][03].
After unzipping both archives to `C:\` (assuming that's the root of your
filesystem), you'll have two new directory trees at `C:\msys` and `C:\mingw64`.
Open Power Shell and launch your MSYS environment with the command
`C:\msys\bin\bash.exe --login`. You'll now be in the home directory of your
MSYS environment.
To avoid having to type this command by hand each time you enter MSYS, you're
advised to create a launcher icon. Copy the “PowerShell” icon, rename the copy
to “MSYS”, right click on the icon, and add the above command to the end of the
existing command line after a space.
Note: At this point you must install a [text editor][00] before continuing
with your installation.
Using your text editor within MSYS, create the file `/etc/fstab.conf` with a
single line: `c:/mingw64 /mingw`. Execute the command `mount /mingw`
If you're new to Unix, you're advised to learn [a few basic Unix commands][04].
[00]: A-word-on-text-editors
[01]: https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip
[02]: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/6.2.0/threads-posix/seh/x86_64-6.2.0-release-posix-seh-rt_v5-rev1.7z
[03]: https://sourceforge.net/projects/sevenzip/files/7-Zip/16.04/7z1604-x64.msi
[04]: Unix-commands-and-environment

@ -1,96 +0,0 @@
MinGW (Minimal GNU for Windows) provides the gcc compiler and related tools for
compiling source code into Windows binaries. MSYS provides a Unix-like
environment with basic Unix shell commands. MinGW and MSYS are part of the same
project and are designed to be used together.
Complete hypertexed lists of the required MinGW and MSYS archive files are
provided below for convenient downloading. Save the archives into two separate
temporary directories (`mingw` and `msys`, for example).
These lists were checked and known to work at the time of this writing (November
2016). More recent versions of the files are available in the [MinGW
repository][01], and an auto-installer can be found there as well. However,
these instructions are designed to work on an offline computer, for which the
auto-installer cannot be used.
> * [MinGW archive list][02]
> * [MSYS archive list][03]
Unpack the basic-bsdtar archive (in the MinGW archives) and copy the executable
`basic-bsdtar.exe` to your path (e.g. `C:\windows\system32`).
From the DOS prompt (a.k.a “Power Shell” or “Command Line”), create the two
base directories and move to the first of them:
> mkdir C:\mingw
> mkdir C:\msys
> cd C:\mingw
Unpack all the MinGW archives (except basic-bsdtar) by executing the following
command for each archive:
> basic-bsdtar.exe -xf <path to MinGW archives>/<archive name>
Now move the MSYS base directory:
> cd C:\msys
and unpack each MSYS archive in the same way:
> basic-bsdtar.exe -xf <path to MSYS archives>/<archive name>
Add `C:\mingw\bin` to your user path. Consult [this page][05] for instructions
on how to do that.
Close the command prompt window and open a new one. Launch the MSYS shell with
the command `C:\msys\bin\bash.exe --login`. You'll now be in the home
directory of your MSYS environment.
To avoid having to launch your MSYS shell like this each time, you're advised to
copy the “PowerShell” icon, rename the copy to “MSYS”, right click on the icon,
and add the shell launch command to the end of the command line after a space.
Note: At this point you should install a [text editor][00] before proceeding
further with your installation.
Run the command `mount c:/mingw /mingw` to include your MinGW installation in
the MSYS tree. So you won't have to run this command every time you log in to
MSYS, open the file `/etc/fstab` in your text editor and add the line `c:/mingw
/mingw` (if it's not already there).
#### Unix commands and environment:
If you're new to Unix, you should learn a few key commands:
| Command | Action |
|:--------|:--------------------------------------------------------|
| `ls` | view directory contents (`ls -l` for a long view) |
| `rm` | remove files (`rm -r` to remove entire directory trees) |
| `rmdir` | remove an empty directory |
| `cp` | copy a file (`cp -a` to copy directory trees) |
| `mv` | move a file or directory |
| `cat` | output a file to screen |
| `less` | view a file page-by-page, with scrollback |
Command help texts can be accessed with the `--help` switch. Directories are
separated by `/`, not `\`. The root of the filesystem is `/`. Drive letter
`C:` is expressed as `/c/`.
Environmental variables may be viewed with the `env` command. Individual
variables may be viewed like this:
$ echo $PATH
and set like this:
$ PATH=$PATH:/home/<username>/bin
Sometimes variables must be exported to be visible to called programs:
$ export PATH
[00]: A-word-on-text-editors
[01]: http://sourceforge.net/projects/mingw/files/
[02]: Required-MinGW-Archives
[03]: Required-MSYS-Archives
[05]: Editing-the-user-path-in-Windows

@ -0,0 +1,67 @@
MinGW (Minimal GNU for Windows) provides the gcc compiler and related tools for
compiling source code into Windows binaries. MSYS provides a Unix-like
environment with basic Unix shell commands. MinGW and MSYS are part of the same
project and are designed to be used together.
Complete hypertexted lists of the required MinGW and MSYS archive files are
provided below for convenient downloading. Save the archives into two separate
temporary directories (`mingw` and `msys`, for example).
These lists were checked and known to work at the time of this writing (November
2016). More recent versions of the files are available in the [MinGW
repository][01], and an auto-installer can be found there as well. However,
these instructions are designed to work on an offline computer, for which the
auto-installer cannot be used.
> * [MinGW archive list][02]
> * [MSYS archive list][03]
Unpack the basic-bsdtar archive (in the MinGW archives) and copy the executable
`basic-bsdtar.exe` to your path (e.g. `C:\windows\system32`).
From the DOS prompt (i.e. “Command Line”), create the two base directories and
move to the first of them:
> mkdir C:\mingw
> mkdir C:\msys
> cd C:\mingw
Unpack all the MinGW archives (except basic-bsdtar) by executing the following
command for each archive:
> basic-bsdtar.exe -xf <path to MinGW archives>/<archive name>
Now move the MSYS base directory:
> cd C:\msys
and unpack each MSYS archive in the same way:
> basic-bsdtar.exe -xf <path to MSYS archives>/<archive name>
Add `C:\mingw\bin` to your user path. Consult [this page][05] for instructions
on how to do that.
Close the command prompt window and open a new one. Launch the MSYS shell with
the command `C:\msys\bin\bash.exe --login`. You'll now be in the home
directory of your MSYS environment.
To avoid having to type this command by hand each time you enter MSYS, you're
advised to create a launcher icon. Copy the “Command Prompt” icon, rename the
copy to “MSYS”, right click on the icon, and add the above command to the end of
the existing command line after a space.
Note: At this point you must install a [text editor][00] before continuing
with your installation.
Using your text editor within MSYS, create the file `/etc/fstab` with a
single line: `c:/mingw /mingw`. Execute the command `mount /mingw`
If you're new to Unix, you're advised to learn [a few basic Unix commands][04].
[00]: A-word-on-text-editors
[01]: http://sourceforge.net/projects/mingw/files/
[02]: Required-MinGW-Archives
[03]: Required-MSYS-Archives
[04]: Unix-commands-and-environment
[05]: Editing-the-user-path-in-Windows

@ -0,0 +1,30 @@
### Unix commands: a very brief summary
| Command | Action |
|:--------|:--------------------------------------------------------|
| `ls` | view directory contents (`ls -l` for a long view) |
| `rm` | remove files (`rm -r` to remove entire directory trees) |
| `rmdir` | remove an empty directory |
| `cp` | copy a file (`cp -a` to copy directory trees) |
| `mv` | move a file or directory |
| `cat` | output a file to screen |
| `less` | view a file page-by-page, with scrollback |
Command help texts can be accessed with the `--help` switch. Directories are
separated by `/`, not `\`. The root of the filesystem is `/`. Drive letter
`C:` is expressed as `/c/`.
### Environment variables in Unix
Environmental variables may be viewed with the `env` command. Individual
variables may be viewed like this:
$ echo $PATH
and set like this:
$ PATH=$PATH:/home/<username>/bin
Sometimes variables must be exported to be visible to called programs:
$ export PATH