RedHat系Linux软件安装

Linux中的软件格式

通常的linux软件格式包括:linux

  • 源码包
  • 二进制包(RPM包,系统默认包)

源码包apache

linux刚开始的时候,软件都是这种形式。如今有不少的开源软件依然采用这种格式,好比Apache安装包httpd-2.2.9.tar.gz就是一个源码包。vim

源码包具备提供修改源码,自由选择所需功能,编译安装更加适合本身系统,更稳定高效的特色。固然在linux,若是想卸载源码包安装的软件,只须要删除它所在的目录就行。安全

可是在安装一些大型软件集合时,容易出现编译错误。而且因为须要编译的过程,因此安装时间较长。服务器

二进制包网络

通过编译后的代码包。函数

它具备安装、查询、更新、卸载等操做简单快速等特色。网站

也所以丧失了查看源代码的能力,而且在定制功能方面不如源码包。google

rpm命令管理

rpm包每每不是独立的,一个rpm包可能与另一个或者多个rpm包依赖。也就是说,在没有安装另外的rpm包以前,这个rpm包是没法安装或者没法正常运行,这称为依赖。

依赖分为:

  • 树形依赖,a -> b -> c
  • 环形依赖,a -> b -> c -> a
  • 模块依赖(函数依赖),rpm包依赖与另外一个rpm包中的某个函数

对于树形依赖,是比较好解决的,咱们只须要按照依赖顺序,先安装c,再安装b,再安装a就行。可是对于环形依赖,从逻辑上看咱们是没有办法解决,但只要咱们将a,b,c这三个rpm包写在一条安装命令中即可以解决。

模块依赖通常是在安装某个rpm时,系统提示如libodbcinst.so.2 is needed by ...,这时候咱们只有知道libodbcinst.so.2库函数所在的rpm包,并安装该rpm包后,才能继续安装。RedHat给咱们提供了一个网站,www.rpmfind.net,经过这个网站输入库函数的名称,便能查询出所在的rpm包。

对于rpm包的获取,咱们能够在linux的安装光盘的packages文件夹中找到rpm包,也多是在网络上下载到一个rpm包。

安装命令

安装前须要申明的是,对于包含版本号等信息的包名,咱们称之为包全名,如httpd-2.2.9.tar.gz.对于没有版本号,只有软件名称的,咱们称之为包名,如httpd

安装命令

rpm -ivh 包全名

选项

  • -i(install) 安装
  • -v(verbose) 显示详细信息
  • -h(hash) 显示进度

升级与卸载

安装命令

rpm -Uvh 全包名

选项

  • -U(upgrade) 升级
  • -v(verbose) 显示详细信息
  • -h(hash) 显示进度

卸载软件

rpm -e 包名

选项

  • -e(earse) 卸载
  • --nodeps 不检查依赖,直接卸载

RPM包查询(经常使用)

若是你实操过用rpm -ivh httpd-2.2.9.tar.gz安装apache,你会以为安装软件是一件特别头疼的事,由于各类依赖须要咱们去解决。所以RatHat为咱们提供了yum在线安装的方法(后续会讲到,而且咱们平时可能更愿意去使用yum在线安装),可是yum安装软件通常只用来安装、升级和卸载,对于RPM包的查询主要仍是依赖于rpm命令,所以这部份内容仍是比较关键的。

查询包是否安装

rpm -q 包名

查询全部安装的包(很是经常使用)

rpm -qa 包名rpm -qa | grep 包名等同于rpm -q 包名

查询软件包的安装位置(经常使用)

rpm -ql 包名查询已安装包的位置 或者 rpm -qlp 包全名查询未安装包安装后的位置

通常的RPM包默认安装路径

路径 存放信息
/etc/ 配置文件安装目录
/urs/bin 可执行的命令安装目录
/usr/lib 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man 帮助文件保存位置

查询系统文件属于哪一个RPM包:

rpm -qf 系统文件名

查询软件包的依赖性

rpm -qR 包名 查看已安装的包的依赖关系 或者 rpm -qRp 包全名查询未安装的包的依赖关系,由于它的命令中会出现好多基础或者已经安装过的rpm包很难分辨,所以不太经常使用。

查询软件包的详细信息

rpm -qi 包名查看已安装的包信息 或者 rpm -qip 包全名查询未安装的包信息

RPM包校验

rpm -V 已安装的包名

选项

  • -V 校验指定rpm包中的文件(verify)

用于文件完整性的检验。检测已安装文件和包安装后的初始文件是否有变更,或者未安装的包是否为指定md5码的包文件。

验证内容中的8个信息的具体内容以下:

  • S 文件大小是否改变
  • M 文件的类型或者文件的权限(rwx)是否被改变
  • 5 文件的MD5校验和是否改变(能够看做文件内容是否被改变)
  • D 设备的主从代码是否改变
  • L 文件路径是否改变
  • U 文件的全部者是否改变
  • G 文件的用户组是否改变
  • T 文件的修改时间是否改变

如:5....T. 5表示MD5改变,T表示修改时间改变

文件类型

  • c 配置文件(config file)
  • d 普通文件(documentation)
  • g "鬼"文件(ghost file),不多见,就是该文件不该该被这个RPM包包含
  • L 受权文件(license file)
  • r 描述文件(read me)

