Fedora 19 勁爆來襲:安裝體驗手記
原創【51CTO原創稿件】一、Fedora 19 簡介
一直以來Ubuntu、Fedora和Mint三大Linux桌面操作系統發行版一直穩居前三名(排名情況)。2013年7月3日,Fedora項目有一款力作:Fedora 19正式版發布。Fedora 19除了桌面版之外,還提供了KDE定制版、LXDE定制版等,有興趣的網友可以在其官網上下載試用。 據了解Fedora 18正式版一方面做了常規的軟件版本更新,另外一方面加入一些新功能:內核升級至3.9.0。增加了使用Extlinux引導程序的選擇,它是Syslinux引導程序家族一員。初始設置屏幕重新設計。anaconda安裝程序重寫(Fedora 18便已開始),提供了對高級存儲的支持,比如fcoe、iscsi、multipath。文本模式也有所改進。GRUB外觀、GRUB菜單進行了修改,更加無縫化,更吸引人。node.js運行和NPM整合管理員,用于開發用于分布式設備的可擴展網絡應用軟件或實時應用軟件; Fedora 19將傳統版本的語言繼續更新至PHP(5.5),最新的版本語言為Ruby 2.0.0。Fedora 19在操作系統的管理上也做了各種改進,包括啟動流程、故障恢復、系統遷移及其它。Fedora 19包括了診斷、監控和日志工具,幫助用戶由被動變主動,擁有更多自由時間。
顯著的改進包括:
- 虛擬機存儲遷移:無需主機間共享存儲即可幫助用戶完成虛擬機, 在用存儲的遷移。
- 系統資源控制:無需重啟即可修改服務設置。
- 檢查和恢復功能:用于故障恢復或者設備間的流程遷移。
- OpenLMI:用于系統和存儲遠程管理的常用基礎架構;最新版本的OpenStack(又名Grizzly),包括了Heat和Ceilometer項目。#p#
二、安裝過程簡介
Fedora 19整個安裝過程也是非常的簡單, 基本上和上個版本相同,這里筆者就不贅述了。圖1 是集中配置界面,這個配置界面是從Fedora 18開始出現的 。
圖1 Fedora 19集中配置界面
升級安裝的步驟
命令行模式,包括如下幾個步驟:
- #yum install fedora-upgrade
- #fedora-upgrade.
下面按照提示操作,如圖2:
圖2 使用fedora-upgrade工具
使用fedup
fedup工具是個新增的 Fedora 升級安裝工具,用來替代之前版本所使用的 preupgrade 和 DVD 升級方式。它通過 systemd 實現大多數升級功能。最終可以從 DVD 取得軟件包,并能夠使用標準安裝源,而無需使用專門的升級源。
- $ yum update yum
- $ sudo yum install fedup
- $ sudo fedup-cli --network 19 --debuglog /root/fedupdebug.log
- $ sudo yum distro-sync
在您重啟時,在 grub 提示窗口會出現"System Upgrade"引導選項如圖3。系統會引導至一個特殊的環境進行升級。升級時屏幕上會以圖 形化顯示升級進度。
您可以休息一下,升級過程通常需要一段時間(45-90分鐘不等,取決于系統),請耐心等待升級完成。系統將在升級完畢后引導到新版 Fedora。
圖3 出現"System Upgrade"引導選項
#p#
三、簡單介紹一下幾個桌面環境
1、Linux 桌面簡介
Linux粉絲希望Windows 8的界面變化能驅使更多用戶使用Linux,然而開源操作系統自身也面臨界面挑戰。爭論始于GNOME發布GNOME 3.0,它對用戶界面進行了激進的改變,用戶對它褒貶不一。Ubuntu隨后宣布了自己的界面Unity,但反響更差。 Linux發行版的一個問題是切換界面需要頗費周折,例如Ubuntu安裝盤只有Unity,使用其它桌面環境需要另找相應的安裝(如KDE), Linux Mint情況類似,但剛剛發布的Fedora 19 提供了一種更簡單的方法讓用戶選擇他們喜歡的Linux GUI。
2、設置GNOME 桌面
大家注意這個和上個版本是不同的,第一次使用GNOME 要進行簡單的設置,包括幾個步驟:
(1)首先選擇語言,如圖4:
圖4 選擇語言
(2)接著選擇輸入源,如圖5:
圖5 選擇輸入源
(3)接著選擇在線帳號,如圖6:
圖 6 選擇在線帳號
(4)下面就開始使用Gnome 3,如圖7:
圖 7 開始使用
#p#
(5)簡單說說GNOME 3.8桌面
Fedora 18采用了GNOME 3.8如圖8,這個界面分為四個部分,左側的常用應用快捷方式,打開一個應用程序都會在左側顯示出來,沒有個數限制;左上方顯示"窗口"和"應用 程序",分別顯示當前打開的程序和所有的應用程序;右上方則為搜索欄。多應用同時顯示在"窗口"內,可以通過"Alt+Tab"組合鍵進行切換。選擇某個應用程序可以通過"搜索"欄直接搜索,也可以通過右側分類目錄定向選擇。多應用同時顯示在"窗口"內,可以通過"Alt+Tab"組合鍵進行切換 ,而桌面的右側豎條則用來呈現多窗口顯示,默認最多有六個窗口。
圖8 GNOME 3.8桌面
3、安裝使用cinnamon桌面
基于GNOME 3的桌面分支Cinnamon 1.8引入了控制中心,包含所有可配置模塊,登錄管理器支持HTML5、CSS、JavaScript和WebGL;安裝方法:
- # yum install cinnamon
- #echo "exec /usr/bin/gnome-session-cinnamon" >> ~/.xinitrc
圖 9 是登錄界面:
圖9 會話選擇界面
如果沒有使用圖形加速卡,那么系統會提示使用Software Rendering模式,如圖10:
圖10 Software Rendering模式
圖11 是Cinnamon 1.8菜單欄
圖11 Cinnamon 1.8菜單欄
#p#
簡單介紹一下Cinnamon 1.8新功能
- Meno
Nemo作為Cinnamon默認的文件管理器,版本是 1.82。如圖12:
圖12 Nemo作為Cinnamon默認的文件管理器
1、Nemo文件管理器主要特點:
- 可以打開終端(這是Nemo本身的一部分)
- 使用root權限打開目錄
- 文件操作進度信息(當你復制/移動文件,你可以看到的操作進度的百分比信息)
- GTK書簽管理
- 全導航選項(包括后退,前進,刷新等功能)
- 更多的配置選項
- 使用desklets
desklets一種桌面小工具,例如圖形的時鐘,精美的日歷。在系統設置菜單中啟動desklets,如圖13 :
圖13 desklets設置界面
在左側的分類中按類別選擇"clock ",即日期和時間組件,另外可以看到已經有幾個組件,這是隨"gDesklets"管理器附帶安裝的,雙擊"Clock"時鐘組件,并在桌面放置如圖14。
圖14 gDesklets"管理器
圖15 桌面時鐘的界面
不過隨"gDesklets"管理器附帶部件僅有可憐的幾個,我們可以去 www.gdesklets.de 網站下載更多更有趣的桌面小部件,每個部件都以tar包方式提供免費下載。關于"gDesklets"桌面小部件的介紹和使用就簡單地介紹到這里,有更多好玩有趣的東西和各種功能效果等待你去探索哦!趕快去試試吧,把你的桌面變得更有生氣。#p#
2、安裝使用MATE桌面
MATE 桌面是一個基于 Gnome 2 開發的 Linux 桌面系統。以幫助不習慣Gnome+shell桌面的童鞋能夠繼續使用習慣的桌面。MATE得名于南美植物巴拉圭冬青(yerba mate),GNOME 3的激進改變和不成熟讓很多GNOME 2忠實用戶難以接受,他們中的許多人依舊認為GNOME 2是最好的桌面環境,但不想一直使用舊的發行版。Linux Mint發行版的開發者因此創建了MATE項目,基于GNOME 2.32的分支。現在他們發布了MATE 1.2,修正了大量bug,引入了一些新功能,如在文件管理器Caja中加入撤銷和重復。根據路線圖,MATE桌面未來將支持GTK3、整合GNOME 3中的一些合適的新特性。
一些GNOME程序已經成功移植:
- Caja - 文件管理器 (源自Nautilus)
- Pluma - 文本編輯器(源自Gedit)
- Eye of MATE - 圖像瀏覽器(源自Eye of GNOME)
- Atril - 文檔瀏覽器(源自Evince)
- Engrampa - 壓縮工具(源自File Roller)
- MATE Terminal - 終端模擬器 (源自GNOME Terminal)
- Marco -窗口管理器(源自Metacity)
MATE桌面安裝步驟如下:
- #yum -y groupinstall "MATE Desktop"
- #echo "exec /usr/bin/mate-session" >> ~/.xinitrc
- #startx
MATE桌面工作界面,如圖16:
圖16 MATE桌面工作界面
3、安裝使用KDE桌面
KDE,K桌面環境(Kool Desktop Environment)的縮寫。一種著名的運行于 Linux、Unix 以及FreeBSD 等操作系統上面自由圖形工作環境,整個系統采用的都是 TrollTech 公司所開發的 Qt 程序庫(現在屬于諾基亞公司)。KDE 和 Gnome 都是 Linux 操作系統上最流行的桌面環境系統。安裝:
- # yum -y groupinstall "KDE Plasma Workspaces"
KDE桌面,如圖17:
圖17 KDE桌面
#p#
四、簡單介紹幾個新工具
1、node.js
(1)簡介
node.js運行和NPM整合管理員,用于開發用于分布式設備的可擴展網絡應用軟件或實時應用軟件;Node.js是一套用來編寫高性能網絡服務器的JavaScript工具包,一系列的變化由此開始。他。Node為創建http服務器作了優化,所以你在網上看到的大部分示例和庫都是集中在web上(http框架、模板庫等)。它的官方簡介如下:“Node.js是建立在Chrome瀏覽器的JavaScript運行時基礎上,用于快速構建可擴展的網絡應用的平臺。 Node.js的使用事件驅動,非阻塞I / O模型,使得它量輕高效,可完美的用于分布式環境下的數據密集型、實時應用程序。”logo如下:
(2)安裝
- # yum install nodejs
命令行下測試一下:
- $ echo 'console.log("Hello World");' > /tmp/hello.js
- $ node -v
- $ node /tmp/hello.js
應當顯示"Hello World!"如圖18。
圖18 命令行下測試一下
安裝npm:
npm (Node Package Manager) 是 Node.js 的軟件包管理程序。
- # yum install npm nodejs-mkdirp
#p#
建立HelloWorld測試服務器程序:
用gedit記事本新建一個JavaScript文件:svr.js
var http = require('http'); //請求http模塊,以下程序中,變量http代表該模塊 var getCount=0; //為測試使用的變量,用于記錄客戶端請求次數 console.time('[HelloWorldSvr][Start]'); //開始服務啟動計時器,命名并開始一個計時器,將來通過其名稱來結束該計時器,并輸出到控制臺 http.createServer(function (request, response) { //創建一個http服務器,唯一的參數是一個匿名的請求響應函數,如下: getCount++; //請求計數器加1 var getNo=getCount; //記錄本次請求的序號,方便日志輸出 console.time('[HelloWorldSvr][Get]'+getNo); //開始請求響應計時器 console.log(request.url); //向控制臺輸出請求的路徑 //以下多行簡單的忽略請求的路徑,直接向http返回一段html文本 response.writeHead(200, {'Content-Type': 'text/html'}); response.write('<html><body>'); response.write('<h1>*** Node.js ***</h1>'); response.write('<h2>Hello World!'+getNo+'</h2>'); response.end('</body></html>'); console.timeEnd('[HelloWorldSvr][Get]'+getNo); //結束請求相應計時器,并向控制臺輸出本次請求相應花費的時間 }).listen(8124); //開始偵聽8124端口,也就是說,從此刻開始本機8124端口上建立起了一個簡單的http服務器,不管如何請求,都返回一段簡單的html文本 console.log('[HelloWorldSvr][Start] running at http://127.0.0.1:8124/'); //向控制臺輸出服務啟動的信息 console.timeEnd('[HelloWorldSvr][Start]'); //結束服務啟動計時器,并向控制臺輸出服務啟動花費的時間
以上就是構建一個簡單的http服務器的全部代碼,這個服務啟偵聽8124端口,對任何http請求。
運行并測試服務器程序:
要將其運行起來可在命令行下輸入,你的新建的cjh.js文件就放在root目錄下:
運行結果如圖19:
圖19
我們看到,我們的HelloWorld服務器已經運行于http://127.0.0.1:8124,啟動時間為76毫秒。
如何停下來呢?簡單,只需要在命令行中輸入CTL+C就行。
讓我們再次運行起HelloWorld服務器,并打開瀏覽器訪問http://127.0.0.1:8124地址,結果如圖20:
圖20
#p#
2、基于命令行的虛擬化工具libguestfs-tools
首先安裝libguestfs-tools 和 修改軟件包:
- #yum -y install qemu-kvm libvirt virt-install bridge-utils libguestfs-tools virt-top
libguestfs是一個目錄,幫助你訪問和修改虛擬機磁盤鏡像。libgustfs 是一個想要一統天下的虛擬機鏡像查看/修改工具, 號稱支持幾乎所有類型的虛擬機鏡像, libguestfs-tools。
下面介紹幾個主要命令:
- virt-top
virt-top命令由同名軟件包提供,和top命令相似,只是進程換成了虛擬機,輸出如圖22:
圖22
virt-cat
virt-cat可以查看虛擬機中文件的內容,用法如下:
virt-cat [--options] -d domname file [file ...] virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...] 如: #virt-cat -d www /etc/passwd root:x:0:0:root:/root:/bin/bash adm:x:3:4:adm:/var/adm:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync ...
virt-edit
這個命令可以修改相關文件,用法如下:
virt-edit [--options] -d domname file [file ...]
virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]
例如:
#virt-edit -d www /etc/fstab # /etc/fstab # Created by anaconda on Tue Jul 2 11:15:36 2013 # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info /dev/mapper/fedora-root / ext4 defaults 1 1 UUID=3798559f-12f9-46d3-88d0-e78d7548463e /boot ext4 defaults 1 2 /dev/mapper/fedora-swap swap swap defaults 0 0
在我的系統中它會用vim打開文件,編輯完保存即可修改虛擬機內的文件內容,也可以直接對虛擬機的磁盤文件進行操作。
virt-df
這個命令是比較簡單了,就是將在虛擬機中執行df命令的查看虛擬機磁盤。
#virt-df -d www Filesystem 1K-blocks Used Available Use% www:/dev/sda1 487652 78425 383627 17% www:/dev/fedora/root 28244124 3480080 23322664 13%
virt-ls
virt-ls可以列出虛擬機中目錄下的文件或目錄,用法如下:
virt-ls [--options] -d domname dir [dir ...] virt-ls [--options] -a disk.img [-a disk.img ...] dir [dir ...] 如: # virt-ls -l -d www /root total 48 dr-xr-x---. 3 root root 4096 Jul 2 20:28 . dr-xr-xr-x. 18 root root 4096 Jul 2 20:28 .. -rw-------. 1 root root 711 Jul 2 22:24 .bash_history -rw-r--r--. 1 root root 18 Feb 18 12:13 .bash_logout
guestmount
這個命令用來掛載虛擬磁盤,Linux KVM支持多種虛擬磁盤類型。其中比較典型的是raw和qcow2。對于raw型的磁盤。因為使用的是裸設備形式的讀寫,沒有采用任何形式的壓縮。所以您可以使用losetup命令直接把raw形式的磁盤文件生成一個loop設備。使用kpartx 命令讀取分區,并作相應映射。即可直接掛載客戶機文件系統。對于qcow2或其他非raw格式的客戶機磁盤。需要使用一個KVM提供的一個命令guestmount來掛載客戶機磁盤。下面是一個例子:
- #guestmount -a /home/kvm/guest.img -m /dev/VolGroup /lv_root -m /dev/sda1:/boot --rw /mnt/cdisk/
命令解釋:-a參數指定虛擬磁盤,-d參數指定虛擬實例名,即在虛擬機管理器中顯示的名稱;-m參數指定要掛載的設備在客戶機中的掛載點,如果指定錯誤,會有錯誤輸出,然后給出正確的掛載點;-rw表示以讀寫的形式掛載到宿主機中,-ro理所當然的表示以只讀的形式掛載;最后給出在宿主機中的掛載點 。#p#
3、配置nested KVM
Nested KVM(嵌套虛擬機(Nested VMs)):實際就是在一個正在運行的虛擬機內安裝多一個虛擬機,并且使之運行。
首先修改配置文件:
- vi /etc/modprobe.d/kvm-nested.conf
- # create new
- options kvm_intel nested=1
模塊加載
#modprobe -r kvm_intel #modprobe kvm_intel #cat /sys/module/kvm_intel/parameters/nested Y
如果結果是 Y, 那么說明加載 KVM 的時候已經開啟了 Nested KVM。
AMD 的和 KVM 的類似。
檢查是否開啟了 Nested KVM?
- $ cat /sys/module/kvm_amd/parameters/nested 1
如果結果是 1, 那么說明加載 KVM 的時候已經開啟了 Nested KVM, 否則使用以 下指令重載 KVM 模塊:
- $ sudo modprobe -r kvm-amd $ sudo modprobe kvm-amd nested=1
檢查一下中央處理器是否支持如下模塊:
- #virsh capabilities | egrep "/model|/vendor"
- <model>SandyBridge</model>
- <vendor>Intel</vendor>
- <model>none</model>
- <model>dac</model>
最后編輯虛擬機:
#virsh edit www
<cpu mode='custom' match='exact'> <model fallback='allow'>SandyBridge</model> <vendor>Intel</vendor> <feature policy='require' name='vmx'/> </cpu>