Home

2015年8月18日 星期二

Oracle Linux 上安裝JDK(Java Development Kit)

From: Polin Wei

 之前的 JBoss 的 JBoss EAP6 Domain Mode Setup 與 JBoss EAP6.x Standalone Mode Cluster Configuration 都在 Windows 平台上作測試,現在起將拋棄 微軟 擁抱 Linux,因為後續的資料庫也是使用 Oracle DataBase,因此 Linux 平台選擇 Oracle Linux,大致的安裝過程可以查看 Oracle Linux Install Using LVM

安裝檔下載:
1. Oracle Linux 的來源可從下面取得:
https://edelivery.oracle.com/linux

2. 下載JDK:

Oracle的官網可以下載到最新的JDK版本,官網網址如下:http://www.oracle.com/technetwork/java/javase/downloads/index.html
所有的版本:http://www.oracle.com/technetwork/java/archive-139210.html

3. 指令:

會使用到 rpm 或 yum 的安裝移除令,可以參考 yum 基本介紹和參數說明

安裝 JDK 方法一開始(建議以此方法為主):

1. 查詢 Oracle Linux 預設的 openJDK : OracleLinux7.1_x86_64 所搭配的 Java 是 openJDK ,用 rpm -qa | grep java 查詢後將它移除

[root@localhost ~]# rpm -qa | grep java
java-1.7.0-openjdk-1.7.0.75-2.5.4.2.0.1.el7_0.x86_64
python-javapackages-3.4.1-6.el7_0.noarch
javapackages-tools-3.4.1-6.el7_0.noarch
tzdata-java-2015a-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.0.1.el7_0.x86_64

2. 移除 openJDK ,可以使用 yum remove java* 或者 rpm -e package_name 指令

[root@localhost ~]# yum remove java*
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0 will be erased
--> Processing Dependency: java-1.7.0-openjdk for package: icedtea-web-1.5.2-0.el7.x86_64
---> Package java-1.7.0-openjdk-headless.x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0 will be erased
---> Package javapackages-tools.noarch 0:3.4.1-6.el7_0 will be erased
--> Processing Dependency: jpackage-utils for package: rhino-1.7R4-5.el7.noarch
--> Processing Dependency: jpackage-utils for package: rhino-1.7R4-5.el7.noarch
--> Processing Dependency: jpackage-utils for package: tagsoup-1.2.1-8.el7.noarch
--> Processing Dependency: jpackage-utils >= 1.6 for package: tagsoup-1.2.1-8.el7.noarch
--> Processing Dependency: jpackage-utils for package: jline-1.0-8.el7.noarch
--> Running transaction check
---> Package icedtea-web.x86_64 0:1.5.2-0.el7 will be erased
---> Package jline.noarch 0:1.0-8.el7 will be erased
---> Package rhino.noarch 0:1.7R4-5.el7 will be erased
---> Package tagsoup.noarch 0:1.2.1-8.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                Arch   Version                      Repository     Size
================================================================================
Removing:
 java-1.7.0-openjdk     x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0 @anaconda/7.1 493 k
 java-1.7.0-openjdk-headless
                        x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0 @anaconda/7.1  90 M
 javapackages-tools     noarch 3.4.1-6.el7_0                @anaconda/7.1 155 k
Removing for dependencies:
 icedtea-web            x86_64 1.5.2-0.el7                  @anaconda/7.1 1.8 M
 jline                  noarch 1.0-8.el7                    @anaconda/7.1  72 k
 rhino                  noarch 1.7R4-5.el7                  @anaconda/7.1 1.0 M
 tagsoup                noarch 1.2.1-8.el7                  @anaconda/7.1 140 k

Transaction Summary
================================================================================
Remove  3 Packages (+4 Dependent packages)

Installed size: 94 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Erasing    : icedtea-web-1.5.2-0.el7.x86_64                               1/7
  Erasing    : rhino-1.7R4-5.el7.noarch                                     2/7
  Erasing    : jline-1.0-8.el7.noarch                                       3/7
  Erasing    : tagsoup-1.2.1-8.el7.noarch                                   4/7
  Erasing    : 1:java-1.7.0-openjdk-1.7.0.75-2.5.4.2.0.1.el7_0.x86_64       5/7
  Erasing    : 1:java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.0.1.el7_0.x   6/7
  Erasing    : javapackages-tools-3.4.1-6.el7_0.noarch                      7/7
  Verifying  : 1:java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.0.1.el7_0.x   1/7
  Verifying  : icedtea-web-1.5.2-0.el7.x86_64                               2/7
  Verifying  : tagsoup-1.2.1-8.el7.noarch                                   3/7
  Verifying  : rhino-1.7R4-5.el7.noarch                                     4/7
  Verifying  : 1:java-1.7.0-openjdk-1.7.0.75-2.5.4.2.0.1.el7_0.x86_64       5/7
  Verifying  : jline-1.0-8.el7.noarch                                       6/7
  Verifying  : javapackages-tools-3.4.1-6.el7_0.noarch                      7/7

