可替换系统(alternatives system)的应用浅议

未分类 , , , , , 发表评论

 

[root@BlueSky tv2.0]# java
Usage: gij [OPTION] … CLASS [ARGS] …
          to invoke CLASS.main, or
       gij 
jar [OPTION] … JARFILE [ARGS] …
          to execute a jar file
Try `gij 
help for more information.

于是:

[root@BlueSky tv2.0]# which java
/usr/bin/java
[root@BlueSky software]# ls 
/usr/bin/java l
lrwxrwxrwx 
1 root root 22 0115 21:23 /usr/bin/java -> /etc/alternatives/java
[root@BlueSky software]# ll 
/etc/alternatives/java
lrwxrwxrwx 
1 root root 35 0510 13:48 /etc/alternatives/java -> /usr/lib/jvm/jre1.4.2gcj/bin/java

这说明java是受fc下同一软件的版本控制工具alternatives控制的,下面就是用这个工具将系统自带的GNU的java换成Sun的java版本;
查看alternatives的帮助;

[root@BlueSky software]# alternatives help
替换选择(alternatives)的版本 
1.3.30  版权 (C) 19972000 Red Hat, Inc.
在 GNU 公共许可的条款下,本软件可以被自由发行。

用法:alternatives 
install <link> <name> <path> <priority>
                    [
initscript <service>]
                    [
slave <link> <name> <path>]*
       alternatives 
remove <name> <path>
       alternatives 
auto <name>
       alternatives 
config <name>
       alternatives 
display <name>
       alternatives 
set <name> <path>

公用选项:
verbose test help usage version
                
altdir <directory> admindir <directory>

并通过实验得到,install是安装同一软件的不同版本,remove则是移出某个版本,config则是选择当前系统使用那个版本,而display则是显示当前使用的版本,auto则是更改当前的状态为自动判断,也就是可以恢复GNU版本java的一个参数;
下面先安装jre1.5.0_09,此版本可以到sun的公司网站上下得;

[root@BlueSky software]# rpm ivh jre1_5_0_09linuxi586.rpm 
Preparing…                ########################################### [
100%]
   
1:jre                    ########################################### [100%]

检查是否安装成功:

[root@BlueSky software]# /usr/java/jre1.5.0_09/bin/java
Usage: java [
options] class [args…]
           (to execute a 
class)
   or  java [
options] jar jarfile [args…]
           (to execute a jar file)

where options include:
    
d32          use a 32bit data model if available

    
d64          use a 64bit data model if available
    
client       to select the client VM
    
server       to select the server VM
    
hotspot      is a synonym for the client VM  [deprecated]
                  The 
default VM is client.
                  
    
cp <class search path of directories and zip/jar files>
    
classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search 
for class files.
    
D<name>=<value>
                  
set a system property
    
verbose[:class|gc|jni]
                  enable verbose output
    
version      print product version and exit
    
version:<value>
                  require the specified version to run
    
showversion  print product version and continue
    
jrerestrictsearch | jrenorestrictsearch
                  include
/exclude user private JREs in the version search
    
-? help      print this help message
    
X            print help on nonstandard options
    
ea[:<packagename>|:<classname>]
    
enableassertions[:<packagename>|:<classname>]
                  enable assertions
    
da[:<packagename>|:<classname>]
    
disableassertions[:<packagename>|:<classname>]
                  disable assertions
    
esa | enablesystemassertions
                  enable system assertions
    
dsa | disablesystemassertions
                  disable system assertions
    
agentlib:<libname>[=<options>]
                  load native agent library 
<libname>, e.g. agentlib:hprof
                    see also, 
agentlib:jdwp=help and agentlib:hprof=help
    
agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    
javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

出现这些字样,表明jre安装成功了;
接着,使用alternatives工具增加这个版本;

[root@BlueSky software]# alternatives install /usr/bin/java java /usr/java/jre1.5.0_09/bin/java 300

配置:

[root@BlueSky software]# alternatives config java

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

  选择    命令
———————————————–
*  1           /usr/lib/jvm/jre1.4.2gcj/bin/java
   
2           /usr/java/jre1.5.0_09/bin/java

按 Enter 来保存当前选择[
+],或键入选择号码:2
[root@BlueSky software]# java
Usage: java [
options] class [args…]
           (to execute a 
class)
   or  java [
options] jar jarfile [args…]
           (to execute a jar file)

where options include:
    
d32          use a 32bit data model if available

    
d64          use a 64bit data model if available
    
client       to select the client VM
    
server       to select the server VM
    
hotspot      is a synonym for the client VM  [deprecated]
                  The 
default VM is client.
                  
    
cp <class search path of directories and zip/jar files>
    
classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search 
for class files.
    
D<name>=<value>
                  
set a system property
    
verbose[:class|gc|jni]
                  enable verbose output
    
version      print product version and exit
    
version:<value>
                  require the specified version to run
    
showversion  print product version and continue
    
jrerestrictsearch | jrenorestrictsearch
                  include
/exclude user private JREs in the version search
    
-? help      print this help message
    
X            print help on nonstandard options
    
ea[:<packagename>|:<classname>]
    
enableassertions[:<packagename>|:<classname>]
                  enable assertions
    
da[:<packagename>|:<classname>]
    
disableassertions[:<packagename>|:<classname>]
                  disable assertions
    
esa | enablesystemassertions
                  enable system assertions
    
dsa | disablesystemassertions
                  disable system assertions
    
agentlib:<libname>[=<options>]
                  load native agent library 
<libname>, e.g. agentlib:hprof
                    see also, 
agentlib:jdwp=help and agentlib:hprof=help
    
agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    
javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument

如此,成功;
查看效果:

[root@BlueSky software]# alternatives display java
java 
 状态是手工。
 链接目前指向 
/usr/java/jre1.5.0_09/bin/java
/usr/lib/jvm/jre1.4.2gcj/bin/java  优先度 1420
 从 keytool:
/usr/lib/jvm/jre1.4.2gcj/bin/keytool
 从 rmiregistry:
/usr/lib/jvm/jre1.4.2gcj/bin/rmiregistry
 从 jre_exports:
/usr/lib/jvmexports/jre1.4.2gcj
 从 jre:
/usr/lib/jvm/jre1.4.2gcj
/usr/java/jre1.5.0_09/bin/java  优先度 300
 从 keytool:(
null)
 从 rmiregistry:(
null)
 从 jre_exports:(
null)
 从 jre:(
null)
当前“最佳”版本是 
/usr/lib/jvm/jre1.4.2gcj/bin/java。

结论,alternaties这个工具还是不错的。。。

上一篇:

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *