Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1207743
  • 博文数量: 181
  • 博客积分: 6155
  • 博客等级: 准将
  • 技术积分: 1805
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 09:24
文章分类

全部博文(181)

文章存档

2015年(2)

2014年(3)

2013年(9)

2012年(29)

2011年(30)

2010年(36)

2009年(40)

2008年(32)

分类: LINUX

2008-12-21 09:04:24

作者:施宇光
本文首发在cublog,转载请注名原贴地址如下:
http://blog.chinaunix.net/u/21765/showart.php?id=170690
        
            

安装JDK
假如jdk安装文档j2sdk-1_4_2_11-linux-i586-rpm.bin放在/usr/i_files/下

root# /usr/i_files/j2sdk-1_4_2_11-linux-i586-rpm.bin

出现jdk安装协议,看完后键入 y 同意。注:空格键翻页
root# rpm -ivh j2sdk-1_4_2_11-linux-i586.rpm
程式解包安装,成功。默认安装路径为/usr/java/j2sdk1.4.2_11


配置环境变量,打开~/.bash_profile文档,能够用gedit打开
root# gedit ~/.bash_profile

在文档中加入
export JAVA_HOME=/usr/java/j2sdk1.4.2_11
export CLASSPATH=/usr/java/j2sdk1.4.2_11/lib/dt.jar:/usr/java/j2sdk1.4.2_11/jre/lib/rt.jar:.

假如您使用的是Fedora Core系统,那么您还需要做如下配置,以便使系统默认使用我们刚刚安装的jdk。
root#  /usr/sbin/alternatives --install /usr/bin/java java /usr/java/j2sdk1.4.2_11/bin/java 2
root#  /usr/sbin/alternatives --config java

共有 2 个程式提供“java”。

  选择    命令
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
   2           /usr/java/j2sdk1.4.2_11/bin/java

按 Enter 来保存当前选择[+],或键入选择号码:2


?????????????????????????????????????
root# /usr/sbin/alternatives --install /usr/bin/javac javac /usr/java/j2sdk1.4.2_11/bin/javac 2
root# /usr/sbin/alternatives --config javac

共有 2 个程式提供“javac”。

  选择    命令
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.4.2-gcj/bin/javac
   2           /usr/java/j2sdk1.4.2_11/bin/javac

按 Enter 来保存当前选择[+],或键入选择号码:2


这里都选择2,即我们自己刚刚安装的jdk路径。

测试jdk是否安装成功,打开终端
root# java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
........................................
..........................
...............

出现以上信息表示java可用

root# javac
Usage: javac  
where possible options include:
  -g                        Generate all debugging info
  -g:none                   Generate no debugging info
  -g:{lines,vars,source}    Generate only some debugging info
  -nowarn                   Generate no warnings
........................................
..........................
...............

出现以上信息表示javac可用
安装ANT

到下载ant压缩文档apache-ant-1.6.0-bin.tar.gz,这里使用的版本是1.6.0

解压后,将任何文档复制到 /usr/local/ant下

然后配置环境变量

root# gedit ~/.bash_profile

在文档中加入
export ANT_HOME=/usr/local/ant

在终端运行

root# ant

Buildfile: build.xml does not exist!
Build failed

显示如上结果即表示ant配置成功。
安装PostgreSQL

注:按照本文使用命令时注意用户身份,root#表示根用户

创建安装文档放置路径
创建用户并授权给安装文档路径
root# mkdir /usr/post_install
root# adduser postgres
root# chown postgres:postgres /usr/post_install

下载程式源代码文档到存放路径
下载地址为ftp://ftp.postgresql.org/pub/source

本文使用的文档为postgresql-8.1.3.tar.bz2

解压软件

root# su postgres
postgres$ tar -jxvf /usr/post_install/postgresql-8.1.3.tar.bz2

进入源代码目录

postgres$ cd /usr/pos_install/postgresql-8.1.3

配置编译选项
postgres$ mkdir /usr/local/pgsql
root# chown postgres:postgres /usr/local/pgsql
postgres$ ./configure --prefix=/usr/local/pgsql

其中/usr/local/pgsql使我们指定的将要安装的目录

编译
postgres$ gmake

成功后显示
All of PostgreSQL successfully made. Ready to install.

安装
postgres$ gmake install

成功后显示
PostgreSQL installation complete.

创建数据库存储目录
root# mkdir -p /etc/database/pgsql_data/
root# chown postgres:postgres /etc/database/pgsql_data/

初始化数据库
postgres$ /usr/local/pgsql/bin/initdb -D /etc/database/pgsql_data/

成功后显示如下
Success. You can now start the database server using:

    /usr/local/pgsql/bin/postmaster -D /etc/database/pgsql_data
or
    /usr/local/pgsql/bin/pg_ctl -D /etc/database/pgsql_data -l logfile start

配置共享库
root#  /sbin/ldconfig /usr/local/pgsql/lib

配置环境变量
root# gedit ~/.bash_profile

启动数据库服务
postgres$ /usr/local/pgsql/bin/pg_ctl -D /etc/database/pgsql_data -l logfile start

成功后显示
postmaster starting
You have mail in /var/spool/mail/root

创建测试库
postgres$ /usr/local/pgsql/bin/createdb test

成功后显示
CREATE DATABASE

试用测试库
postgres$ /usr/local/pgsql/bin/psql test

成功后显示
Welcome to psql 8.1.3, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

test=#


启动脚本,以便系统启动时自动加载PostgreSQL服务

将源码文档夹下的linux文档拷贝到init.d下
root# cp /usr/post_install/postgresql-8.1.3/contrib/start-scripts/linux /etc/init.d/postgresql

编辑此文档
root# gedit /etc/init.d/postgresql

更改参数为自己安装时设定的目录
# Installation prefix
prefix=/usr/local/pgsql   注:安装目录

# Data directory
PGDATA="/etc/database/pgsql_data"   注:数据库目录


假如需要通过远程网络访问数据库,同时修改start,restart如下

start)
    $ECHO_N "Starting PostgreSQL: "$ECHO_C
    su - $PGUSER -c "$DAEMON -i -D ’$PGDATA’ &" >>$PGLOG 2>&1
    echo "ok"
    ;;
-----------------------------
  restart)
    echo -n "Restarting PostgreSQL: "
    su - $PGUSER -c "$PGCTL stop -D ’$PGDATA’ -s -m fast -w"
    su - $PGUSER -c "$DAEMON -i -D ’$PGDATA’ &" >>$PGLOG 2>&1
    echo "ok"
    ;;

最后修改权限
root# chmod a+x /etc/init.d/postgresql
root# chkconfig --add postgresql


安装zlib库
下载zlib-1.2.3.tar.gz后,解压缩到目录

编译准备
root# ./configure --prefix=/usr --shared

编译
root# make

测试共享库
root# make check

成功后显示
*** zlib test OK ***

安装共享库
root# make install

编译并安装静态库
root# make clean
root# ./configure --prefix=/usr
root# make
root# make check
root# make install

修改静态库权限
root# chmod 644 /usr/lib/libz.a

我们能够将库转移到通常的/lib目录下
root# mv /usr/lib/libz.so.* /lib
root# ln -sf ../../lib/libz.so.1 /usr/lib/libz.so

zlib安装完毕

安装lam-mpi

从下载文档,本文使用lam-7.1.2-1.i586.rpm

root# rpm -ivh lam-7.1.2-1.i586.rpm

root# lamboot

显示提示信息即表示安装成功

lam-mpi安装完毕

至此前提软件安装完毕

安装GT4.0.1

用root用户创建 globus 用户,并创建安装目录,将权限付给globus
root# mkdir /usr/local/globus-4.0.1
root# chown globus:globus /usr/local/globus-4.0.1

下载GT4.0.1原文档包,用 globus 用户解压并进行配置。
注:安装用原文档应该用globus用户解压到一个权限归globus用户任何的文档夹,否则下边的命令将出现权限错误

进入解压目录后,进行编译配置
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ ./configure --prefix=$GLOBUS_LOCATION

注:为了方便执行,能够将export GLOBUS_LOCATION=/usr/local/globus-4.0.1加入到/etc/profile和~/.bash_profile里

无错误出现后即可进行编译
globus# make 2>&1 | tee build.log

也能够不加参数,直接make,不同在于上边参数能够生成编译日志文档build.log,假如编译失败可疑分析原因。

接下来就是漫长的编译过程。

编译成功后即可进行安装
globus# make install

无错误提示即表示安装完成。下边我们进行GT4的配置

----------------------------------------------

配置GT4

作为globus登录,配置GLOBUS_LOCATION指向GT4的安装路径
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ . GLOBUS_LOCATION/etc/globus-user-env.sh

注:在“.”的后边有一个空格。

申请主机证书

为了运行GT4,必须为主机分配证书。其中:
证书必须包含两个文档:hostcert.pem和hostkey.pem
这两个文档必须必须在正确的路径下 /etc/grid-security/
主机在DNS上必须有一个固定的,不能够运行在DHCP服务的服务器上。

为此,能够选择:

从一个连同存在的CA处申请一个证书。

安装SimpleCA,并使之为我们分配证书。

使用globus提供的low-trust证书。

这里,我们选择一个比较容易实现的方法,就是安装SimpleCA。在下面一节里面我们将介绍怎样安装和配置SimpleCA。

假如是在第一台机器上安装也应该安装SimpleCA,以便以后为其他多台机器提供服务。

安装和配置SimpleCA

1.创建用户

       确保系统中存在这样的用户:

l           普通的用户账号,用来执行客户端的程式。

l           一个globus账号,用来执行管理的任务。如启动、停止容器,部署服务等。同时,这个用户还负责管理SimpleCA。为此,需要确保该用户对$GLOBUS_LOCATION目录有读写权限。在第1章中我们连同创建了这样一个用户。

注:假如编译安装的时候没有正确的设定权限,能够用chown命令来修改
root# chown globus:globus -R /usr/local/globus-4.0.1

注:参数-R表示递归的将目录下任何的子目录及文档同时更改权限

2.运行安装脚本

       对每个网格,只需运行一次下面的脚本即可。
globus$ export GLOBUS_LOCATION=/usr/local/globus-4.0.1
globus$ GLOBUS_LOCATION/setup/globus/setup-simple-ca

在此过程中,程式会提醒您关于您想创建的CA的信息,如:
C e r t i f i c a t e    A u t h o r i t y    S e t u p

This script will setup a Certificate Authority for signing Globus
users certificates.  It will also generate a simple CA package
that can be distributed to the users of the CA.

The CA information about the certificates it distributes will
be kept in:

/home/globus/.globus/simpleCA/
/usr/local/globus-4.0.1/setup/globus/setup-simple-ca: line 250: test: res: integer expression expected

The unique subject name for this CA is:

cn=Globus Simple CA, ou=simpleCA-syg.localdomain, ou=GlobusTest, o=Grid

Do you want to keep this as the CA subject (y/n) [y]:

推荐默认选项,按y继续。接下来,会提示您输入用来发送证书的email地址:
Enter the email of the CA (this is the email where certificate requests will be sent to be signed by the CA):

其实会在本地产生认证文档,也能够任意输入email地址
这时,系统提示您输入证书过期的时间。默认是5年,接受即可。
The CA certificate has an expiration date. Keep in mind that                 once the CA certificate has expired, all the certificates                 signed by that CA become invalid.  A CA should regenerate                 the CA certificate and start re-issuing ca-setup packages                 before the actual CA certificate expires.  This can be done                 by re-running this setup script.  Enter the number of DAYS                 the CA certificate should last before it expires.

[default: 5 years (1825 days)]:

紧接着,系统提示输入生成密钥的短语,即密码。正确输入并牢记,不得包含空格。
Generating a 1024 bit RSA private key

                ........++++++

                ................++++++

                writing new private key to ’/home/globus/.globus/simpleCA//private/cakey.pem’

                Enter PEM pass phrase:

最后,您会看见下面的提示:
A self-signed certificate has been generated for the Certificate Authority with the subject:                            /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/CN=Globus Simple CA

If this is invalid, rerun this script

setup/globus/setup-simple-ca

and enter the appropriate fields.

------------------------------------------------------------------

The private key of the CA is stored in /home/globus/.globus/simpleCA//private/cakey.pem

The public CA certificate is stored in /home/globus/.globus/simpleCA//cacert.pem

The distribution package built for this CA is stored in

/home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.17.tar.gz

这里显示的信息对于以后在其他机器上进行安装您的网格是十分重要的。在最后一行的数字82c6af8a是您的CA hash,他是个8位的十六进制的字符串。安装继续进行,直到您看到类似下面的内容,证实安装连同结束。

******************************************************************

Note: To complete setup of the GSI software you need to run the following script as root to configure your security configuration directory:

/opt/gt4/setup/globus_simple_ca_68ea3306_setup/setup-gsi

For further information on using the setup-gsi script, use the -help option.  The -default option sets this security configuration to be the default, and -nonroot can be used on systems where root access is not available.

******************************************************************

setup-ssl-utils: Complete

假如出现问题,能够尝试以下命令
root# GPT_LOCATION=/usr/local/globus-4.0.1
root#  /usr/local/globus-4.0.1//sbin/gpt-build -force /home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.18.tar.gz

root# $GLOBUS_LOCATION/sbin/gpt-postinstall
root# $GLOBUS_LOCATION/sbin/gpt-build /home/globus/.globus/simpleCA//globus_simple_ca_82c6af8a_setup-0.18.tar.gz

3.安装GSI

       以root用户登录,运行:
root# $GLOBUS_LOCATION/setup/globus_simple_ca_CA_Hash_setup/setup-gsi -default

其中,Hash表示您的CA Hash,应该用82c6af8a代替。这里每次安装时获得的CA Hash是不相同的,应该注意。
setup-gsi: Configuring GSI security
Making /etc/grid-security...
mkdir /etc/grid-security
Making trusted certs directory: /etc/grid-security/certificates/
mkdir /etc/grid-security/certificates/
Installing /etc/grid-security/certificates//grid-security.conf.82c6af8a...
Running grid-security-config...
Installing Globus CA certificate into trusted CA certificate directory...
Installing Globus CA signing policy into trusted CA certificate directory...
setup-gsi: Complete

显示如上即表示GSI安装正确。
-----------------------------------------------------

证书的申请和发放

host证书

1.申请一个host证书

       这个证书应该是给服务器申请的,这样才能够向用户发放证书。首先,使用root用户登录,运行命令:
root# grid-cert-request ?host ‘hostname’

这里的hostname是服务器的主机名,比如“mci.uestc.edu.cn”。该命令会在服务器上创建3个文档,分别是:

l           /etc/grid-security/hostkey.pem

l           /etc/grid-security/hostcert_request.pem

l           /etc/grid-security/hsotcert.pem(这是个空的文档)

之后,会通过邮件的方式将hostcert_request.pem发送给CA的管理员,即globus用户。假如hostname写本机地址,则在本机的/etc/grid-security下寻找到三个文档,自行拷贝出来,进行下边的签名步骤

2.对host证书签名

       作为globus用户登录,并运行如下命令:
globus$ grid-ca-sign ?in hostcert_request.pem ?out hostsigned.pem

这个命令是对接受到的host证书进行签名,从而生成hostsigned.pem文档。在此过程中,系统提示globus用户输入最初安装SimpleCA时输入的短语。

3.获得签名证书

作为root用户登录,将刚才生成的hostsinged.pem文档移到/etc/grid-security/目录下并改名为hostcert.pem,从而覆盖原先的空文档。这时,该文档的任何者是root,同时对其他用户是只读的权限。

用户证书

1.申请证书

首先,用一个普通用户登录。然后在命令行输入如下命令:

user$ grid-cert-request

在此过程中,会提示您输入passphrase。这个是用来生成密钥的短语,要牢记。否则只能重新申请证书。

       最后,系统中会生成如下三个文档:

?         ~$USER/.globus/usercert.pem (empty)

?         ~$USER/.globus/userkey.pem

?         ~$USER/.globus/usercert_request.pem

其中usercert.pem是空文档,需要另外获得。此时,会用email方式将usercert_request.pem给SimpleCA的管理员。同样,假如host配置时使用本机地址,则在本地的~$USER/.globus/下即可找到文档,拷贝出来签名。

2.对申请的证书进行签名

       SimpleCA的管理员账号globus登录,并运行如下命令

globus$ grid-ca-sign -in usercert_request.pem -out signed.pem

对通过email收到的usercert_request.pem进行签名。这时,系统会提示globus用户输入在安装SimpleCA过程中输入的 passphrase。正确输入后就会根据usercert_request.pem生成一个signed.pem文档,并通过email将其发送给申请 证书的用户。

3.获得签名证书

       用普通用户登录,并接收来自email的经过签名的signed.pem文档,将其拷贝到~$USRE/.globus/目录下,并改名为usercert.pem。从而覆盖原先生成的空文档。

测试

       为了对安装在/etc/grid-security/certificates的证书进行校验,需要运行如下命令:
user$ grid-proxy-init ?debug ?verify

假如一切正确,输出的结果类似下面的内容:

user$ grid-proxy-init -debug -verify

        User Cert File: /home/user/.globus/usercert.pem

        User Key File: /home/user/.globus/userkey.pem

        Trusted CA Cert Dir: /etc/grid-security/certificates

        Output File: /tmp/x509up_u1817

        Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/OU=mcs.anl.gov/CN=User Name

        Enter GRID pass phrase for this identity:

        Creating proxy ..............................++++++++++++

        ...............++++++++++++

        Done

        Proxy Verify OK

        Your proxy is valid until: Sat Mar 20 03:01:46 2006
使容器能够访问证书

       通过上述方法获得证书的host key文档(/etc/grid-security/hostkey.pem)对于root用户使只读的。而此时容器会以非root用户身份运行(可能使 globus用户)。为了让容器也能够访问证书,必须使用root账号登录并做如下改变:
root# cd /etc/grid-security

root# cp hostkey.pem containerkey.pem

root# cp hostcert.pem containercert.pem

root# chown globus.globus containerkey.pem containercert.pem


执行结束后,/etc/grid-security目录看起来像下面这样:
root# ls -l *.pem

-rw-r--r-- 1 globus globus 1785 Oct 14 14:47 containercert.pem

-r-------- 1 globus globus 887 Oct 14 14:47 containerkey.pem

-rw-r--r-- 1 root root 1785 Oct 14 14:42 hostcert.pem

-r-------- 1 root root 887 Sep 29 09:59 hostkey.pem


添加授权

为用户添加授权,使之能够访问服务。首先,需要作为root用户登录,创建/etc/grid-security/grid-mapfile文档。这时,您需要两部分信息:

l           用户的主体名(subject name)

l           这个主体名应该映射到的账号(account name)

这个文档的语法是每个用户使用一行来表示,前面是用户的主体名,后面跟着用户的账号。

       为了得到这两部分信息,能够使用grid-cert-info命令得到用户的主体名,并用whoami命令得到用户的账号。例如:

user$ grid-cert-info -subject

/O=Grid/OU=GlobusTest/OU=simpleCA-hostname/OU=mcs.anl.gov/CN=user

user$ whoami

user
能够使用grid-mapfile-add-entry命令向grid-mapfile文档中添加用户。例如:

root# $GLOBUS_LOCATION/sbin/grid-mapfile-add-entry -dn "/O=Grid/OU=GlobusTest/OU=simpleCA-mayed.mcs.anl.gov/OU=hostname/CN=user" -ln user
结果grid-mapfile看起来应该像这样:

"/O=Grid/OU=GlobusTest/OU=simpleCA-hostname/OU=hostname/CN=user" user

注:主体名两侧的双引号是必须的,因为这样能够忽略其中包含的空格。其中hostname即申请host证书时的服务器名。user是普通用户名。

基本安装结束。
阅读(1683) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~