Removed:
  java-1.7.0-openjdk.x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0
  java-1.7.0-openjdk-headless.x86_64 1:1.7.0.75-2.5.4.2.0.1.el7_0
  javapackages-tools.noarch 0:3.4.1-6.el7_0

Dependency Removed:
  icedtea-web.x86_64 0:1.5.2-0.el7         jline.noarch 0:1.0-8.el7
  rhino.noarch 0:1.7R4-5.el7               tagsoup.noarch 0:1.2.1-8.el7

Complete!

3. 使用 rpm 指令安裝 jdk-8u45-linux-x64.rpm

[root@localhost tmp]# rpm -ivh jdk-8u45-linux-x64.rpm
正在準備…                       ################################# [100%]
Updating / installing...
   1:jdk1.8.0_45-2000:1.8.0_45-fcs    ################################# [100%]
Unpacking JAR files...
    rt.jar...
    jsse.jar...
    charsets.jar...
    tools.jar...
    localedata.jar...
    jfxrt.jar...
    plugin.jar...
    javaws.jar...
    deploy.jar...
[root@localhost tmp]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
[root@localhost tmp]# javac -version
javac 1.8.0_45

利用 rpm 安裝完的 JDK,根目錄會在 /usr/java/jdk1.8.0_45
[root@localhost java]# pwd
/usr/java
[root@localhost java]# ls -l
總計 4
lrwxrwxrwx. 1 root root   16  8月 17 16:36 default -> /usr/java/latest
drwxr-xr-x. 9 root root 4096  8月 17 16:36 jdk1.8.0_45
lrwxrwxrwx. 1 root root   21  8月 17 16:36 latest -> /usr/java/jdk1.8.0_45

4. 編輯「/etc/profile」檔案

這個profile檔案裡寫的指令在系統開機時會自動執行。
 使用「export」指令來設定Java相關的系統環境變數。要設定的變數有「JAVA_HOME」、「JRE_HOME」、「PATH」、 「CLASSPATH」。「JAVA_HOME」為JDK的目錄,就是剛剛複製到「/usr/lib」目錄中的JDK目錄,「JRE_HOME」為 JRE(Java Runtime Environment)的目錄,JDK有包含JRE,位置就在JDK目錄下的「jre」目錄。「PATH」變數為系統尋找指令(檔案)的路徑,將 「JAVA_HOME」變數和「JRE_HOME」變數加進原先的「PATH」變數前。「CLASSPATH」變數為Java尋找Java程式所使用到的 Class路徑,路徑可以是目錄也可以是.jar檔案,將目前的目錄「.」和「$JAVA_HOME/lib」與「$JAVA_HOME/jre /lib」加進變數中吧!

範例如下:
export JAVA_HOME=/usr/java/jdk1.8.0_45
export JRE_HOME=/usr/java/jdk1.8.0_45/jre
export ANT_HOME=/opt/apache-ant-1.7.0
export JBOSS_HOME=/opt/jboss-eap-6.3

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$ANT_HOME/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib
重新關機後,就可以生效。


(繼續閱讀...)

2015年8月17日 星期一

yum 基本介紹和參數說明

From: Polin Wei


一、yum介紹
YUM 是一個自動安裝工具,它可以幫助RPM系統安裝,移除,升級軟體套件(應用程式,函式庫等)。您不需要在一一檢查手冊查閱相依性需要的套件,它能夠自動檢測軟體安裝時的相依性。這使得我們在管理(升級,安裝,移除)相關群組時更加簡單便利。

二、yum移除與安裝

1.查詢是否有安裝yum
[root@localhost ~]# rpm -qa | grep yum
PackageKit-yum-0.8.9-11.0.1.el7.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-3.4.3-125.0.1.el7.noarch
yum-utils-1.1.31-29.0.1.el7.noarch
yum-rhn-plugin-2.0.1-5.0.2.el7.noarch
yum-langpacks-0.4.2-3.el7.noarch


2.移除java (移除的方式有兩種擇一即可)
2.1用yum的方式移除
[root@localhost ~]#  yum remove java*

2.2用rpm -e的方式移除
#先查看有那些yum檔案要移除的

[root@localhost ~]#  rpm -qa | grep java

#移除java
[root@localhost ~]# rpm -e jdk1.8.0_45-1.8.0_45-fcs.x86_64

 三、yum指令說明
在使用yum時,會將下載的東西,存放在/var/cache/yum目錄下。
1.yum更新
yum check-update
#檢查能更新的套件有那些

yum update
#更新所有已安裝的套件,若在update後面接上套件名稱的話可針對該套件更新
如yum update httpd

yum upgrade
#功能看update差不多,差別在於yum upgrade會連同一些過舊即將洮汰的套件也一起更新,大多使用在版本升級。

1.1安裝移除套件
yum install
#安裝套件,install後面接要安裝的套件名稱,如yum install httpd。若要把所有相關的一起安裝的話可在最後加上「*」。如yum install httpd*

yum remove
#移除套件在這邊會考慮到相依性的問題,remove後可接要移除套件名稱,如yum remove httpd。若要把相關套件也一起移除的話可在最後加上「*」。如yum remove httpd*

