Differences between revisions 7 and 42 (spanning 35 versions)
Revision 7 as of 2010-03-29 08:28:00
Size: 2472
Editor: root
Comment:
Revision 42 as of 2012-03-12 09:10:50
Size: 3241
Editor: IanRees
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Generally, you will want to create a user account for running emen2, e.g. 'emen2.' This has the benefit of working well with the default config file. Running as any other user also works fine, you will just have to change one or two paths in config.yml. EMEN2 has a number of dependencies, which are described on the [[EMEN2/Dependencies|dependencies]] page. However, because EMEN2 is often used with [[EMAN2]], we have packaged all of the EMEN2 dependencies along with binary builds of EMAN2, which greatly simplifies installation. See the [[EMAN2]] page for information on installing EMAN2 and the notes below. On Linux, we usually install EMAN2 into $HOME/EMAN2; make sure to run the "EMAN2/eman2-installer" script and add the resulting EMAN2 init script (EMAN2/eman2.bashrc) to your shell rc (usually $HOME/.profile or $HOME/.bashrc).
Line 5: Line 5:
1. Download the latest EMEN2 source code release and untar = Install EMEN2 =

EMEN2 can be installed using either Python easy_install:
Line 8: Line 10:
cd /home/emen2
tar -xvzf emen2.03.28.2010.tar.gz
cd emen2
sudo python -m easy_install -U -Z emen2
Line 13: Line 13:
2. Create a directory for the Database Environment (referred to as $DB_HOME going forward. Reasonable default is /home/emen2/db/ ) Note the "-U" flag will upgrade emen2 to the current version if it is already found. The "-Z" flag will prevent EMEN2 from being installed an a ".egg" zip file.

Alternatively, you may install EMNE2 by downloading the source, unpacking, and running the setup.py script:
Line 16: Line 18:
mkdir /home/emen2/db
cp config/config.sample.yml /home/emen2/db/config.yml
python ./setup.py build
sudo python ./setup.py install
Line 20: Line 22:
Recommended: Set the $DB_HOME environment variable to this path for convenience. Place this in your .bash_profile or similar. '''Note: Installing EMEN2 with EMAN2'''

If you are using an EMAN2 binary distribution to take care of all the dependencies, you will need to use EMAN2's Python environment on Linux and Windows. On Linux, assuming you installed EMAN2 into $HOME/EMAN2, you would use $HOME/EMAN2/Python/bin/python as the interpreter. This will ensure that the correct dependencies are loaded and EMEN2 is installed in the correct location. On Mac OS X, EMAN2 uses the system default Python environment, so no special action is required. Example:
Line 23: Line 27:
export DB_HOME=/home/emen2/db $HOME/EMAN2/Python/bin/python -m easy_install -U -Z emen2
Line 26: Line 30:
3. Copy emen2/config.sample.yml to $DB_HOME/config.yml = Creating an EMEN2 database environment =
Line 28: Line 32:
Edit the various settings in config.yml. See [[EMEN2/config.yml]]. Primarily, you will want to check the path and network settings. A simple configuration will have most EMEN2 directories (db, applog, archive, db_hotbackup, emen2files, etc.) placed under the path specified by the "&root" element, which is /home/emen2/ by default. Here is a "quick start" guide to initialize an EMEN2 DB and start the web server. The "-h" argument in the scripts below are references to a directory to keep the EMEN2 DB; the directory will be created if it does not exist.
Line 31: Line 35:
  root: &root
    /home/emen2/
python -m emen2.db --create -h $HOME/testdb
Line 35: Line 38:
4. After config.yml is to your liking, run This will prompt for a "root" email address and password, and create a minimal EMEN2 environment. The email address will be used for password recovery and system messages if a mail server is provided in the configuration. The password can be left empty, but the system will not be secure at all.

You can also quickly access the native Python API, by running the module with the '-i' flag. The "-e" flag specifies a list of extensions to load.
Line 38: Line 43:
python ./setup.py python -i -m emen2.db -h $HOME/testdb -e default,em,eman2,site
Line 41: Line 46:
The rest of the $DB_HOME environment will be created, skeleton parameter/protocol definitions will be installed, and a root user created. You will be prompted on the shell for a root password.

5. Test web server
To start the EMEN2 web server with default settings:
Line 46: Line 49:
python ./TwistSupport.py python -m emen2.web.server -h $HOME/testdb -e default,em,eman2,site
Line 49: Line 52:
You should be able to connect to this web server instance once it is "listening..." The default port is 8080. You may login with the root password you specified previously. You will be able to access the server at http://localhost:8080
Line 51: Line 54:
6. Optional: Import Parameter/Protocol definitions from the NCMI Database. Another way to start the web server is to run it as a Twisted Application, using twistd.
Line 54: Line 57:
python ./clients/clone.py -- --defs twistd emen2 -h $HOME/testdb -e default,em,eman2,site
Line 57: Line 60:
Note: the first "--" is intentional and required at the moment. Command arguments for the local database go before "--", arguments to the cloning script go after ("--defs") This will daemonize emen2, and log all messages to a file. You can specifiy the "-n -o" flags to twistd to prevent daemonization and print the log to stdout.
Line 59: Line 62:
You will be prompted for two sets of credentials. First, an NCMI DB account, and second, the root password for the local database. If you do not have an NCMI DB account, you may specify "anonymous" as the username, and your email address as the password.

6. Daemon

After you are satisfied with your setup, you can run EMEN2 in the background

{{{
python ./emen2control.py --start
}}}
Finally, if you want to start EMEN2 at system boot, see [[EMEN2/Startup|EMEN2 Startup]] for details on using the [[EMEN2/emen2ctl|emen2 init script]].

Installing and configuring EMEN2

EMEN2 has a number of dependencies, which are described on the dependencies page. However, because EMEN2 is often used with EMAN2, we have packaged all of the EMEN2 dependencies along with binary builds of EMAN2, which greatly simplifies installation. See the EMAN2 page for information on installing EMAN2 and the notes below. On Linux, we usually install EMAN2 into $HOME/EMAN2; make sure to run the "EMAN2/eman2-installer" script and add the resulting EMAN2 init script (EMAN2/eman2.bashrc) to your shell rc (usually $HOME/.profile or $HOME/.bashrc).

Install EMEN2

EMEN2 can be installed using either Python easy_install:

sudo python -m easy_install -U -Z emen2

Note the "-U" flag will upgrade emen2 to the current version if it is already found. The "-Z" flag will prevent EMEN2 from being installed an a ".egg" zip file.

Alternatively, you may install EMNE2 by downloading the source, unpacking, and running the setup.py script:

python ./setup.py build
sudo python ./setup.py install

Note: Installing EMEN2 with EMAN2

If you are using an EMAN2 binary distribution to take care of all the dependencies, you will need to use EMAN2's Python environment on Linux and Windows. On Linux, assuming you installed EMAN2 into $HOME/EMAN2, you would use $HOME/EMAN2/Python/bin/python as the interpreter. This will ensure that the correct dependencies are loaded and EMEN2 is installed in the correct location. On Mac OS X, EMAN2 uses the system default Python environment, so no special action is required. Example:

$HOME/EMAN2/Python/bin/python -m easy_install -U -Z emen2

Creating an EMEN2 database environment

Here is a "quick start" guide to initialize an EMEN2 DB and start the web server. The "-h" argument in the scripts below are references to a directory to keep the EMEN2 DB; the directory will be created if it does not exist.

python -m emen2.db --create -h $HOME/testdb

This will prompt for a "root" email address and password, and create a minimal EMEN2 environment. The email address will be used for password recovery and system messages if a mail server is provided in the configuration. The password can be left empty, but the system will not be secure at all.

You can also quickly access the native Python API, by running the module with the '-i' flag. The "-e" flag specifies a list of extensions to load.

python -i -m emen2.db -h $HOME/testdb -e default,em,eman2,site

To start the EMEN2 web server with default settings:

python -m emen2.web.server -h $HOME/testdb -e default,em,eman2,site

You will be able to access the server at http://localhost:8080

Another way to start the web server is to run it as a Twisted Application, using twistd.

twistd emen2 -h $HOME/testdb -e default,em,eman2,site

This will daemonize emen2, and log all messages to a file. You can specifiy the "-n -o" flags to twistd to prevent daemonization and print the log to stdout.

Finally, if you want to start EMEN2 at system boot, see EMEN2 Startup for details on using the emen2 init script.

EMEN2/Install (last edited 2013-06-27 06:59:34 by IanRees)