【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>