yum clean
#清除安裝下載時的暫套件原始檔,大多是存放在/var/cache/yum,通常會下yum clean packages或是yum clean all,一次全刪除。

1.2清暫存
yum clean
#清除安裝下載時的暫套件原始檔,大多是存放在/var/cache/yum

yum clean packages
#用來清除暫存(/var/cache/yum)目錄下的套件

yum clean headers
#用來清除暫存(/var/cache/yum)目錄下的 headers

yum clean oldheaders
#用來清除暫存(/var/cache/yum)目錄下的 oldheaders

yum clearn all
#直接把所有的站存都一次清除。

1.3列清單
yum list
#列出所有的套件,若在list後面接套件名稱,則可單獨列出該套件。

yum list updates
#列出所有可以更新的套件

yum list installed
#列出所有已經安裝的套件

yum list extra
#列出所有已安裝但不在 yum Repository 內的套件

1.4列出套件的相關資訊
yum info
#列出所有套件的相關資訊,若在info後接上套件名稱,則可單讀該套件相關資訊。
如yum info httpd 或yum info httpd*,差別在於有加「*」則會把以httpd開頭的都列出來

yum info updates
#列出所有可以更新的套件資訊

yum info installed
#列出所有已安裝的套件資訊

yum info extras
#列出所有已安裝但不在 Yum Repository 內的套件資訊


1.5搜尋功能
yum search
#搜尋所有相關的套件,如yum search httpd,在從中找到所需要的套件。類似關鍵字的用途

五、升級不動kernel
如果想要用yum來升級套件,但又不想動到kernel的話。請參考下面做法
[root@localhost ~]# vim /etc/yum.conf
#在[main]當中加入下面字串
exclude=kernel kernel-source

雖然說yum的用法很多,但是一般常用的大概就是安裝、更新和移除。剩下的等有用到才查看就可以了。

六、yum FAQ
有關yum常見的問題可以參考官網的解答
http://yum.baseurl.org/wiki/Faq
 http://ithelp.ithome.com.tw/question/10077313
 

2015年8月10日 星期一

HP 3PAR Flash Cache 設定和應用.

From: Polin Wei

1.先依照一般程序設定好3PAR的CPG(Common Provisioning Groups)與VV(Virtual Volumes)

2.查詢SSD的可用空間
  cli% showspace -p -devtype SSD -t r1 -ha mag
    --Estimated(MB)---
RawFree UsableFree
126976  63488

3.建立flashcache(Ex:128GB) (PS:請注意剛建好VV有可能無法立即設定flashcache,需等storage initial完成後才能建立,否則會出現要求ha mag的錯誤訊息)
  cli% createflashcache 128g

4.查詢flashcache狀態(系統會分Node切割)
  cli% showflashcache
    Node Mode State Size Used%
0 SSD normal 196608 0
1 SSD normal 196608 0
-------------------------------
2 total 393216

5.設定後還需要指定套用的vvset才能生效,否則只是宣告一個Cache空間而已,並沒有任何效用~
  (Ex:[vvset_name]:vv1_raid1、[vv_name]:vv1_raid1_01~03)
  cli% createvvset VVSet_FS
  cli% createvvset -add VVSet_FS P7200-NL-R6-FS

6.指定flashcache套用到剛剛建立[vvset1_raid1]的vvset
  cli% setflashcache enable vvset:VVSet_FS

7.查詢目前已經套用flashcache的vvset
  cli% showflashcache -vvset
    Id VVSetName AFCPolicy
0 VVSet_PLM    enabled
1 VVSet_NOTES  enabled
2 VVSet_FS      enabled
---------------------------
3 total

8.查詢flashcache的使用狀態
  cli% statcache
    15:12:35 04/22/2014 ------- Current -------- -------- Total ---------
CMP FMP Total CMP FMP Total
Node Type Accesses Hit% Hit% Hit% Accesses Hit% Hit% Hit%
0 Read 0 0 0 0 0 0 0 0
0 Write 0 0 0 0 0 0 0 0
1 Read 0 0 0 0 0 0 0 0
1 Write 0 0 0 0 0 0 0 0
Internal Flashcache Activity
----- Current ------ ------- Total --------
Node Type Accesses IO/s MB/s Accesses IO/s MB/s
0 Read Back 0 0 0 0 0 0
0 Destaged Write 0 0 0 0 0 0
1 Read Back 0 0 0 0 0 0
1 Destaged Write 0 0 0 0 0 0
--------------- FMP Queue Statistics ----------------
Node Dormant Cold Norm Warm Hot Destage Read Flush WrtBack
0 8388608 0 0 0 0 0 0 0 0
1 8388608 0 0 0 0 0 0 0 0
-------------------- CMP Queue Statistics --------------------
Node Free Clean Write1 WriteN WrtSched Writing DcowPend DcowProc
0 1796802 58859 0 0 0 0 0 0
1 1796521 58200 0 0 0 0 0 0

9.停止vvset的flashcache使用(可線上執行,不影響前端主機運作)
  cli% setflashcache disable vvset:vvset1_raid1