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

来源:互联网 发布:搞怪美颜相机软件 编辑:程序博客网 时间:2024/04/28 08:54
 
[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 01-15 21:23 /usr/bin/java -> /etc/alternatives/java
[root@BlueSky software]# ll 
/etc/alternatives/java
lrwxrwxrwx 
1 root root 35 05-10 13:48 /etc/alternatives/java -> /usr/lib/jvm/jre-1.4.2-gcj/bin/java
这说明java是受fc下同一软件的版本控制工具alternatives控制的,下面就是用这个工具将系统自带的GNU的java换成Sun的java版本;
查看alternatives的帮助;
[root@BlueSky software]# alternatives --help
替换选择(alternatives)的版本 
1.3.30 - 版权 (C) 1997-2000 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 jre-1_5_0_09-linux-i586.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 32-bit data model if available

    
-d64          use a 64-bit 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
    
-jre-restrict-search | -jre-no-restrict-search
                  include
/exclude user private JREs in the version search
    
-? -help      print this help message
    
-X            print help on non-standard 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/jre-1.4.2-gcj/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 32-bit data model if available

    
-d64          use a 64-bit 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
    
-jre-restrict-search | -jre-no-restrict-search
                  include
/exclude user private JREs in the version search
    
-? -help      print this help message
    
-X            print help on non-standard 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/jre-1.4.2-gcj/bin/java - 优先度 1420
 从 keytool:
/usr/lib/jvm/jre-1.4.2-gcj/bin/keytool
 从 rmiregistry:
/usr/lib/jvm/jre-1.4.2-gcj/bin/rmiregistry
 从 jre_exports:
/usr/lib/jvm-exports/jre-1.4.2-gcj
 从 jre:
/usr/lib/jvm/jre-1.4.2-gcj
/usr/java/jre1.5.0_09/bin/java - 优先度 300
 从 keytool:(
null)
 从 rmiregistry:(
null)
 从 jre_exports:(
null)
 从 jre:(
null)
当前“最佳”版本是 
/usr/lib/jvm/jre-1.4.2-gcj/bin/java。
结论,alternaties这个工具还是不错的。。。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1631959


原创粉丝点击