但行好事
莫论前程❤

Linux操作系统发行版本概述

# 查看系统信息
ubuntu@VM-0-5-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

img

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable(稳定), testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

各系统包及包管理程序:

Debian

1、软件包后缀 ==> .deb
2、前端管理工具 ==> apt-get

RHEL系

1、软件包后缀 ==> .rpm
2、前端管理工具 ==> rpm yum(centos5、6) dnf(centos 7)

apt-get

apt-get是Debian、Ubuntu、Linux Mint、elementary OS等Linux发行版的默认软件包管理器。下面我介绍最最常用的apt-get命令

从软件仓库中安装软件包

apt-get update

在安装任何软件之前,我们最好是要更新本地软件包索引(package index)。本地软件包索引列出了软件仓库中所有可安装的软件包以及版本信息。

sudo apt-get update

sudo的在英语里的意思是switch user and do something.在Linux系统上,你需要root权限来安装和卸载软件包。sudo可以临时将你的用户ID切换为root。

apt-get install

apt-get install 是用来安装软件包的。你需要将软件包的名字添加到 apt-get install 之后.例如,你可以在Ubuntu系统上安装Chromium浏览器。

sudo apt-get install chromium-browser

有时候apt-get会询问你是否真的要安装软件包。如果你想自动回答yes,可以在安装命令中添加 -y 选项.

sudo apt-get install -y chromium-browser

在你用apt-get install命令安装软件包之前,你需要知道这个软件包在软件仓库中的名称.这看起来有点麻烦.当你熟悉之后,你会感到非常方便.尤其是当你SSH远程管理Linux服务器的时候.

apt-get首先会从软件仓库中下载deb安装包,这些deb安装在/var/cache/apt/archives目录下.下载后,apt-get会自动安装软件包

一条命令安装多个软件包

apt-get install 可以一次性安装多个软件包,比如

sudo apt-get install wireshark nmap aircrack-ng

apt-get upgrade

apt-get upgrade命令用来升级系统上可以升级的软件包.

sudo apt-get upgrade

apt-get 会告诉你哪些软件包会升级.并且询问你是否真的需要升级这些软件包.你可以在命令中添加 -y 选项来自动回答yes.

sudo apt-get -y upgrade

apt-get remove

这条命令用来删除系统上的软件包,比如,删除Firefox

sudo apt-get remove firefox

它不会删除软件包的配置文件.

apt-get purge

这条命令可以用来删除软件包及其配置文件.

sudo apt-get purge firefox

apt-get clean

当apt-get安装或升级软件包时,它会将deb安装包下载到文件系统的/var/cache/apt/archives目录下.软件包安装完成后,这些deb安装包基本上就没有什么用处了.apt-get clean命令可以帮你删除这些deb安装包.

你可以使用下面的命令查看/var/cache/apt/archives目录下deb安装包的大小.

du -sh /var/cache/apt/archives

apt-get autoclean

apt-get autoclean也可以用来删除/var/cache/apt/archives目录下的deb安装包.但它只删除那些已经不能从软件仓库中下载的deb安装包.这就是说,Debian或Ubuntu已经不维护那些软件包了,或者那些软件包有了一个新的名字.

apt-get autoremove

这条命令用来删除不需要的依赖软件包.

apt-get dist-upgrade

这条命令可能会让很多人感到困惑.在Debian系统上,你用这条命令升级系统版本,比如从Debian 7升级到Debian 8.但是在Ubuntu系统上,这条命令只会升级Linux内核以及之前没有被升级的软件包.升级Ubuntu的版本你需要用到do-release-upgrade命令.

附:手动安装Deb软件包

dpkg -i

如果你从网站上下载了一个deb软件包,那么你需要dpkg工具来安装这个deb包.例如,你可以下载WPS linux版.然后,在终端里将当前工作目录切换到下载目录,再输入下面的命令安装WPS Linux版.

sudo dpkg -i wps-office*.deb

gdebi

dpkg的一个缺点是它不能解决依赖关系.你必须手动安装依赖包.而gdebi可以帮助我们自动安装依赖包.输入下面的命令安装gdebi

sudo apt-get install gdebi

它的命令语法如下:

sudo gdebi <package.deb>

Yum

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理.

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
  1. 更新和升级
yum update                          # 全部更新
yum update package1                  # 更新指定程序包package1
yum check-update                     # 检查可更新的程序
yum upgrade package1                 # 升级指定程序包package1
yum groupupdate group1                # 升级程序组group1
  1. 查找和显示
yum info package1                     # 显示安装包信息package1
yum list                             # 显示所有已经安装和可以安装的程序包
yum list package1                     # 显示指定程序包安装情况package1
yum groupinfo group1                  #  显示程序组group1信息
yum search string                     #  根据关键字string查找安装包
  1. 删除程序
yum remove | erase package1       # 删除程序包package1
yum groupremove group1                # 删除程序组group1
yum deplist package1                  # 查看程序package1依赖情况
  1. 清除缓存
yum clean packages                      # 清除缓存目录(/var/cache/yum)下的软件包
yum clean headers                       # 清除缓存目录(/var/cache/yum)下的 headers
yum clean oldheaders                     # 清除缓存目录(/var/cache/yum)下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 
                                       #  清除缓存目录(/var/cache/yum)下的软件包及旧的headers
  1. 安装额外的软件仓库:
rpm.livna.org 的软件包仓库:
rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm

freshrpms.net 的软件包仓库:
rpm –ivh http://ftp.freshrpms.net/pub/fre … 1.1-1.fc.noarch.rpm

安装流程

比如,要安装游戏程序组,首先进行查找:

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 命令详解:
Redhat和Fedora的软件安装命令是rpm,但是用rpm安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级 麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用是非常恼人的。令人高兴的是,Fedora终于推出了类似于 ubuntu中的apt的命令yum,令Fedora的软件安装变得简单容易。Yum 有以下特点:

  • 可以同时配置多个资源库(Repository)
  • 简洁的配置文件(/etc/yum.conf)
  • 自动解决增加或删除rpm包时遇到的倚赖性问题
  • 使用方便
  • 保持与RPM数据库的一致性

yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

1.yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目 录下,这是整个yum系统的重中之重,大家一起来看下:

[main]
cachedir=/var/cache/yum
  //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum
keepcache=0
  //安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2
  //Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
  //yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
pkgpolicy=newest
  //包的策略。一共有两个选项,newest 和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository 中同时存在,yum 应该安装哪一个,如果是newest,则yum 会安装最新的那个版本。如果是last,则yum 会将服务器id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
  //指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。
tolerant=1
  //有1和0两个选项,表示yum 是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum 不会出现错误信息。默认是0。
exactarch=1
  //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
retries=6
  //网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.
obsoletes=1
  //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
plugins=1
  //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

yum执行过程

接下来就是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安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。
安装的命令是,yum install xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断
删除的命令是,yum remove xxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。

我们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于是我们可能得到 gaim,kopete等等,并从中选择。

有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。

赞(0) 打赏
未经允许不得转载:刘鹏博客 » Linux操作系统发行版本概述
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