fedora学习笔记 1:fedora与linux的一点基础知识

简介:
 这篇日志里我们来了解一些关于fedora的小知识,这对fedora的学习也有一定的帮助。
 
  一、fedora、linux、GNU与GPL
  fedora基于Red Hat Linux,是众多的linux发行版之一。而linux本质上只是一个内核,我们通常所说的linux是指基于linux内核的操作系统,有人认为这套操作系统全称应该是GNU/linux。GNU是一项计划,该计划的目的是建立一套完全自由的操作系统。由于GNU开发的都是自由软件,你可以在遵守GPL的前提下自由使用。
  下面对上面四句话逐一加注。
  1、fedora基于Red Hat Linux,由Fedora Project社区开发,Red Hat公司赞助,它只是linux众多的发行版之一。linux发行版众多,据说有上百种。国内比较流行的发行版一般有Ubuntu、Fedora、Debian,其它的还有Slackware、OpenSUSE等。
  2、linux严格意义上讲,只是一个内核,由Linus Torvalds开发,并在GNU计划的GPL下发布。需要注意的是尽管linux内核在GPL下发行,但它却不是GUN计划的一部分,GNU计划仍然在开发自己的系统内核。
  我们说linux本质上只是一个内核,而单单一个内核构不成一套操作系统。linux面世以后在网络上广泛流传,后来它与其它的一些GNU软件结合,才诞生了一套自由的操作系统。所以GNU计划的发起人Richard Stallman认为linux操作系统称为GNU/linux才比较合适,但是大多数商业linux版本仍然把它的操作系统称为linux。
  3、GNU计划由Richard Stallman发起,目的是建立一套完全自由的操作系统,它主要是针对当时商业的UNIX操作系统。到90年代初,它已经开发出了功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。由于GNU计划开发的软件相当不错,有些软件还被安装在了UNIX操作系统上,它们还广泛被移植于Windows和Mac OS上。
  4、GNU计划为了保证自己开发软件能够自由地“使用、复制、修改和发布”,搞了一个GPL(GNU General Public License),即GNU通用公共许可证/协议。
  GPL的内容,以及GNU如何通过它来实现自己的目标,这里不要讨论,知道个大概就可以了。在GPL下发布的软件都必须以源代码的形式发布,GPL并不排斥对自由软件进行商业的包装和发行,也不排斥在自由软件的基础上打包发行其它的非自由软件。所以我们看到虽然linux在GPL下发布,但是仍然有许多基于linux的商业软件。
  
  二、fedora的历史
  fedora是基于Red Hat的,当初Red Hat Linux分两个版本,桌面版和服务器版,但是自从Red Hat 9.0以后,它就不再发行桌面版。所以你也可以把Red Hat Linux 9.0和它以前的版本看作fedora的历史的一部分。
  Red Hat Linux 9.0以后,就是fedora core,而从fedora core 6以后,更名为fedora 7,目前版本到11,其中fedora 11为Beat版。下面是已经发布的fedora版本:
  fedora core 1
  fedora core 2
  fedora core 3
  fedora core 4
  fedora core 5
  fedora core 6
  fedora 7
  fedora 8
  fedora 9
  fedora 10
  fedora 11(beta)
 
  三、fedora软件管理:RPM与yum
  RPM是RedHat Package Manager的缩写,它是RedHat开发一种软件管理程序,而由这个程序所生成的软件包被称为RPM包。
  由RPM程序打包生成的RPM软件包不单单只有应用程序,还包括头文件和其它一些文件,比如数字签名;头文件里包含对软件安装非常重要的依赖关系。所谓依赖关系是指安装这个软件时需要其它文件或软件。那些成为依赖的文件一般为库文件,它们为依赖它们的软件的运行提供支持。
  其实依赖关系并非linux所独有,比如:windows里安装一些3D游戏时,它可能会提示你要安装Direct 9,这就是windows里的一种依赖关系。
  虽然依赖关系并非linux所独有,但无疑linux里的依赖关系是最让我们头痛的,无论是用tar包安装软件还是用RPM包安装软件,都可能会碰到缺少依赖关系的问题。
 
  而yum工具可以为我们很好地解决这个令人头痛的问题。
  yum是学习fedora所必须掌握的一个软件管理工具。我们可以通过它更加方便地安装、更新、卸载软件,还可以用它来更新整个系统,甚至于可以用它来升级系统。这里我们主要来讨论yum的原理,使我们对它有个基本的了解,具体的用法这里不讲。
  安装一个软件,我们可以把软件安装包下载到本地进行安装,也可以在线安装;而用yum工具来安装软件,就是一种在线安装的方式。yum可以进行本地安装,不过一般不这么做。
  当你用yum工具安装一个软件时,yum会首先连接到repository,下载其中的头文件(也有人称之为索引文件、软件列表等),然后去分析头文件,定位你需要的RPM包,找到你要的RPM包以后,yum会分析RPM的头文件,解决它的依赖关系,然后你所需要做的就是输入Y或N。
  这个过程中我们要注意的是repository和它的头文件。
  repository即仓库,也有人从其功能意义上翻译为“源”。yum的关键是要有可靠的仓库。仓库可以是本地预备好的目录,也可以是一个网站,仓库中有头文件和软件包。fedora系统在安装的时候已经指定了两个软件仓库:fedora和updates,这两个软件仓库由fedora官方进行维护。fedora仓库中就是系统安装盘里的软件的集合,这个仓库中软件的版本和种类是在系统发布时锁定的;当系统发布以后,有新的更加稳定的软件版本出来时,都发布在updates仓库中。
  不过官方仓库的速度非常慢,所以我们需要添加第三方软件仓库作为软件来源。比较常用的第三方软件仓库有:RPM Fusion,freshrpms和livna。这三个仓库是日常使用的,此外还有development仓库和testing仓库,这两个仓库一个主要面对开发者,另外一个主要用来进行安全和稳定性测试,当一个软件通过了测试以后,才会加到updates仓库中,然后updates仓库提示我们进行更新。
  有人认为,第三方软件仓库最后只开启一个,因为不同的软件仓库编译和打包的方法不一样,同时开启可能会导致依赖关系紊乱。
  如何添加第三方仓库,本篇日志不讲。
  至于用yum删除软件,我不推荐,因为用yum删除软件会同时删除它的依赖关系。而有时候这个软件的依赖文件可能同时在为其它软件提供支持,删除依赖关系的话会对其它软件的运行有影响。这个是我个人的想法,不对之处等将来水平提高之后再来修改。


