Linux学习----基础篇(软件的安装与管理)

一、源码方式安装软件

1.一、源码安装的优势

由于Linux系统开放源代码的特性,因此在系统上运行的大部分软件也都是开源软件。开源软件基本都提供源码的下载,这时就能够经过源码来安装软件。 前端

使用源码安装软件的优势在于用户能够自定制软件功能,只安装须要的模块;安装时可自定义软件安装的路径,方便管理;卸载时只要删除软件安装目录便可。 node

1.二、源码安装过程

在源码安装以前,须要把开发工具等基础模块安装好,好比 gcc、gcc-c++、libgcc、glibc、make、automake等开发工具和基础包;还要安装一些相应的开发包,通常是包名-devel类型的,glibc-devel、gettext-devel等(若是源码安装过程当中提示缺乏某软件包可是该软件包已经安装,能够检查是否该包的开发包即包名-devel是否安装);还有一些开发库,好比以lib开头的开发库。python

进入源码目录,通常都有README或INSTALL文件,或者是DOC目录,这些是安装说明文档。能够按照文档中的说明进行软件的安装。c++

源码安装软件通常包含如下步骤:分析安装平台环境、编译安装软件。sql

分析安装平台环境数据库

源码目录下有个命名为configure的可执行文件,使用命令./configure进行软件安装环境的检测,若是提示缺乏某些软件包,则须要先安装这些包,再从新进行检测,直到检测经过。configure的--prefix参数用于指定软件安装的目录;configure的其余参数能够参考软件的安装说明,不一样软件会支持不一样的参数。缓存

编译安装软件安全

安装环境检测经过后,运行make命令进行编译。make是咱们常常用到的编译命令,对于一个包含不少源文件的应用程序,使用make和makefile工具能够简单快速的解决各个源文件之间复杂的依赖关系;同时,make工具还能够自动完成全部源码文件的编译工做,而且能够只对上次编译后修改过的文件进行增量编译。若是不须要增量编译,使用make clean命令清除上次编译的结果,从新开始编译。 服务器

make工具最主要的功能就是经过makefile文件来实现的,makefile文件是按照某种语法来进行编写的,文件中定义了各个源文件之间的依赖关系,并说明了如何编译源文件并生成可执行文件,它经过描述各个源程序之间的关系让make工具自动完成编译工做。 工具

编译完成后,执行make install命令将编译完成的软件复制到指定的安装目录下,至此,源码安装软件完成。

二、RPM包方式安装软件

2.一、RPM包管理工具

RPM,Red Hat Package Manager,Red Hat软件包管理,由Red Hat公司开发的Linux软件包管理工具。因为该管理工具在软件安装和管理方面很是方便易用,逐渐被其余Linux发行版使用,如今已经成为Linux下通用的一种软件包管理方式。另一种流行的工具为Debian开发的dpkg。

RPM软件包以.rpm结尾。每一个RPM文件中包含了已完成编译的二进制可执行文件,本质为将源码进行编译安装而后封装成RPM文件。

优势:安装简单方便,由于软件已经编译完成打包完毕,安装只是个验证环境和解压的过程。

缺点:对操做系统环境的依赖很是大,它要求RPM包的安装环境必须与RPM包的封装环境一致或至关;另外还需知足安装时的软件包依赖关系

2.二、RPM包种类及文件名含义

RPM包的封装格式通常有两种,分别是RPM和SRPM,SRPM包也是一种RPM,可是它包含了编译时的源码文件和一些编译指定的参数文件,于是在使用的时候须要从新进行编译,一般SRPM文件名称相似于xxx.src.rpm

RPM包文件名的含义:

rpm

通常的RPM封装包的命名格式都有这六个部分组成,因为SRPM包是须要编译才能使用的,所以没有上面显示项中对应的平台选项,其它与RPM包命令格式彻底同样。

2.三、RPM管理工具使用

2.3.一、安装RPM包

语法以下:

rpm –i [辅助选项] RPM包

经常使用辅助选项:

  • -v:显示附加信息
  • -h:安装时输出标记“#”,即安装进度条
  • --test:只对安装进行测试,并不实际安装
  • --nodeps:不检查软件之间的依赖关系,加入此选项可能致使软件不可用
  • --force:忽略软件包以及软件冲突

小技巧:若是安装A软件包时依赖B软件包,而安装B软件包时又依赖A软件包,则能够同时安装这两个软件包以解决相互依赖的状况,使用命令rpm –ivh A.rpm B.rpm

2.3.二、更新RPM包

语法以下:

rpm -U [辅助选项] RPM包

经常使用辅助选项参考安装RPM包。

2.3.三、查询RPM包

语法以下:

rpm -q [辅助选项] RPM包

经常使用辅助选项:

  • -f:查询某个文件对应的RPM包
  • -p:查询以.rpm为后缀的软件包安装后对应的包名称
  • -l:显示软件包中的全部文件列表。此选项后面跟软件包安装后对应的包名,而不是以.rpm为后缀的包
  • -i:显示软件包的概要信息,例如软件名称、版本、适应平台、大小等等。此选项后面跟完整的包名,而不是以.rpm为后缀的包
  • -a:查询系统中安装的所有软件包

2.3.四、删除RPM包

语法以下:

rpm -e [辅助选项] 已安装的软件包名

经常使用辅助选项:

  • --test:只执行删除测试,而不真正删除
  • --nodeps:不检查依赖性

2.3.五、验证未安装的RPM包

RPM包是否值得信任,是否损坏,能够经过RPM提供的选项进行验证。RPM软件包通常使用 Gnu 隐私卫士(GPG)来签名,从而帮助使用者验证下载的软件包是否可信。语法以下:

