在linux上使用yum安裝JDK
[[email protected] ~]$ yum -y list java*
執行結果
- [[email protected] ~]$ yum -y list java*
- Loaded plugins: fastestmirror
- base | 1.1 kB 00:00
- base/primary | 995 kB 00:00
- base 2789/2789
- extras | 2.1 kB 00:00
- extras/primary_db | 164 kB 00:20
- updates | 1.9 kB 00:00
- updates/primary_db | 422 kB 00:01
-
Available Packages
- java-1.4.2-gcj-compat.i386 1.4.2.0-40jpp.115 base
- java-1.4.2-gcj-compat-devel.i386 1.4.2.0-40jpp.115 base
- java-1.4.2-gcj-compat-javadoc.i386 1.4.2.0-40jpp.115 base
- java-1.4.2-gcj-compat-src.i386 1.4.2.0-40jpp.115 base
- java-1.6.0-openjdk.i386 1:1.6.0.0-5.1.13.3.el5_10 updates
-
java-1.6.0-openjdk-demo.i386 1:1.6.0.0-5.1.13.3.el5_10 updates
- java-1.6.0-openjdk-devel.i386 1:1.6.0.0-5.1.13.3.el5_10 updates
- java-1.6.0-openjdk-javadoc.i386 1:1.6.0.0-5.1.13.3.el5_10 updates
- java-1.6.0-openjdk-src.i386 1:1.6.0.0-5.1.13.3.el5_10 updates
- java-1.7.0-openjdk.i386 1:1.7.0.55-2.4.7.1.el5_10 updates
- java-1.7.0-openjdk-demo.i386 1:1.7.0.55-2.4.7.1.el5_10 updates
-
java-1.7.0-openjdk-devel.i386 1:1.7.0.55-2.4.7.1.el5_10 updates
- java-1.7.0-openjdk-javadoc.i386 1:1.7.0.55-2.4.7.1.el5_10 updates
- java-1.7.0-openjdk-src.i386 1:1.7.0.55-2.4.7.1.el5_10 updates
- java_cup.i386 1:0.10-0.k.6jpp.1 base
- java_cup-javadoc.i386 1:0.10-0.k.6jpp.1 base
- java_cup-manual.i386 1:0.10-0.k.6jpp.1 base
- javacc.i386 4.0-3jpp.3 base
- javacc-demo.i386 4.0-3jpp.3 base
- javacc-manual.i386 4.0-3jpp.3 base
2.使用root使用者安裝
安裝時提醒必須使用root使用者,sudo都不行。
[[email protected] ~]$ yum -y install java-1.6.0-openjdk*
執行結果
-
[[email protected] ~]$ yum -y install java-1.6.0-openjdk*
- Loaded plugins: fastestmirror
- Loading mirror speeds from cached hostfile
- * base: mirror.bit.edu.cn
- * extras: mirror.bit.edu.cn
- * updates: centos.ustc.edu.cn
- base | 1.1 kB 00:00
- base/primary | 995 kB 00:07
- base 2789/2789
- extras | 2.1 kB 00:00
- extras/primary_db | 164 kB 00:02
- updates | 1.9 kB 00:00
- updates/primary_db | 422 kB 00:07
- Setting up Install Process
- Resolving Dependencies
- --> Running transaction check
- ---> Package java-1.6.0-openjdk.i386 1:1.6.0.0-5.1.13.3.el5_10 set to be updated
- --> Processing Dependency: jpackage-utils >= 1.7.3-1jpp.2 for package: java-1.6.0-openjdk
- --> Processing Dependency: libgif.so.4 for package: java-1.6.0-openjdk
- --> Processing Dependency: tzdata-java for package: java-1.6.0-openjdk
- ---> Package java-1.6.0-openjdk-demo.i386 1:1.6.0.0-5.1.13.3.el5_10 set to be updated
- ---> Package java-1.6.0-openjdk-devel.i386 1:1.6.0.0-5.1.13.3.el5_10 set to be updated
- ---> Package java-1.6.0-openjdk-javadoc.i386 1:1.6.0.0-5.1.13.3.el5_10 set to be updated
- ---> Package java-1.6.0-openjdk-src.i386 1:1.6.0.0-5.1.13.3.el5_10 set to be updated
- --> Running transaction check
- ---> Package giflib.i386 0:4.1.3-7.3.3.el5 set to be updated
- ---> Package jpackage-utils.noarch 0:1.7.3-1jpp.3.el5 set to be updated
- ---> Package tzdata-java.i386 0:2014b-1.el5 set to be updated
- --> Finished Dependency Resolution
- Dependencies Resolved
- ================================================================================
- Package Arch Version Repository
- Size
- ================================================================================
- Installing:
- java-1.6.0-openjdk i386 1:1.6.0.0-5.1.13.3.el5_10 updates 44 M
- java-1.6.0-openjdk-demo i386 1:1.6.0.0-5.1.13.3.el5_10 updates 2.2 M
- java-1.6.0-openjdk-devel i386 1:1.6.0.0-5.1.13.3.el5_10 updates 15 M
- java-1.6.0-openjdk-javadoc i386 1:1.6.0.0-5.1.13.3.el5_10 updates 20 M
- java-1.6.0-openjdk-src i386 1:1.6.0.0-5.1.13.3.el5_10 updates 39 M
- Installing for dependencies:
- giflib i386 4.1.3-7.3.3.el5 base 39 k
- jpackage-utils noarch 1.7.3-1jpp.3.el5 base 60 k
- tzdata-java i386 2014b-1.el5 updates 172 k
- Transaction Summary
- ================================================================================
- Install 8 Package(s)
- Upgrade 0 Package(s)
- Total download size: 120 M
- Downloading Packages:
- (1/8): giflib-4.1.3-7.3.3.el5.i386.rpm | 39 kB 00:00
- (2/8): jpackage-utils-1.7.3-1jpp.3.el5.noarch.rpm | 60 kB 00:00
- (3/8): tzdata-java-2014b-1.el5.i386.rpm | 172 kB 00:04
- (4/8): java-1.6.0-openjdk-demo-1.6.0.0-5.1.13.3.el5_10.i386.rpm | 2.2 MB 00:47
- (5/8): java-1.6.0-openjdk-devel-1.6.0.0-5.1.13.3.el5_10.i386.rpm | 15 MB 04:25
- (6/8): java-1.6.0-openjdk-javadoc-1.6.0.0-5.1.13.3.el5_10.i386.rpm (17%) 19% [============ ] 81 kB/s | 3.8 MB 03:19 ETA
3.確認是否安裝成功
[[email protected] ~]$ java -version
執行結果
-
[[email protected] ~]$ java -version
- java version "1.6.0_30"
- OpenJDK Runtime Environment (IcedTea6 1.13.3) (rhel-5.1.13.3.el5_10-i386)
- OpenJDK Client VM (build 23.25-b01, mixed mode)
4.預設情況下jdk安裝得路徑
/usr/lib/jvm
由於我們得機器可能同時安裝好幾個版本得jdk,所以在/etc/alternatives目錄下會有一個java連結到具體的java命令。而這個/etc/alternatives/java會被/usr/bin/java連結。從而java命令就被設定到了shell環境中。
設定環境變數
通常都喜歡用export命令直接在shell下設定
[[email protected] rpm]# export JAVA_HOME=/usr/java/j2sdk1.4.2_06 [[email protected] rpm]# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar [[email protected] rpm]# export PATH=$PATH:$JAVA_HOME/bin |
[[email protected] rpm]#vi .bashrc set JAVA_HOME=/usr/java/j2sdk1.4.2_06 export JAVA_HOME set PATH=$PATH:$JAVA_HOME/bin export PATH set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CLASSPATH |
[[email protected] rpm]# echo $JAVA_HOME /usr/java/j2sdk1.4.2_06/ [[email protected] rpm]# echo $CLASSPATH /usr/java/j2sdk1.4.2_06/lib/dt.jar:/usr/java/j2sdk1.4.2_06/lib/tools.jar [[email protected] rpm]# echo $PATH /usr/java/j2sdk1.4.2_06/bin/:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin [[email protected] rpm]# JAVA-version JAVA version "1.4.2_06" JAVA(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03) JAVA HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode) |
5. 環境設定OK,看看JDK是否能正常工作,我們來寫一個測試檔案test.java
[[email protected] rpm]#vi test.java class test { public static void main(String[] args) { System.out.println("Hello World!"); } } |
儲存退出,下面來編譯、執行;
[[email protected] text]# javac test.java [[email protected] text]# JAVA test Hello World! |
OK,工作正常。
6. 如果要使某個使用者具有執行java命令的許可權,只要修改其bash初始化檔案即可。
比如要給使用者longware以執行java命令的許可權,
[[email protected] root]# vi /home/longware/.bashrc set JAVA_HOME=/usr/java/j2sdk1.4.2_06 export JAVA_HOME set PATH=$PATH:$JAVA_HOME/bin export PATH set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CLASSPATH |
7. 至此,Linux上JDK的安裝完畢。
#*************************#
網上看到的設定環境變數的其他方法,現在還沒測過:
2.設定環境變數。
#vi /etc/profile
在最後面加入
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
儲存退出。
要使JDK在所有的使用者中使用,可以這樣:
vi /etc/profile.d/java.sh
在新的java.sh中輸入以下內容:
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
儲存退出,然後給java.sh分配許可權:chmod 755 /etc/profile.d/java.sh
#---------------------------------------------------------------#
自己總結:
上面的基本上是看到網上的安裝方法,但自己安裝的時候卻有點出入,本人安裝時之進行了一下幾步就可以了
沒像上面那樣需要那麼多步驟:
1. 去http://java.sun.com/j2se/1.4.2/download.html 下載一個Linux Platform的JDK,建議下載RPM自解壓格式的(RPM in self-extracting file,j2sdk-1_4_2_06-linux-i586-rpm.bin);
2. 上載到Linux伺服器上,在shell下執行命令:
[[email protected] rpm]# chmod a+x jdk-6u10-linux-i586-rpm.bin [[email protected] rpm]# ./jdk-6u10-linux-i586-rpm.bin |
這時會有一段Sun的協議,敲幾次空格鍵,當詢問是否同意的時候,敲yes就可以了。
Sun Microsystems, Inc. Binary Code License Agreement for the JAVATM 2 SOFTWARE DEVELOPMENT KIT (J2SDK), STANDARD EDITION, VERSION 1.4.2_X … Do you agree to the above license terms? [yes or no]yes Unpacking... Checksumming... 0 0 Extracting... UnZipSFX 5.40 of 28 November 1998, by Info-ZIP ([email protected]). inflating: j2sdk-1_4_2_06-linux-i586.rpm Done. |
3. 程式會自動生成一個j2sdk-1_4_2_06-linux-i586.rpm檔案,這是主程式包,下面來安裝;
[[email protected] rpm]#rpm –ivh jdk-6u10-linux-i586-rpm Preparing... ########################################### [100%] 1:j2sdk ########################################### [100%] |
安裝完後,直接用javac和java都會顯示使用方法,因此代表安裝成功。和上面兩種安裝方法的區別在於沒有設定
環境變數就安裝好了jdk,本人也不知到什麼回事,難道是JDK1.6更新的緣故,會自動設定環境變數.(本人linux
版本為Fedora8)
相關yum命令:
yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體包管理器。基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。[command]為所要進行的操作,[package ...]是操作的物件。
概括了部分常用的命令包括:
自動搜尋最快映象外掛: yum install yum-fastestmirror
安裝yum圖形視窗外掛: yum install yumex
檢視可能批量安裝的列表: yum grouplist
1 安裝
yum install 全部安裝
yum install package1 安裝指定的安裝包package1
yum groupinsall group1 安裝程式組group1
2 更新和升級
yum update 全部更新
yum update package1 更新指定程式包package1
yum check-update 檢查可更新的程式
yum upgrade package1 升級指定程式包package1
yum groupupdate group1 升級程式組group1
3 查詢和顯示
yum info package1 顯示安裝包資訊package1
yum list 顯示所有已經安裝和可以安裝的程式包
yum list package1 顯示指定程式包安裝情況package1
yum groupinfo group1 顯示程式組group1資訊yum search string 根據關鍵字string查詢安裝包
4 刪除程式
yum remove | erase package1 刪除程式包package1
yum groupremove group1 刪除程式組group1
yum deplist package1 檢視程式package1依賴情況
5 清除快取
yum clean packages 清除快取目錄下的軟體包
yum clean headers 清除快取目錄下的 headers
yum clean oldheaders 清除快取目錄下舊的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除快取目錄下的軟體包及舊的headers
比如,要安裝遊戲程式組,首先進行查詢:
#:yum grouplist
可以發現,可安裝的遊戲程式包名字是”Games and Entertainment“,這樣就可以進行安裝:
#:yum groupinstall "Games and Entertainment"
所 有的遊戲程式包就自動安裝了。在這裡Games and Entertainment的名字必須用雙引號選定,因為linux下面遇到空格會認為檔名結束了,因此必須告訴系統安裝的程式包的名字是“Games and Entertainment”而不是“Games"。
此外,還可以修改配置檔案/etc/yum.conf選擇安裝源。可見yum進行配置程式有多方便了吧。更多詳細的選項和命令,當然只要在命令提示行下面:man yum
yum groupinstall "KDE (K Desktop Environment)"
yum install pirut k3b mikmod
yum groupinstall "Server Configuration Tools"
yum groupinstall "Sound and Video"
#yum groupinstall "GNOME Desktop Environment"
yum groupinstall "Legacy Software Support"
yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"
#yum groupinstall "Windows File Server"
yum groupinstall "System Tools"
yum groupinstall "X Window System"
yum install php-gd
yum install gd-devel
yum groupinstall "Chinese Support"
#yum install samba-common //該執行會一起安裝 samba-client
#yum install samba
yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install gd-devel
yum install zlib-devel
yum install freetype-devel freetype-demos freetype-utils
yum install libpng-devel libpng10 libpng10-devel
yum install libjpeg-devel
yum install ImageMagick
yum install php-gd
yum install flex
yum install ImageMagick-devel
#yum install system-config-bind
#yum groupinstall "DNS Name Server" //安裝 bind 及 bind-chroot 套件
yum groupinstall "MySQL Database"'
yum clean all
-----------------------------------------------------------------------------------------------------------
裝了個fedora linux不能用中文輸入是一件很棘手的事,連搜解決方案都沒法搜。只能勉強用幾個拼音碰碰運氣,看Google能不能識別了。而我就遇見了這樣的事。
解決方案:
yum install scim* -y
yum 命令詳解:
Redhat和Fedora的軟體安裝命令是rpm,但是用rpm安裝軟體最大的麻煩就是需要手動尋找安裝該軟體所需要的一系列依賴關係,超級 麻煩不說,要是軟體不用了需要解除安裝的話由於解除安裝掉了某個依賴關係而導致其他的軟體不能用是非常惱人的。令人高興的是,Fedora終於推出了類似於 ubuntu中的apt的命令yum,令Fedora的軟體安裝變得簡單容易。Yum 有以下特點:
*可以同時配置多個資源庫(Repository)
*簡潔的配置檔案(/etc/yum.conf)
*自動解決增加或刪除rpm包時遇到的倚賴性問題
*使用方便
*保持與RPM資料庫的一致性
yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的[email protected]開發團隊進行改進,遂有此名。yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關資訊,檢查依賴性並自動提示使用者解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟體的倉庫,它可以是http或ftp站點,
也可以是本地軟體池,但必須包含rpm的header, header包括了rpm包的各種資訊,包括描述,功能,提供的檔案,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成餘下的任務。
1.yum的一切配置資訊都儲存在一個叫yum.conf的配置檔案中,通常位於/etc目 錄下,這是整個yum系統的重中之重,我在的F9中查看了這一檔案,大家一起來看下:
[[email protected] F9常用文件]$ sudo more /etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
下面簡單的對這一檔案作簡要的說明:
cachedir:yum快取的目錄,yum在此儲存下載的rpm包和資料庫,一般是/var/cache/yum。
debuglevel:除錯級別,0──10,預設是2
logfile:yum的日誌檔案,預設是/var/log/yum.log。
exactarch,有兩個選項1和0,代表是否只升級和你安裝軟體包cpu體系一致的包,如果設為1,則如你安裝了一個i386的rpm,則yum不會用686的包來升級。
gpgchkeck= 有1和0兩個選擇,分別代表是否是否進行gpg校驗,如果沒有這一項,預設好像也是檢查的。
2.好了,接下來就是yum的使用了,首先用yum來升級軟體,yum的操作大都須有超級使用者的許可權,當然可以用sudo。
yum update,這一步是必須的,yum會從伺服器的header目錄下載rpm的header,放在本地的快取中,這可能會花費一定的時間,但比起yum 給我們帶來方便,這些時間的花費又算的了什麼呢?header下載完畢,yum會判斷是否有可更新的軟體包,如果有,它會詢問你的意見,是否更新,還是說 y吧,把系統始終up to date總是不錯的,這時yum開始下載軟體包並使用呼叫rpm安裝,這可能要一定時間,取決於要更新軟體的數目和網路狀況,萬一網路斷了,也沒關係,再 進行一次就可以了。升級完畢,以後每天只要使用yum
check-update檢查一下有無跟新,如果有,就用yum update進行跟新,時刻保持系統為最新,堵住一切發現的漏洞。用yum update packagename 對某個單獨包進行升級。
現在簡單的把yum軟體升級的一些命令羅列一下:
(更新:我在安裝wine的時候是用rpm一個一個安裝的,先安裝以來關係,然後在安裝wine的主包,但是剛剛在論壇上發現來一個好的帖子,就yum的本地安裝。引數是-localinstall
$yum localinstall wine-*
這樣的話,yum會自動安裝所有的依賴關係,而不用rpm一個一個的安裝了,省了好多工作。
還有一個與他類似的引數:
$yum localupdate wine-*
如果有wine的新版本,而且你也下載到來本地,就可以這樣本地更新wine了。)
1.列出所有可更新的軟體清單
命令:yum check-update
2.安裝所有更新軟體
命令:yum update
3.僅安裝指定的軟體
命令:yum install
4.僅更新指定的軟體
命令:yum update
5.列出所有可安裝的軟體清單
命令:yum list
3.使用yum安裝和解除安裝軟體,有個前提是yum安裝的軟體包都是rpm格式的。
安裝的命令是,yum install xxx,yum會查詢資料庫,有無這一軟體包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除衝突的包,你可以自己作出判斷
刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢資料庫,給出解決依賴關係的提示。
1.用YUM安裝軟體包
命令:yum install
2.用YUM刪除軟體包
命令:yum remove
4.用yum查詢想安裝的軟體
我們常會碰到這樣的情況,想要安裝一個軟體,只知道它和某方面有關,但又不能確切知道它的名字。這時yum的查詢功能就起作用了。你可以用 yum search keyword這樣的命令來進行搜尋,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用 yum search messenger這樣的指令進行搜尋,yum會搜尋所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,於是我們可能得到 gaim,kopete等等,並從中選擇。
有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來獲取資訊。
1.使用YUM查詢軟體包
命令:yum search
2.列出所有可安裝的軟體包
命令:yum list
3.列出所有可更新的軟體包
命令:yum list updates
4.列出所有已安裝的軟體包
命令:yum list installed
5.列出所有已安裝但不在 Yum Repository 內的軟體包
命令:yum list extras
6.列出所指定的軟體包
命令:yum list 7.使用YUM獲取軟體包資訊
命令:yum info 8.列出所有軟體包的資訊
命令:yum info
9.列出所有可更新的軟體包資訊
命令:yum info updates
10.列出所有已安裝的軟體包資訊
命令:yum info installed
11.列出所有已安裝但不在 Yum Repository 內的軟體包資訊
命令:yum info extras
12.列出軟體包提供哪些檔案
命令:yum provides
5.清除YUM快取
yum 會把下載的軟體包和header儲存在cache中,而不會自動刪除。如果我們覺得它們佔用了磁碟空間,可以使用yum clean指令進行清除,更精確的用法是yum clean headers清除header,yum clean packages清除下載的rpm包,yum clean all 清除所有
1.清除快取目錄(/var/cache/yum)下的軟體包
命令:yum clean packages
2.清除快取目錄(/var/cache/yum)下的 headers
命令:yum clean headers
3.清除快取目錄(/var/cache/yum)下舊的 headers
命令:yum clean oldheaders
4.清除快取目錄(/var/cache/yum)下的軟體包及舊的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
以上所有命令引數的使用都可以用man來檢視:
1、安裝圖形版yumex:yum install yumex。
2、安裝額外的軟體倉庫:
rpm.livna.org 的軟體包倉庫:
rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm
3、安裝最快源 yum install yum-fastestmirror
資源真的是非常豐富,從Centos到Ubuntu,ISO映象、升級包,應有盡有,上交的兄弟們真是幸福,羨慕啊。不過還好,我們好歹也算是在教育網內,湊合著也可以沾點光,下載一些。
網址為:ftp://ftp.sjtu.edu.cn/
相應的yum的repo為
[updates]
name=Fedora updates
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=0
[fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
如果在機器上安裝了apt管理器,則相應的源為
repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/updates/$(VERSION)/$(ARCH)/
repomd ftp://ftp.sjtu.edu.cn/ fedora/linux/releases/$(VERSION)/Everything/$(ARCH)/os/
這與前面yum的源的格式上有一些差別,需要加以注意。
下面介紹一下fedora 下安裝 scim
1. 什麼輸入法適合我?
fcitx和scim是目前比較好的輸入法, 但是他們的特點不同,fcitx只能輸入中文,而scim可以根據需要,利用不同的碼錶達到中英日…等等各種語言的輸入問題。如果你只懂中文,或者只會輸 入英文&中文,那麼fcitx是一個不錯的選擇,因為它漂亮,小巧,實用。如果你還需要輸入日文或者其他語言,那麼你因該安裝scim。通 過合理的配置,他能夠讓你像在windows裡面一樣,想輸入什麼語言就能輸入什麼語言,同一種語言想用什麼輸入法就用什麼輸入法。Scim的擴充性很 強,而且比較穩定,我就是選擇的是scim.
2. 安裝一個新輸入法前需要哪些準備?
如果你選擇fcitx或者scim,那麼我建議你刪除系統自帶的中文輸入法。方法如下:
rpm –qa | grep iiimf | xargs rpm –e
rpm –qa | grep Chinput| xargs rpm –e
如果有哪一行提示rpm: no packages given for erase那表示本身你的系統裡面沒有該輸入法,不用擔心,繼續往下看就行了。
說 明:rpm –qa是列出所有安裝的rpm包,grep iiimf是選擇出其中名字含有iiimf的那些包,xargs rpm –e的意思是把前面列出的這些包刪除掉。Xargs的作用就是把前面通過 | 傳過來的資料作為下面命令的引數。這就好比一個過濾器,首先是放著所有的安裝包,然後grep以後,只留下了含有某些特定關鍵字的rpm包,然後通過 xargs和rpm –e的組合運用,把剩下的這些含有某特定關鍵字的包刪掉。這樣就達到了刪除該輸入法及相關包的目的。下面的Chinput也是如此,在此不再重複。如果你還安裝了其他輸入法,比如你原來裝的是fcitx,現在想裝scim,那麼你最好模仿上面的樣子把fcitx刪除,方法就是把iiimf的位置改成
fcitx就可以了。
在安裝新輸入法之前,最好這樣做一下,因為多種輸入法同時存在一個系統中沒有什麼好處,你只可能去用一個,而且他們同時存在可能有的時候會出現問題,想想也知道,會互相競爭嘛。所以在此以後,你應該保證系統裡面已經沒有中文輸入法了。通過類似以下方式驗證:
whereis fcitx
whereis scim
whereis miniChinput
…
3. 輸入法是何時被系統呼叫的?
很多人不知道輸入法到底什麼時候被load進來,不知道這個當然就不知道為什麼有的時候呼不出輸入法(因為可能根本沒有調入)當然也不會知道如何配置能夠符合自己的要求。
大 家都知道,linux下面比較常用的有兩個桌面系統,gnome和kde,這都無所謂,他們其實都是架在X系統之上的。簡單的說X系統就是一個最核心,也 是最底層的桌面系統,gnome也好,kde也罷,或者其他的什麼fvwm之類的,都只不過是X系統和使用者之間的另一層軟體而已。所以要想達到不管使用什 麼桌面系統,都能調入輸入法,就是要在X系統啟動的時候,讓輸入法也啟動起來,那麼這樣之後,無論你使用的是gnome還是kde或者其他什麼桌面,都能 夠調入輸入法。因為當輪到他們啟動的時候,X系統已經啟動好了,輸入法已經被系統調入了。那麼X系統又是如何啟動的呢?讓我們從startx開始說起。
無論你用什麼桌面系統,都是通過startx啟動的,那麼startx究竟是什麼呢?一個應用程式還是一個指令碼檔案?為什麼它能夠啟動各種桌面系統,並且能夠按照相應的配置檔案來設定呢?帶著疑問,我在console裡面輸入whereis startx.
在 找到了存放startx的路徑以後,用編輯器開啟它發現原來是一個指令碼檔案。這個指令碼檔案的內容可能根據發行版不同,會有差異,如果你懂一些shell的 語言,那麼你可以嘗試看看,不一定要全部看懂,但是你大致看過以後會發現最後有一個xinit的命令,然後跟著一些引數。我嘗試在console下面輸入 xinit(注意,不要在圖形介面下做此操作)
發現圖形介面啟動拉,但是很醜陋,什麼功能都沒有,滑鼠可以動,還有一個可以輸入命令的小視窗。怎 麼退出來?ctrl+alt+backspace. 原來如此,startx只是一個指令碼,裡面通過對一系列配置檔案的分析設定,最終利用xinit命令啟動圖形介面。不管是kde還是gnome,都是在這 個指令碼中完成的。那麼讓我們再開啟startx指令碼看看裡面還做了些什麼。你仔細看看,會發現有一個東西很顯眼,就是/etc/X11/xinit /xinitrc,這個xinitrc好像很眼熟,在配置輸入法的其他貼中總是看到,這裡出現了肯定是裡面運行了這個指令碼。再看其他的一些東西,其實都是利用shell配置出一個xinit啟動的引數,用來配置桌面系統用的,不用管它。目前已知的就是startx的時候它會去執行一個/etc/X11
/xinit/xinitrc的指令碼,讓我們開啟來看看裡面有什麼。
開啟一看,其中一段我覺得最有價值,是一個for迴圈,他依次執行了/etc /X11/xinit/xinitrc.d/下面的所有指令碼。你可以耐心的找一下,一定可以發現。那麼這個目錄裡面有些什麼內容呢?有一個檔案看名字就知道和輸入相關,他叫xinput。等等,讓我們理一下,是怎麼從startx到xinput的。
首先是執行startx這個指令碼檔案,裡面他會執行xinitrc這個指令碼,然後xinitrc腳本里面的,叫xinput。OK, 我們繼續,開啟xinput看看。
4.安裝軟體包
rpm -Uvh scim-0.8.2-1.i586.rpm
rpm -Uvh scim-chinese-0.2.6-1.i586.rpm
5.修改配置檔案
接下來重要的一步就是,修改一下
/etc /X11/xinit/xinitrc.d/xinput檔案,讓SCIM在X啟動的時候也啟動。我看到網上很多文章也說過,但總是不得要領,經過自己試 驗,最簡單的就是把xinput檔案裡的Chinput全部替換為SCIM,chinput替換為scim,儲存重啟X就可以了。
zh_CN*)
if [ -e /usr/bin/scim ]; then
XIM="SCIM"
elif [ -e /usr/X11R6/bin/xcin ] ; then
export LC_CTYPE=zh_CN.GB2312
XIM="xcin-zh_CN.GB2312"
fi
;;
..............................
SCIM)
XIM_PROGRAM=scim
XIM_ARGS="-d"
;;
然後修改/etc/gtk-2.0/gtk.immodules,找到這一行:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:zh"
改為:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:zh"
可能表示輸入英文時也使用該輸入法
安裝完畢後執行scim-setup,將輸入法的切換鍵改為ctrl+space