Linux概况及安装.ppt
Linux操作系统,计算机科学与技术学院虞宏霄,第1章 Linux概况及安装,本章学习目标本章主要让学生在使用Linux操作系统之前能对Linux操作系统有一个大致的了解,以帮助学生对后续课程的学习。通过对本章的学习,读者应该掌握以下主要内容:,主要内容:,什么是LinuxLinux操作系统的由来和发展历程Linux操作系统安装过程使用RPM 来管理软件包Linux操作系统与GNU Linux操作系统与Unix的关系,1.1 Linux概述,1.1.1 Linux简介什么是Linux 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux最早由一位名叫Linus Torvalds的计算机爱好者开发,他的目的是设计一个代替Minix的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。,Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。,GNU计划:GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的,目标是创建一套完全自由的Unix-like操作系统。1985年Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。1991年 Linux 内核发布,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。,Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。,2.Linux操作系统发展史,Linux最初的生成动机应当追溯到1990年的秋天,那时Linus正在赫尔辛基大学学习Unix课程,所用的教材是Andrew Tanenbaum的操作系统:设计与实施。因为在学校上机需要长时间排队等待,于是他“一气之下,干脆自己掏钱买了一台PC机”,利用这台PC及Tanenbaum教授自行设计的微型Unix操作系统Minix(阿姆斯特丹自由(vrije)大学计算机科学系的Andrew S.Tanenbaum教授所发展的一个类Unix操作系统)为开发平台,自己编写程序。“这个程序包括两个进程,都是向屏幕上写字母,然后用一个定时器来切换这两个进程,一个进程写A,另一个进程写B,所以就在屏幕上看到了AAAA,BBBB,如此循环重复的输出结果”。,1991年,他需要一个简单的终端仿真程序来存取Usenet新闻组的内容,于是他就在前两个草草编写的进程的基础上又写了一个程序。当然,他把那些个A和B改成了别的东西。“一个进程是从键盘上阅读输入然后发送给调制解调器,另一个进程是从调制解调器上阅读发送来的信息然后送到屏幕上供人阅读”。然而要实现这两个进程,还需要驱动程序,他必须为不同的显示器、键盘和调制解调器编写驱动程序。同时,他希望能在Linux下编译gcc,在经过两个月的工作后,他拥有了第一个硬盘驱动程序,和一个小型文件管理系统。1991的8月下旬,完成了0.01版。这个版本从来没有正式宣布出版过。事实上这个版本无法独立运行,它仅是一个核心程序的雏型,需要Minix的支持才能进行编译和运行。,1991年10月5日,Linus Torvald正式宣布了Linux的第一个正式版本:0.02版。这个版本能够运行bash和gcc。随即Linux引起黑客们(hacker)的注意,通过计算机网络加入到了Linux的内核开发。Linux倾向于成为一个黑客的系统。直到今天,在Linux社区里内核的开发被认为是真正的编程。由于一批高水平黑客的加入,使Linux发展迅猛。1993年,Bob Yang建立ACC公司,营销Linux软件及相关书籍。1994年,Mark Eving建立Linux分销,推出了RedHat Linux 1.0版。,1995年,Bob Yang收购了Mark Eving的业务,建立ACC/RedHat公司,推出了RedHat Linux 2.0版。2003年,RedHat Linux 9.0版发布,占据了Linux市场份额的86%。至此,RedHat不再发布桌面Linux,改为Fedora Core,致力于开发Linux的服务器版。2009.8.26发布的Fedora Core 12 Alpha,是目前Linux的最新版。,核心的开发和规范一直是由Linux社区控制着,版本也是唯一的。实际上,操作系统的内核版本指的是在Linus本人领导下的开发小组开发出的系统内核的版本号。自1994年3月14日发布了第一个正式版本Linux 1.0以来,每隔一段时间就有新的版本或其修订版公布。最新的内核代码可由以下网址下载:http:/www.kernel.org/,Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。内核决定一个系统是否是Linux。以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。,2.Linux系统的主要特点,开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。,设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度适应能力 提供了丰富的网络功能:完善的内置网络是Linux一大特点。可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。,3 LINUX的组成,LINUX的内核:内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。LINUX SHELL:Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。LINUX文件系统:Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前流行的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。,1.1.2 主要的Linux版本,红旗Linux(中科)http:/www.redflag-(Xteam linux)http:/Red Hat Linux http:/Mandrake Linux TurboLinux http:/DebianLinux http:/,1.1.3 Red Hat Linux的主要优势,1.2 Red Hat 9.0的安装1.2.1 Red Hat 9.0的硬件需求1.2.2 安装前的准备,1.2.3 Red Hat 9.0安装的步骤,(1)语言选择:,(2)键盘配置:,(3)鼠标配置:,(4)选择安装还是升级:,(5)安装类型:,(6)磁盘分区设置:,(7)为系统分区:,在Linux下,硬盘是一个设备,实际上Linux下什么都是设备。对于IDE硬盘而言,Linux认为存在四个设备,对应于IDE的四个位置接的设备。如果装过机器我们知道主板上有两个槽,IDE0和IDE1,每个槽上能挂两个设备,主盘和从盘,这些盘可以是硬盘可以是光驱。在Linux下,这些设备用/dev/hdx来标示。IDE0上的主盘就是/dev/hda,从盘就是hdb,依此类推,如果可以有多个IDE槽就可以延续到hde hdf等。,总之每条硬盘线上接的设备都被Linux认为是一个/dev/hdx设备。如果你的机器是IDE0槽上的主盘是硬盘,那它就是hda,如果IDE1的槽上主盘是一个光驱,那它就是hdc。在windows下fdisk是对“硬盘1”,“硬盘2”进行操作,而linux下的fdisk就是对/dev/hda,/dev/hdb等进行操作。Linux下的分区概念是,硬盘上的每个分区也是一个设备。他们的标志是/dev/hdxy,其中hdx根前面一样表示哪个硬盘,y表示第几个分区。以hda为例。hda1就是第一个分区,hda4就是第四个分区位置。,明白了Linux对分区的处理。下来就是分区策略了。在分区界面中,你需要告诉linux安装程序在硬盘的什么地方安装linux。你需要告诉它一些信息,其中包括,建立一个新的Linux分区,多大,mount到哪里。这里需要介绍一下mount的概念。,我们知道硬盘是可以分成很多分区的,每个分区由各个操作系统格式化然后就可以使用了。但是要使用必须有一种方法。windows,或者DOS的做法是将格式化好的分区挂(或者说mount)成C:D:E:盘。盘符的分配是操作系统决定的(到NT后可以用户指定)。在Linux下某个分区怎么使用必须用户自己指定。在Linux下分区并不按照C:D:E分配,而是挂(mount)到一个目录下。,整个Linux的存储空间结构是一个目录树(而不是每个C:D:E:下各有自己的目录树)。最上一层是根目录(用/表示,注意不是windows的反斜杠)在根目录下有其它目录。首先需要有一个分区mount成/,然后再在根下面建立其它目录,然后把分区mount到这些目录上去。所以整体来看一个linux的存储系统是一个目录树,但是它可以包括很多分区,甚至其它存储设备,比如光驱,内存盘,或者网络磁盘等。,在Linux安装的时候除了/还有几个目录是可以预先建立的,我们需要知道的是/usr,/home还有/root。先不管他们都做什么,一般而言我们需要分一个空间,指定它为Linux Native类型,然后mount point成这几个目录之一。另外还需要注意的是Linux分区有两种类型,native是可以存储文件建立目录的那种,还有一个linux swap,这个是linux的内存交换分区,在安装RH的时候必须指定一个。所以在安装的时候最少需要分一个区,类型linux native,mount到/上,然后一个分区类型linux swap,swap区不mount为任何目录,系统对其进行单独处理。,接下来是分区大小问题,安装Linux一般而言2G空间为/就差不多了,初次安装为方便起见,可以建一个3G的分区mount point为/,然后一个swap。swap的大小作的跟内存一样大就是了,例如256M。以后再安装的时候可以根据自己对硬盘的要求建立其它分区来mount,比如/home。对于已经安装了Windows的机器,可以在Linux安装程序里删除一个windows的分区,一般而言是一个逻辑分区,然后在它的空间里建立Linux的分区。,(8)添加分区:,(9)引导装载程序配置:,(10)网络配置:,(11)防火墙配置:,(12)语言支持的选择:,(13)时区配置:,(14)设置根口令,(15)选择软件包组:,(16)准备安装:,应该看到一个安装 Red Hat Linux 做准备的屏幕。当你重新引导系统后,一份完整的安装日志可在/root/install.log 中找到,以备今后参考。要取消安装进程,按计算机的重新启动按钮,或者使用 Control-Alt-Delete 组合键来重启计算机。,(17)安装软件包:,(18)创建引导盘:,(19)视频卡配置:,(20)配置显示器:,(21)定制配置:,(22)安装完成,祝贺你!你的 Red Hat Linux 9 安装现已完成!安装程序会提示你做好重新引导系统的准备。如果安装介质(磁盘驱动器内的磁盘或光盘驱动器内的光盘)在重新引导时没有被自动弹出,请记住取出它们。,Linux/WindowsXP双启动的安装办法(1)安装前首先用PowerQuestPartitionMagic对硬盘分区,为Linux划分出独立分区,并将其格式化成Ext2 或Ext3格式(Ext2的下一代,也就是保有Ext2的格式之下再加上日志功能)。(2)设置Linux swap交换分区(一般划分512MB),在内存不够时,Linux会将部分数据写到交换分区上。(3)以安装Fedora 10 为例:下载Fedora-10-i386-DVD.iso镜像文件(http:/download.fedoraproject.org/pub/fedora/linux/releases/10/Fedora/i386/iso/Fedora-10-i386-DVD.iso),并把它放到fat32分区下,(4)解压iso文件中的images文件夹、isolinux文件夹中的initrd.img和vmlinuz二个文件放在FAT32文件系统格式的盘符下面(可以新建一个目录,放在里面),再把initrd.img和vmlinuz 复制到C盘根目录下。例如:新建一个fedora10目录,把Fedora-10-i386-DVD.iso里面的images文夹解压出来放到该目录中,并把解压isolinux文件夹中的initrd.img和vmlinuz二个文件也放到该目录下。再把Fedora-10-i386-DVD.iso文件也放在fedora10目录中。,(5)下载一个GRUB4DOS压缩包,解压grldr与menu.lst放到C盘根目录下。修改menu.lst,在menu.lst最后加上:title Install Fedora 10 kernel(hd0,0)/vmlinuz initrd(hd0,0)/initrd.img,(6)我的电脑右键-属性-高级-(启动和故障恢复)设置-(系统启动)编辑 在最后面加上:c:grldr=GRUB,(6)重新启动系统,选GRUB,再选Install Fedora11,就可以进入安装界面。,(7)进入语言选择,中文用户选择,(8)选择安装方式,硬盘安装Fedora 11选中Hard drive,(8)我把Fedora-11-i386-DVD.iso及相关安装文件都放在F盘的fedora11的目录中,所以要找到这里来,我的F盘是/dev/sda10分区。输入安装镜像文件所在的路径,/fedora11/images/install.img。,1.2.4 Red Hat Linux9.0的登录和关闭,1.登录:使用 Red Hat Linux 系统的一个前提条件是登录。登录实际上是向系统做自我介绍,又称验证(authentication)。如果键入了错误的用户名或口令,就不会被允许进入系统。Linux系统有普通用户和超级用户之分。普通用户的用户名是任意的,而超级用户的用户名是root。Linux系统是严格区分大小写的,无论是用户名、文件名、设备名都是如此。即liubing、LiuBing、LIUBING是三个不同的用户名或文件名。,当口令输入完毕后,按回车键进入Red Hat Linux9.0图形化界面,如图1-22所示。,2.注销,如果想切换用户登录,可采用注销当前图形化桌面会话。操作的方法是:(1)依次选择“主菜单注销”命令。(2)打开如图 所示的确认对话框,选择“注销”选项,然后点击“确定”按钮。如果你想保存桌面的配置以及还在运行的程序,选中“保存当前设置”复选框。,图1-23“注销”对话框,图1-23“,注销”对话框,3.关机和重新启动,关切和重新启动的方法如下:(1)依次选择“主菜单注销”命令。(2)在打开的对话框,选择“关机”或“重新启动”选项,然后点击“确定”按钮,即可完成关机或重新启动操作。,1.3 Linux的基本使用和设置,1.3.1 显示属性的设置改变桌面背景(1)在Linux桌面上单击鼠标右键,在弹出的快捷菜单中选择“改变桌面背景”命令,打开如图所示的页面。(2)在下图中,单击“选择图片”下的按钮,打开如图所示的选择图片对话框。,(3)选择一个满意的背景图片,然后单击“确认”按钮,返回到上图所示的对话框。(4)还可进一步对背景图片进行居中、缩放、拉伸等处理。(5)当选择无图片时,可通过“背景网格”,以及左测和右测的颜色来设置背景。(6)设置完成后,单击“关闭”按钮,桌面显示如下图所示。,2.显示设置,在此设置中可对显示分辨率、显示器的类型及显卡进行设置,具体的方法如下:(1)依次选择“主菜单系统设置显示”,打开如图1-27所示的显示设置对话框。在此对话框中,用户可选择设置“分辨率”、“色彩深度”。,(2)单击“高级”选项卡,打开如下图所示的显示高级设置,还可对显示器的类型、物理分辨率、以及视频卡进行设置。,(3)设置完成后,单击“确定”按钮。,1.3.2 配置日期和时间,(1)依次选择“主菜单系统设置日期&时间”,或在 shell(如 XTerm 或 GNOME 终端)提示下键入 redhat-config-date 命令。(2)在打开的图中,可通过给出的界面来修改年、月、日、时、分、钞。改变方法如下:要改变日期,使用箭头左右移动月份来改变月份;使用箭头左右移动年份来改变年份,然后单击星期中的日期来改变星期中的日期。要改变时间,使用上下箭头按钮,它们在“时间”部分中的“小时”、“分钟”、和“秒钟”旁边。(3)单击图中的“时区”选项卡,打开图1-30,可对安装过程中的时区进行重新设置。,图1-30 时区设置(4)在单击“确定”按钮之前,前面的所有设置都不会生效。当确认设置完毕后,单击“确定”按钮。,1.3.3 软盘和光盘的使用,在这里主要讨论如何在软盘中读取和写入文件,如何格式化软盘,以及如何从光盘中读取和复制数据。1.软盘的使用(1)挂载和卸载软盘在使用软盘之前,它一定要先被挂载。要挂载软盘,把它插入软盘驱动器,然后在 终端提示下键入“mount/mnt/floppy/”。当该软盘的文件系统被挂载到“/mnt/floppy”目录中时,软盘驱动器的活动灯应该闪动。可以通过使用“cd/mnt/floppy/”命令转换到那个目录里来存取软盘上的内容。,当完成了软盘上的任务后,在把它从驱动器中取出之前,应该先卸载它。关闭所有可能还在使用软盘上文件的程序或展示软盘内容的程序,然后在 终端提示下键入以下命令:#mount-t msdos/dev/fd0/mnt 卸载软盘#umount/mnt,(2)在 MS-DOS 软盘上存放 Linux 文件,使用以下命令来复制文件(把 filename 替换为要复制的文件):#cp filename/mnt/floppy 然后,便可以卸载软盘并把它从驱动器中取出。软盘中的新文件现在就可以从 Windows 机器上被存取了(3)格式化软盘 如果只在 Red Hat Linux 中使用软盘,仅需使用 ext2 文件系统来格式化它。一旦已在软盘上创建了 ext2 文件系统,就可以使用与在硬盘上操作文件和目录相同的方法来操纵该软盘的内容。,2.光盘的使用,(1)在文件管理器中使用光盘(2)在终端提示下使用光盘 用户还可以手工地在 shell 提示下挂载和卸载光盘。在光盘驱动器内插入一张光盘,打开 终端,然后键入以下命令:#mount/mnt/cdrom 这样,光盘就会被挂载,便可以用文件管理器来使用它了。还可以通过点击桌面上的主目录图标,并在位置栏内键入“/mnt/cdrom”来访问光盘。光盘上工作完毕后,在把它从驱动器内弹出之前必须卸载它。关闭所有使用光盘的应用程序或文件管理器,然后在终端提示下键入以下命令:#umount/mnt/cdrom现在,便可以安全地按光盘驱动器上的弹出按钮来取出光盘。,1.3.4 打印机的安装与设置,Red Hat Linux 包括了一个用来配置本地和远程打印机的图形化工具。使用它,不必再安装额外的驱动程序和应用程序,此工具使用渐进的步骤来帮助用户配置打印机。有两种方式打开打印机的图形化配置工具,方法如下:依次选择“主菜单系统设置Printing”双击桌面上的“从这里开始”图标,选择“系统设置”,然后在打开的对话框中选择“Printing”,1.添加本地打印机,(1)要添加并行端口或 USB 端口的本地打印机,单击打印机配置工具主窗口上的“新建”按钮。,(2)在如下图 所示的窗口中,在“名称”后的文本框中输入一个独特名称。,(3)名称输入完毕后,单击“前进”按钮,打开如图 1-37所示的窗口。,(4)选择了打印机的队列类型后,下一步就是选择打印机型号。点击“前进”按钮,打开如图1-38所示的打印机型号对话框。,(5)选择后,单击“前进”按钮,进入到打印机配置的最后一步,即确认打印机配置。如果设置正确,则单击“应用”按钮来添加打印队列,否则,点击“后退”按钮来修改打印机配置。,2.打印测试页要打印测试页,从打印机列表中选择想试验的打印机,然后从下图中的“测试”拉下菜单中选择合适的测试页。,3.修改现存打印机,4.管理打印机,在GNOME桌面环境下,有几种打开打印机管理器的方法:单击面板上的打印机管理器图标来启动 GNOME 打印管理器。依次选择“主菜单系统工具打印管理器”。打开如图 1-41所示的打印机管理器对话窗口。在该对话框中,双击一个已配置的打印机来查看打印假脱机,如图 1-42所示,1-41,1-42,1.4 使用 RPM 来管理软件包,RPM是Red Hat Package Manager的缩写,是由Red Hat公司根据BOGUS(PM与PMS)发展而来的软件包安装与管理程序,就象Windows平台上的Unistaller和Cleansweep这些软件一样,是让用户用来自行安装和管理Linux上的应用软件包的管理程序。,用RPM进行软件包管理最大的好处就是让用户可以直接以Binary方式安装软件包,免去了自行编译之苦,并且可以替用户查询是否已经安装有相关的运行库,在卸除这些软件包的时候,它又会很聪明,而不会象Slackware的pkgtool那样把其他程序公用的运行库删除。在利用rpm升级软件的时候,rpm会保留原先的配置文件,这样用户就不用重新手工设定新的软件了,同时,rpm管理着一个数据库,里头包含了所有的软件包的文件资料,通过这份数据库,用户可以进行软件包的查询工作。,RPM主要是给Linux使用的,但对于其他Unix系统的兼容性也相当不错,事实上,它已经移植到SunOS,Solaris,AIX,Irix,AmiagOS及其他系统上。但是不同Unix操作系统所编译出来的binary软件包是互不兼容的。Red Hat公司鼓励其他Linux厂商在它们的distribution当中使用RPM(不过目前情况不太好,UNIX传统的地方割据和各自为政在这儿得到体现)。RPM是一个开放的系统,操作非常简单,并且提供自行扩充的接口。它的开发过程完全公开,而且遵循GPL宣言,用户可以在符合GPL的宣言条件下自由地使用及传播RPM。,RPM 软件包管理器(RPM)是开放打包系统,任何人都可以使用。它在 Red Hat Linux,以及其它 Linux 和 UNIX 系统上运行。对于终端用户来说,RPM 简化了系统更新。安装、删除安装、升级 RPM 软件包可以使用简短的命令就可完成。RPM 维护一个已安装软件包和它们的文件数据库,因此,可以在系统上使用功能强大的查询和校验。对于开发者来说,RPM允许把软件编码和程序打包,然后提供给终端用户。,1.4.1 RPM 的设计目标,可升级性 使用 RPM,可以不必全盘重装,就可以在系统上升级个别组件。当得到一个基于 RPM 的操作系统的新发行版本(如 Red Hat Linux),不必重新安装系统,RPM允许智能的,全自动的就地升级系统。包中的配置文件在升级过程中会给以保留,因此你不会丢失定制信息。,强大的查询功能 RPM 拥有强大的查询功能。可以在整个数据库中搜索软件包或某些特定文件。还可以轻易地了解到哪个文件属于哪个软件包,软件包来自哪里。RPM软件包中的文件以压缩格式存放,拥有一个定制的二进制头文件,其中包含有关包和内容的有用信息,可以让你对单个软件包的查询简便又快速。,系统校验 RPM另一项强大的功能是软件包校验。如果你担心误删了某个软件包中的某个文件,你就可以对它进行验证。任何非正常现象将会被通知。此时,如果需要的话,你可以重新安装该软件包。在重新安装过程中,所有被修改过的配置文件将被保留。,纯净源码(pure code)一个重要的设计目标是允许使用与软件的原创者所发行源码一致的“纯净”软件源码。保持软件包的原始特征,就像该软件的原始发布者发布软件时那样。通过使用RPM,你可以拥有最初的软件和要使用的任何补丁程序还有详细的软件构建信息。从几个方面来说这是非常大的优点。例如,当某个软件的新版本发行时,无须从头编译所有文件。可以看一看补丁程序都需要些什么。在这种方式下,所有编译条件以及为生成软件所做的修改都将是可见的。,1.4.2 RPM 有基本操作模式,RPM 有五种基本操作模式(不包括软件包建构):安装、删除安装、升级、查询和校验,本节包括对每一模式的总览。想了解完整的选项和细节,请使用 rpm-help 命令。,RMP包的名称格式RPM包的名称有其特有的格式,如典型的 RPM 包名称类似于:liubing-1.0-1.i386.rpm该文件名包括软件包名称“liubing”;软件的版本“1.0”,其中包括主版本号和次版本号;“i386”是软件所运行硬件平台;最后“rpm”做为文件的扩展名,当然代表文件的类型为RPM包。,2.安装RPM包,命令格式:rpm i RPM包的全路径文件名 如果想安装RPM包并显示安装进度信息可使用如下命令格式:rpm ivh RPM包的全路径文件名 在此命令的参数选项中:i:代表安装。v:代表verbose,设置在安装过程中将显示详细的信息。h:代表hash,设置在安装过程中将显示“#”来表示安装的进度。,对于较大的RPM包,在安装时尤其需要使用“-ivh”选项,这样可以看到安装过程的相应信息,更可以了解安装的进度。,软件包的安装被设计得尽量简单易行,但是可能会发生几个错误:已经安装的包:将会出现以下信息:$rpm ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installedError:foo-1.0-i386.rpm cannot be installed如果你仍然想安装该软件包,可以在命令行上使用 replacepkgs选项,这将忽略错误信息。,文件冲突如果你要安装的软件包中有一个文件已在安装其它软件包时安装了,会出现以下错误信息:#rpm ivh foo-1.0-1.i386.rpm foo/usr/bin/foo conflicts with file from bar-1.0-1 error:foo-1.0-1.i386.rpm cannot be installed要想让RPM忽略该错误信息,请使用-replacefiles命令行选项。,未解决的依赖关系 RPM软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。如果在你安装某个软件包时存在这种未解决的依赖关系,会产生以下信息:$rpm ivh bar-1.0-1.i386.rpm failed dependencies:foo is needed by bar-1.0-1你必须安装完成所依赖的软件包,才能解决这个问题。,3.删除 RPM包,命令格式:rpm-e RPM包名称rpm e命令用于从当前系统中删除已安装的软件包,需要在命令中指定要删除的软件包的名称而不是安装命令中的软件包安装文件名。例:rpm e foo 注意:这里使用软件包的名字“foo”,而不是软件包文件的名字“foo-1.0-1.i386.rpm”。如果其它软件包依赖于你要卸载时则会产生错误信息。如:rpm e fooremoving these package would break dependencies:foo is needed by bar-1.0-1,4.升级RPM包 命令格式:rpm-U RPM包的全路径文件名 例:$rpm Uvh foo-2.0-1.i386.rpm foo#RPM将自动卸载已安装的老版本的foo版本。事实上我们可以总是使用-U来安装软件包,因为即便以往未安装过该软件包,也能正常运行。因为RPM执行智能化的软件包升级,自动处理配置文件,你将会看到如下信息:saving/etc/foo.conf as/etc/foo.conf.rpmsave 这表示你对配置文件的修改不一定能向上兼容于该软件包中的配置文件。因此RPM会备份老文件,安装新文件。,5.查询RPM包 命令格式:rpm-q 使用 rpm-q 命令来查询安装的软件包的数据库 rpm-q foo 命令会显示安装的软件包foo的名称、版本、和发行号。foo-2.0-1 除了指定软件包名以外,还可以连同-q使用以下选项来指明要查询哪些软件包的信息。这些选项被称为“软件包指定选项”,-a:查询所有已安装的软件包。-f:会查询含有 的软件包。当指定文件时,必须指定文件的完整路径(如/usr/bin/ls)。-p:查询软件包文件名为 的软件包。,以下选项用来选择要搜索的信息类型。它们叫做信息选择选项。-i:显示软件包信息,包括名称、描述、发行版本、大小、制造日期、生产商,以及其它杂项。-l:显示软件包所含的文件列表。-s:显示软件包中所有文件的状态。-d:显示被标记为文档(man手册、info手册、README 等等)的文件列表。-c:显示被标记为配置文件的文件列表。你在安装后定制这些文件来使软件包适用于你的系统(譬如,sendmail.cf、passwd、inittab 等等)。,6.校验已安装的软件包,命令格式:rpm-V 校验软件包比较从某软件包安装的文件和原始软件包中的同一文件的信息。主要是比较文件的尺寸、MD5检验码、文件权限、类型、属主和用户组等校验的最简单用法是 rpm-V foo,它校验所有在 foo软件包内的文件是否和最初安装时一样。,要校验包含某一特定文件的软件包:,#rpm-Vf/bin/vi要校验所有安装了的软件包:#rpm-Va 要根据 RPM 软件包文件来校验安装了的软件包:#rpm-Vp fcitx-1.8.5-1.rpm单用一个.(点)意味着测试通过。下列字符代表某类测试失败:5 MD5 校验和 S 文件大小 L 符号链接 T 文件修改时间 D 设备 U 用户 G 组群 M 模式(包括权限和文件类型)?不可读文件,1.6 Linux与Unix的关系,Linux与Unix有着密不可分的关系。实际上Linux就是Unix克隆(clone),只不过Linux一般用于PC机,而大多数商业Unix则主要用于工作站和大型机。,Unix由C语言写成,具有树状目录的文件系统,其中集合了文件和设备I/O,其系统函数调用(system call)界面包含了如fork(),pipe()等函数,而且它的用户界面包含cc,troff,grep,awk之类的工具及一个shell。Unix的历史开始于1969年Ken Thompson,Dennis ritohie与一群人在PDP-7进行的一些工作,后来这个系统就变成了Unix,它主要版本有以下几个:,V1(1971):第一版的Unix,以PDP-11/20的汇编语言写成,包括文件系统,fork,ed等软件V4(1973):以C语言从头写过,这使得Unix修改容易。其实最初C语言就是K&R为开发Unix系统而设计的,所以C与Unix间有紧密关系。V6(1975):第一个在贝尔实验室外广为流传的Unix版本。这也是Unix分支的起点与广受欢迎的开始。V7(1979):在许多Unix玩家心目中,这是“最后一个真正的Unix”。V7后来移植到VAX机后称为32V。,目前开发Unix(System V)的公司是Unix System Laboratories(USL)。USL原来是AT&T所有,1993年被Novell收购,而Novell于1993年末将Unix这个注册商标转让给X/Open组织。到目前为止,Unix有两个流派:AT&T发布的Unix操作系统System V与美国加州大学伯克利分校发布的BSD(Berkeley Software Distribution)Unix。SVR4是两大流派融合后的产物。1991年底,与System V针锋相对的开放软件基金会(Open Software Foundation)推出了OSF/1。,