rpm -K RPM包

2.四、安装.src.rpm包

  1. 执行命令rpm –i xxx.src.rpm
  2. 切换到目录/root/rpmbuild/SPECS(CentOS 5.x之前版本的路径是/usr/src/redhat/SPECS,从CentOS 6.x以后的版本路径变为/root/rpmbuild/SPECS
  3. 执行命令rpmbuild –bb xxx.specs(xxx.specs是一个和软件包同名的specs文件)
  4. 在目录/root/rpmbuild/RPMS/x86_64下将会生成一个或多个RPM包,这些包是已经编译完成的RPM包
  5. 执行命令rpm –ivh安装这些生成的RPM包

三、yum方式安装软件

3.一、yum简介

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软件包,无须繁琐地一次次下载、安装。

3.二、yum的安装与配置

使用命令rpm –qa|grep yum查看yum工具是否安装。

若是系统中还未安装yum工具,则能够经过CentOS的安装光盘安装,CentOS光盘上带有yum安装包,使用如下命令安装yum:

rpm -ivh yum-*.noarch.rpm

注意:yum的安装须要依赖python-elementtree、python-sqlite、urlgrabber、yumconf等软件包,这些包在CentOS的安装光盘中都可找到。

yum主要配置文件

  • 主配置文件: /etc/yum.conf
  • 软件源配置目录: /etc/yum.repos.d
  • 软件源基本配置文件:/etc/yum.repos.d/CentOS-Base.repo
  • yum缓存目录: /var/cache/yum

yum的特色

  • 安装方便,自动解决增长或删除rpm包时遇到的依赖性问题。
  • 能够同时配置多个资源库(Repository)
  • 配置文件简单明了(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo)
  • 保持与RPM数据库的一致性

3.三、yum的使用

使用yum安装软件:

yum install 软件名

使用yum删除软件:

yum remove 软件名

注意:删除软件时yum会同时删除该软件的依赖包。

检查是否有可更新的软件:

yum check-update

更新全部可升级的软件:

yum update

列出软件源中特定的能够安装/更新/已经安装的软件包的信息:

yum info 软件名

列出软件源中特定的能够安装/更新或已经安装的软件包:

yum list 软件名

搜索匹配特定字符的软件包的详细信息:

yum search 软件名

清除缓存中旧的软件包信息:

yum clean headers|packages|metadata|dbcache|plugins|expire-cache|rpmdb|all

生成新的缓存:

yum makecache

列出软件的依赖:

yum deplist 软件包

yum的一些经常使用选项:

  • -q:静默执行
  • -t:忽略错误
  • -y:自动应答yes
  • --skip-broken:忽略软件依赖
  • --nogpgcheck:忽略GPG验证

使用yum仅下载软件不安装:

  1. yum自带工具yumdownloader:yumdownloader 软件名
  2. 使用yum的插件yum-downloadonly:yum install --downloadonly --downloaddir=目录 软件名

注意:推荐使用yum-downloadonly插件,该插件在下载软件包时会下载该软件依赖的全部其余软件包。

yum加速插件yum-fastestmirror:

yum-fastestmirror插件能够自动选择最快的软件源下载安装软件。该插件的配置文件位于

/etc/yum/pluginconf.d/fastestmirror.conf,yum软件源的速度测试记录文件为yum缓存下的timedhosts.txt文件。

使用命令yum install yum-plugin-fastestmirror安装该插件。

3.四、更换系统默认的软件源

如下以在CentOS 6.9中将系统默认软件源更换为阿里云软件源为例

进入软件源配置目录:

cd /etc/yum.repos.d

备份系统默认的软件源:

mv CentOS-Base.repo CentOS-Base.repo.backup

下载阿里云软件源配置文件,注意,下载的软件源配置文件必须与所用的系统对应:

wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo

清理yum缓存:

yum clean all

生成新的yum缓存:

yum makecache

3.五、一些软件源

3.5.一、EPEL源

EPEL,全称是企业版Linux附加软件包,是一个由特别兴趣小组建立、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(例如CentOS、Scientific Linux)的一个高质量附加软件包项目。 其官方网址为:http://fedoraproject.org/wiki/EPEL/zh-cn, EPEL的软件包不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件。

相关的EPEL软件包能够从EPEL官方网站下载到,针对CentOS系统,有EL六、EL7三个版本,分别针对CentOS 6.x、CentOS 7.x三个系列版本。

也可使用如下命令安装该软件源:

yum install epel-release

3.5.二、rpmforge源

rpmforge是一个第三方的软件源仓库,也是CentOS官方社区推荐的第三方yum源,它为CentOS系统提供了超过10000个软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库。可是因为这个安装源不是CentOS自己的组成部分,所以要使用rpmforge,须要手动下载并安装。

rpmforge的官方网站是http://repoforge.org ,能够在http://repoforge.org/use/ 下载RHEL/CentOS各个版本的“rpmforge-release”包,这样就可使用RPMForge提升的丰富软件了。

四、二进制包方式安装软件

Linux下二进制格式的软件是指事先已经在各类平台编译安装好相关软件,而后压缩打包,在安装时只需解压或者执行安装可执行文件便可。二进制软件包的优势是安装简单、容易,缺点是缺少灵活性,相应的软件包执行在对应平台下安装,离开这个环境软件就没法运行。

二进制软件包提供了不少类型的打包方式,最多见的就是RPM格式,还有以tar.gz、tgz、tar.bz2等形式的二进制软件包。

这种格式的软件包,安装其实就是简单的解压过程,根据不一样的软件打包格式,用对应的解压命令解压便可。

相关文章
相关标签/搜索