RedHat系Linux软件安装

Linux中的软件格式

一般的linux软件格式包括:

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

源码包

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

源码包具有提供修改源码,自由选择所需功能,编译安装更加适合自己系统,更稳定高效的特点。当然在linux,如果想卸载源码包安装的软件,只需要删除它所在的目录就行。

但是在安装一些大型软件集合时,容易出现编译错误。并且由于需要编译的过程,所以安装时间较长。

二进制包

经过编译后的代码包。

它具有安装、查询、更新、卸载等操作简单快速等特点。

也因此丧失了查看源代码的能力,并且在定制功能方面不如源码包。

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值