本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/132903
相关文章
|
1月前
|
Linux 应用服务中间件 Apache
Linux Apache服务详解——Apache服务基础知识
Linux Apache服务详解——Apache服务基础知识
33 2
|
1月前
|
域名解析 缓存 网络协议
Linux DNS服务详解——DNS基础知识
Linux DNS服务详解——DNS基础知识
72 1
|
2月前
|
Linux 芯片
Linux 驱动开发基础知识——认识LED驱动程序 (二)
Linux 驱动开发基础知识——认识LED驱动程序 (二)
35 0
Linux 驱动开发基础知识——认识LED驱动程序 (二)
|
2月前
|
传感器 Linux 开发工具
Linux应用开发基础知识——I2C应用编程(十三)
Linux应用开发基础知识——I2C应用编程(十三)
56 0
Linux应用开发基础知识——I2C应用编程(十三)
|
2月前
|
存储 传感器 Linux
Linux应用开发基础知识——I2C应用编程(十二)
Linux应用开发基础知识——I2C应用编程(十二)
71 0
Linux应用开发基础知识——I2C应用编程(十二)
|
2月前
|
Ubuntu Linux 测试技术
Linux应用开发基础知识——输入系统应用编程(八)
Linux应用开发基础知识——输入系统应用编程(八)
41 0
Linux应用开发基础知识——输入系统应用编程(八)
|
1月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
28 4
|
1月前
|
Linux C语言 芯片
嵌入式linux系统中设备树基础知识
嵌入式linux系统中设备树基础知识
48 0
|
2月前
|
Linux 芯片 开发者
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
151 0
Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
|
2月前
|
Ubuntu Linux 芯片
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)
68 1
Linux 驱动开发基础知识——设备树的语法驱动开发基础知识(九)