-
Notifications
You must be signed in to change notification settings - Fork 15
/
INSTALL.txt
172 lines (133 loc) · 6.1 KB
/
INSTALL.txt
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
This file documents how to install and run the gcf package, including
the Omni command-line tool.
See README.txt for details on the usage of the gcf package, and
README-omni.txt for details on Omni.
Omni users should follow these install instructions to ensure software dependencies are met.
Omni users using Mac OS X or Windows might consider the pre-built binaries available
from https://github.com/GENI-NSF/geni-tools/wiki.
Upgrading? For upgrading instructions look at the end of this file.
{{{
!#comment
The rest of the page is wiki formatted.
Content should mirror wiki:QuickStart
Section that is different is Section 3
}}}
== 1. Create the gcf directory ==
* If you have downloaded the software from the git repository, you can skip this step.
{{{
tar xvfz gcf-2.10.tar.gz
}}}
* Move the gcf directory to the directory where you want to permanently keep gcf. This might be your home directory. [[BR]]If you have `sudo` privileges in your host, you might want to consider moving the gcf package under `/usr/local/bin/` for a cleaner setup.
{{{
[sudo] mv gcf-2.10 <install-dir>
}}}
* Create a symbolic link called `gcf` to your installation directory. This will make the process of upgrading omni easier.
- If this is your first time installing gcf, do:
{{{
cd <install-dir>
rm gcf; ln -s gcf-2.10 gcf
}}}
- If you are upgrading your gcf, do:
{{{
cd <install-dir>
ln -s gcf-2.10 gcf
}}}
== 2. Add GCF to your path ==
In order to be able to run omni.py, gcf-am.py and any of the scripts
(e.g. readyToLogin.py) you will need to modify the `PATH` and the
`PYTHONPATH` environment variables.
Also it is useful to add aliases to the commonly used commands so that you
don't have to specify the `.py` in your commands; e.g. you can
configure omni by just running `omni-configure` instead of
`omni-configure.py`
It is recommended that you make these modifications in a configuration file so that they are set every
time you login to your host. The name of the configuration file is
dependent on the shell you are running.
In order to figure out which shell you are using run:
{{{
ps -p $$
}}}
If you are using a bash shell, copy and paste these lines to the end
of your `.bashrc` file. This file is located in your home
directory. If the file does not exist, you can create it.
If you are using a different shell, then modify these lines appropriately and add
them to the configuration file of your shell. Make sure to replace
`<PATH-TO-GCF-DIR>` with the actual path to your gcf directory. For
example if you have installed gcf under `/usr/local/bin/` then
`<PATH-TO-GCF-DIR>` is `/usr/local/bin/gcf`.
{{{
# set PATH so it includes geni software if it exists
if [ -d "<PATH-TO-GCF-DIR>/src" ] ; then
PATH="<PATH-TO-GCF-DIR>/src:<PATH-TO-GCF-DIR>/examples:$PATH"
export PYTHONPATH="<PATH-TO-GCF-DIR>/src:$PYTHONPATH"
fi
alias omni='omni.py'
alias omni-configure='omni-configure.py'
alias readyToLogin='readyToLogin.py'
alias clear-passphrases='clear-passphrases.py'
alias stitcher='stitcher.py'
alias remote-execute='remote-execute.py'
alias addMemberToSliceAndSlivers='addMemberToSliceAndSlivers.py'
}}}
For the changes to take effect in your current terminal run:
{{{
source <configuration_file>
}}}
== 3. Install software dependencies ==
The GCF package is intended to be run on a recent Unix
distribution. Python 2.6 or better is required. This software is not
Python 3 compatible. This software requires a number of readily
available software packages. Most modern Linux distributions should
have these packages available via their native package management
suite (eg. yum or apt).
Read the appropriate INSTALL.* file for installing dependencies for your
specific platform (e.g. read the INSTALL.ubuntu for instructions about
installing dependencies on an Ubuntu host).
If there are no instructions for you OS, look at the software dependencies at
this file and install them manually.
Email [mailto:[email protected]] for help.
NOTE: '''Windows users''', you might want to consider using Cygwin.
If you want to take a look at the detailed list of software dependencies look
in this file, in section "Software Dependencies".
== 4. Configure and test the installation ==
* Look at README-omni.txt for configuring Omni.
* Look at README-gcf.txt for configuring GCF.
= Upgrade =
In order to upgrade gcf, simply follow [#a1.Createthegcfdirectory the instructions about creating a gcf directory].
'''NOTE''': If you have any configuration files (e.g. `omni_config` or
`gcf_config`) under the directory of your previous gcf installation,
make sure you move them under the new directory so that you still have
easy access to them.
== Software Dependencies ==
GCF depends on the following packages:
=== Python M2Crypto ===
The M2Crypto package provides utilities for handling X.509
certificates and SSL connections. M2Crypto is required by the
certificate class in sfa/trust. M2Crypto should be readily available
on most Linux distributions.
More information is available at: http://chandlerproject.org/bin/view/Projects/MeTooCrypto
=== Python dateutil ===
The dateutil package provides date parsing routines to Python. It
should be readily available on most Linux distributions.
More information is available at: http://labix.org/python-dateutil
=== Python OpenSSL ===
The OpenSSL package provides a python API to the OpenSSL
package. There is an implicit dependency on OpenSSL, but that
should be handled by the Linux package manager (yum, apt, etc.)
More information is available at: https://launchpad.net/pyopenssl
=== xmlsec1 ===
The XML Security Library provides implementations of XML Digital
Signatures (RFC 3275) and W3C XML Encryption. The program xmlsec1
from this package is used to sign credentials.
On rpm systems the required packages are:
* xmlsec1
* xmlsec1-openssl-devel
On debian systems the packages are
* libxmlsec1
* xmlsec1
* libxmlsec1-openssl
* libxmlsec1-dev
More information is available at:
* http://www.aleksey.com/xmlsec/
* http://www.w3.org/TR/xmlenc-core/
* http://www.ietf.org/rfc/rfc3275.txt