如:5....T. c c表示修改的这个文件是一个配置文件

RPM包中文件提取

若是不当心删除了系统中某个软件的信息,一般咱们会从别的地方拷贝一份到咱们的电脑上。固然它可选的有不少个途径,其中之一就是咱们经过它的安装rpm包中获取该文件,并拷贝。

  • 将rpm包转换为cpio格式的命令:rpm2cpio
  • 建立软件档案文件和从档案中提取文件命令:cpio -idv

如:rpm2cpio /media/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv /usr/bin/ls

yum在线安装

为了解决rpm的超强依赖性带来的安装麻烦,RedHat为咱们提供了yum在线安装,固然其余Linux系统也提供了其余命令。RadHat用本身的服务器搭建了包资源库,并经过yum命令让咱们不用关心依赖,自动解决依赖性安装一些软件。

yum源

通俗的讲,经过yum安装时,yum源在什么地方?

一般在/etc/yum.repos.d/CentOS-Base.repo

  • [base] 仓库名称,必定要放在[]中
  • name 仓库说明,能够本身随便写
  • mirrorlist 镜像站点,默认是CentOS官方yum服务器,能够更换为别的
  • baseurl yum源服务器的地址
  • enabled 此仓库是否生效,若是不写或者写成enabled = 1都是生效,enabled = 0不生效
  • gpgcheck 若是是1是指RPM的数字文件生效,若是是0则不生效。默认开启,有益于安全性
  • gpgkey 数字证书的公钥文件保存位置。不用修改

光盘搭建yum源

第一步:将原有的yum复制一份,好比cp CentOS-Base.repo CentOS-Base.repo.bak
第二步:修改CentOS-Base.repo文件中的baseurl为file:///media/...,表示你光盘的挂载点

yum命令

查询指定包名的包列表

yum search 包名

查询yum源中全部能够安装的包列表

yum listyum list | grep 包名至关于yum search

安装,自动回答yes

yum -y install 包名

在安装过程当中,会不断询问是否要安装某个rpm包,-y表示

全部都选yes

升级,自动回答yes:

yum -y update 包名,请勿在不使用包名的状况下使用该命令

卸载(就当这里没有讲这个命令,工做中千万别使用这个命令)

yum -y remove 包名,服务器使用最小化安装,尽可能不要卸载。由于卸载的依赖包可能会被系统依赖。

yum软件组管理命令

列出全部可用的软件组

yum grouplist

安装指定软件组

yum groupinstall 软件组名

卸载软件组名

yum groupremove 软件组名

源码包安装

源码包和RPM包的区别

咱们在第一部分就已经讲过二进制包和RPM包的区别,对于这些区别就再也不赘述。下面再说一个区别:源码包和RPM包安装后的安装位置不一样

一般咱们安装rpm包的时候,不会去指定它的安装位置,安装结束后的位置通常在通常的RPM包默认安装路径表格中给出的位置(该位置由软件开发者设定,不全是如此)。

而对于源码包的安装,必定要手工指定,通常能够放在/urs/local/软件名/下。

这就致使了:

  1. 源码包和RPM包的启动方式不一样。
  2. 卸载时,RPM包能够借助rpm -e命令卸载,而源码包只要删除安装目录便可。

在平时的使用过程当中,咱们应该注意区分。

源码包的安装过程

安装前的准备

全部的源码包都使用c语言编写,所以在安装源码包以前咱们须要检测系统中是否有c语言环境,输入rpm -qa | grep gcc即可查看。

若是没有安装gcc,使用yum在线安装一个gcc(不要去gcc官网下载源码包安装,由于gcc的源码包也是须要c语言环境)。

下载源码包

通常的源码包以.tar.gz结尾,这里就不介绍下载源码包了。

解压缩源码包

通常建议,源码包保存在:/usr/local/src/,软件安装在:/usr/local/

在适当的目录(你以为合适就行),使用命令tar -zxvf 源码包全名解压缩源码包。

进入解压缩目录

使用cd命令进入到源码包解压缩以后的目录中,这步是必须作。

进入目录后,咱们甚至可使用vim INSTALL来查看软件须要的安装步骤

执行./configure完成软件配置与检查

该命令能够设置安装参数,检测安装环境是否具有等,而且他能把一些信息写入到Makefile文件中。你可使用./configure --help来查看有哪些配置项

咱们使用./configure --prefix=/usr/local/软件名指定安装路径,其余选项能够经过帮助查看。若是没有出现error、warning、no提示,则表示成功。

执行make命令编译软件

使用make编译软件,在过程当中若是出现错误,可使用make clean清理以前的make文件,从新make.

执行make install安装软件

输入make install后,等待一段时间,没有报错并顺利中止则表示安装成功。

软件的启动

启动文件通常在安装目录的bin/目录下,切换到bin/目录下后使用./启动程序 start即可以启动。

至此,源码包就安装完成了。

值得注意的是,.tar.gz是一种打包压缩格式,并不是以该后缀名下载的软件包都是源码包,有的是已经安装好的二进制包,解压后即可以使用。其最根本的区别是源码包包含src/目录和configure文件,二进制包通常包含bin/目录

转载于:https://my.oschina.net/u/2930289/blog/1616431