How to install the 32 bit Network Connect client on 64 bit Linux platforms

以下將介紹如何在 64 位元 Linux 平台上正常啟動 32 位元的 Network Connect 連線軟體,本方法僅適用於 NC 版本為 7.3 以後。NC 7.3 以後的版本會透過 update-alternatives 程式,自動找尋合適的 32bit Java Runtime,如此將可以在 64bit 瀏覽器下正常啟動 NC 連線程式。

Step 0

  • 軟體版本
名稱 版本
作業系統 Fedora 18 (Linux 3.8.1-201.fc18.x86_64)
Java Runtime jre-7u17-linux-x64.rpm (x86_64)
jre-7u17-linux-i586.tar.gz (i586)
Network Connect 7.3-3-Build23377

Step 1 : 為瀏覽器安裝 64bit Java Plugin

  • 請先下載 64bit Java SE Runtime Environment
  • 便於軟體套件管理,這裡建議選擇使用 yum(RPM) 安裝,並設定優先順序。
# sudo yum --nogpgcheck localinstall jre-7u17-linux-x64.rpm

# update-alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so \
                                libjavaplugin.so.x86_64 \
                                /usr/java/default/lib/amd64/libnpjp2.so \
                                20

# update-alternatives --config libjavaplugin.so.x86_64

有 2 個程式提供「libjavaplugin.so.x86_64」。

  選擇        指令
-----------------------------------------------
*  1           /usr/lib64/IcedTeaPlugin.so
 + 2           /usr/java/default/lib/amd64/libnpjp2.so

請輸入以保留目前的選擇[+],或輸入選擇號碼:2

Step 2 : 為 Network Connect 安裝 32bit Java Runtime

  • 請先下載 32bit Java SE Runtime Environment
  • 為避免軟體安裝衝突,這裡建議選擇手動解壓縮,並加入 alternatives 清單以利搜尋。
# mkdir -p /opt/java32
# cd /opt/java32
# cp /tmp/jre-7u17-linux-i586.tar.gz .
# tar xvfz jre-7u17-linux-i586.tar.gz

# update-alternatives --install /usr/bin/java \
                                java \
                                /opt/java32/jre1.7.0_17/bin/java \
                                20
  • {{wiki:notice.png}} 注意是否有安裝 java-1.5.0-gcjlibgcj,如此將可能無法正確找到合適的 32bit Java Runtime,以致於無法正常啟動 NC,建議可暫時移除。詳細除錯資訊如下:
Calling Super Init.
Command: /usr/java/jre1.7.0_17/bin/java -d32 -version 2>&1 | grep "java version"
Is32BitPlugin: Uses 64 bit plugin. Res: null
Command = /bin/sh -c /sbin/alternatives --display java 2>&1 |grep -v "/bin/sh:" | grep ^/ | cut -d " " -f 1 | tr "
" " " 
Result = /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java /usr/lib/jvm/jre-1.5.0-gcj/bin/java /opt/java32/jre1.6.0_43/bin/java /opt/java32/jre1.7.0_17/bin/java 
Java path = /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
Command = /bin/sh -c /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java -d32 -version 2>&1 | grep "java version" 
Result = null
Java path = /usr/lib/jvm/jre-1.5.0-gcj/bin/java
Command = /bin/sh -c /usr/lib/jvm/jre-1.5.0-gcj/bin/java -d32 -version 2>&1 | grep "java version" 
Result = java version "1.5.0"
32 bit Java path = /usr/lib/jvm/jre-1.5.0-gcj/bin/java
32 Bit Java Path = /usr/lib/jvm/jre-1.5.0-gcj/bin/java
/home/lyshie/.juniper_networks
Here is the standard output of the command:

No difference found
Here is the standard error of the command (if any):

Step 3 : 安裝 32bit 相關函式庫

# sudo yum install xterm \
                   ld-linux.so.2 \
                   libstdc++.so.6 \
                   libz.so.1 \
                   libXext.so.6 \
                   libXrender.so.1 \
                   libXtst.so.6

Step 4 : 設定使用者 sudo

  • 為了可以讓程式自動安裝 Network Connect 軟體,必須設定 sudo 功能。
    可將一般使用者加入 wheel 群組,或是手動編輯 /etc/sudoers 進行設定。
# vim /etc/sudoers
# visudo

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
lyshie  ALL=(ALL)       ALL

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Step 5 : 測試是否正常啟動 NC

  • 嘗試登入後啟動 Network Connect,將出現如下的提示訊息。
  • 輸入使用者個人密碼後,將自動安裝在 ~/.juniper_networks/ 目錄下。
  • 正常啟動後的畫面如下: