This repository was archived by the owner on Jan 18, 2019. It is now read-only.
forked from timbrown01886/win-installer
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
113 lines (86 loc) · 5.14 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Cypress Windows Installer
===== WARNING === WARNING === WARNING === WARNING === WARNIN === WARNING =====
This repository contains the files and scripts necessary to build a Windows
installer for Cypress. This is not the place to go if you just want to install
Cypress on Windows. However, is you are a developer, working to enhance or
update the installer for the latest version of Cypress, than you're in the
right place.
===== WARNING === WARNING === WARNING === WARNING === WARNIN === WARNING =====
=====================
+ Prerequisites:
=====================
* NSIS (Nullsoft Scriptable Installation System)
The windows installer is built using the Nullsoft Scriptable Installation
System (NSIS) tool. Specifically, it was designed with version 2.46 of the
tool.
NSIS Project URL: http://nsis.sourceforge.net/
NSIS Documentation: http://nsis.sourceforge.net/Docs
Downloads: http://nsis.sourceforge.net/Download
* unzip command
The batch file that prepares this directory prior to running the installer
uses the unzip command. If you are using the Windows git client included in
this directory, it includes the necessary command. Simply add the directory
<GIT HOME>\bin to your PATH and you'll be set. <GIT HOME> refers to the
directory where git is installed (C:\Program Files\Git by default).
* RailsInstaller Developer Kit
The scripts need to have a development environment set up for building the
native version of certain gems. In order to compile from sources, the
environment must contain a C++ compiler. The easiest way to do this is if
you have installed the RailsInstaller from http://railsinstaller.org/, then
set a RI_DEVKIT environemt variable to C:\RailsInstaller\DevKit
* OLE-COM Object Viewer (optional)
While not explicitly necessary to build the installer, some aspects of
installing something on windows (i.e. adding a scheduled task) require
invoking Windows components via an Object Linking & Embedding (OLE) or
Common Object Model (COM) interface. Doing this from an NSIS install script
requires determining the ordinal number of the desired COM interface
function. The OLE-COM Object Viewer allows the COM interfaces installed on
the system to be browsed to determine these numbers. It is included with
Microsoft's Visual Studio development environment. I believe that it is
also part of the Windows 2000 Resource Kit.
* VM environment (recommended)
When testing installers, it is a good idea to have a reproducible environment
to revert back to if/when things don't install or uninstall properly. An
easy way to set this up is to have a VM on which you have the requisite
privileges to create "snapshots". Have one snapshot that is simply the
original image that was cloned. Then you can revert back to that snapshot
whenever you need to.
=====================
+ Building
=====================
Building the installer is quite simple. After installing NSIS, make sure the
NSIS install tool directory (C:\Program Files\NSIS by default) and the Git bin
directory are included in the PATH environment variable. If there are different
versions of mongodb or redis project required, you'll need to change
the variables in the preparefor.bat file to reflect them. From the directory
where this file resides, simply execute the following command:
preparefor.bat --help
which will display the following:
Usage: preparefor.bat <architecture> <product> <version> [switches]
the target architecture: 32|64
the product: Cypress
the version tag: version of the product (e.g. v1.1, develop, master)
Additionally you can pass the following switches on the command line
--help to show usage information
--verbose to turn echo on and see eberything that is happening
--repo <repo> to specify an alternate git repository to pull from
for example https://github.com/tlabczbrown
--noclean to not delete any lingering files from a previous installation
--nofetch to not pull the tar files for measures and product
--nobuild to avoid unpacking and compiling requisite software
--nogenerate to avoid generating the installer with NSIS
A typical usage for each product would be:
preparefor 64 Cypress v1.3.1
The preparefor command is a batch file that prepares the directory for either a 32
or a 64 bit build of the installer for Cypress. The batch
file will also run the makensis command with the appropriate defines.
If all goes well, this will create an executable called either
Cypress-<version>-i386.exe (32 bit) or Cypress-<version>--x86_64.exe (64 bit)
which is the installer for the respective architecture.
NB: the distinction between lean-and-mean and fat-and-happy is that the requisite
gems are packaged up with the installer in placed in the vendor/cache directory
for fat-and-happy. With lean-and-mean, the gems are pulled from rubygems during
installation rather than beforehand. The reason for this is that Cypress, as of
this writing, depends on versions of gems that are not published on rubygems.
Rather, they reside on github. But we don't want to require the client machine to
install git.