Linux下软件安装常见的三种方式(源码安装, rpm安装, yum安装)

一、源码安装

1.1提前声明

源码安装是Linux下安装软件最麻烦的,没有之一,一般建议是不用源码安装的,建议采用 yum 安装,简单快捷。

而且源码包安装会比 rpm 包安装慢,是因为 rpm 的软件包是根据特定系统和平台而指定的,经常一种程序会提供很多 rpm 包的格式,用户根据系统情况选择适合的 rpm 包直接安装,而源码包相当于通用型,可以是用于多个系统中,所以需要运行configure脚本来检测环境,生成对应的安装信息。
源码安装 注意事项:
下载源码包尽量从官网下载,保证安全
源码包保存路径约定为:/usr/local/src/
安装路径约定为:/usr/local/源码包名
安装开始前,先要查看安装说明 vim INSTALL vim README
查看配置参数:./configure –help
安装过程中,每进行完一步要使用echo $? 进行验证前一步是否产生错误

这样说来源码安装是不是就没有优点了呢,其实也不尽然。

1.2 源码安装优缺点:

优点

  1. 文档齐全
  2. 可以定位到代码,所以debug很方便
  3. 本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)
    缺点
  4. 编译麻烦
  5. 缺乏自动依赖管理,软件升级麻烦

1.3 安装流程

1.3.1 解压源码包tar文件:
源码包通常会使用tar工具归档然后使用gunzip或bzip2进行压缩,
后缀格式会分别为.tar.gz与.tar.bz2,分别的解压方式:

tar -zxvf FileName.tar.gz
tar -jxvf FileName.tar.bz2

1.3.2 切换到解压后的目录
cd /解压后目录

1.3.3 准备编译工作:
在开始安装服务之前,需要执行configure脚本,会自动的对当前系统进行一系列的评估,如源文件、软件依赖库、编译器、汇编器、连接器检查等等,如果有需要,还可以使用 -prefix 参数来指定程序的安装路径,而当脚本检查系统环境符合要求后,则会在当前目录下生成一个Makefile文件。
在shell命令行下敲入下面指令:

./configure -prefix=/usr/local/program

1.3.4 生成安装程序:
上步生成的Makefile文件会保存有系统环境依赖关系的安装规则,接下来需要使用make命令来根据Makefile文件提供的规则使用合适的SHELL来编译所有依赖的源码,然后make命令会生成一个最终可执行的安装程序。

make 编译

1.3.5 安装服务程序:
如果在configure脚本阶段中没有使用-prefix参数,那么程序一般会被默认安装到/usr/local/bin目录中。

make install 编译安装

1.3.6 清理临时文件(可选):

make clean

1.3.7 卸载服务程序命令(需要才执行)

make uninstall

1.3.8 查看安装信息
whereis 命令定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。
例如:whereis java
whereis [-bmsu] [BMS 目录名 -f ] 文件名

-b 搜索文件的二进制部分。
-m 搜索文件的手册部分。
-s 搜索文件的源部分。
-u 没有说明文档的文件
-B、-M 和 -S 可以用于更改或限制 whereis 命令搜索的位置。由于该程序为了运行得更快而使用chdir子例程,所以用-M、-S 和 -B标志目录列表给出的路径名必须是完整的;例如,它们必须以一个 / (斜杠)开始。
-B -B 与 -b一样,但是添加了要搜索的目录。更改或限制 whereis 命令搜索二进制文件的位置。
-M -M 与 -m 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索手册部分的位置。
-S -S 与 -s 一样,但是添加了要搜索的目录。更改或限定 whereis 命令搜索源的位置。
-f 终止最后的 -M、-S 或 -B 目录列表并发文件名起始位置信号。

(四)[参数][文件]

-c 压缩文件
-x 解压文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压过程信息
-f 目标文件名
-P 保留原始权限和属性
-p 使用绝对路径压缩
-C 指定解压到的目录

二、 rpm安装

rpm安装就是:安装别人编译好的软件包。如果依赖的文件没有事先安装,软件无法安装成功。
rpm即Redhat Package Manager,Redhat的软件包管理方式,适用于rpm install命令。rpm不仅已经把软件源代码编译成二进制文件,而且还对软件包依赖的软件,系统环境等做了统计。文件扩展名:rpm。还有一种SRPM:没有编译成二进制文件,但是也包含rpm的特性。
对于一个rpm包来说,都是有 " - " 和 " . " 构成的,基本上有以下几部分组成:* 包名 * 版本信息 * 发布版本号 * 运行平台,当出现noarch,代表的是软件可以平台兼容

常用方法

2.1.1 安装

rpm -i 需要安装的包文件
rpm -iv 需要安装的包文件(显示安装详情)
rpm -ivh 需要安装的包文件(显示安装详情及进度)
rpm –nodeps 强制安装,而不用管其依赖的包
rpm –force 强制安装,而不管系统中有没有安装过这个包

2.1.2 升级

rpm -U 需要升级的包文件
rpm -Uvh 需要升级的包文件(显示升级详情及进度)

2.1.3 卸载

rpm -e 需要卸载的软件包

注:如果其他程序依赖要卸载的包,系统会提示不能删除,若需要强行删除加上–nodeps,
会强制删除,但可能导致依赖于它的软件不能运行。

2.1.4 查看安装

rpm -qa 查看已安装
rpm -qa [pkgname] 列出所有已经安装过的包
rpm -ql pkgname 列出一个已经安装的包安装了哪些文件
rpm -qf file 列出某个文件由哪个包安装
rpm -qi file 查询某个安装包的详细安装信息

2.1.5 查看指定包
rpm -qa | grep “软件或者包的名字”

三、yum安装

yum工具是RedHat公司开发的用于管理rpm包的工具使用 yum 安装 rpm 包可以自动解决包之间的依赖关系我们可以自定义 yum 的源,可以搭建本地 yum 仓库yum 源配置文件为

/etc/yum.repos.d/CentOS-Base.rep

yum常用选项

操作符 作用
yum install pkg 安装rpm包
yum remove pkg 卸载rpm包
yum list 从配置文件中指定的yum源列出所有的rpm安装包
yum search xxx 搜索rpm包
yum groupinstall grp 安装rpm组件
yum groupremove grp 卸载rpm组件
yum grouplist 列出所有的rpm组件
yum update / yum upgrade 更新所有的rpm包

搭建本地 yum 仓库

将CentOS安装盘或安装镜像挂载到指定路径 如/mnt/
备份好配置文件 /etc/yum.repos.d/CentOS-Base.repo到一个指定路径
删除配置文件 /etc/yum.repos.d/CentOS-Base.repo
编辑另一个配置文件 /etc/yum.repos.d/CentOS-Media.repo
[local-cdrom] yum list 时显示在最右边的标识
name=cd yum 仓库标识
baseurl=file:///mnt/ 指定 rpm 仓库路径
gpgcheck=0 不检测
enabled=1 允许

然后保存退出
使用 yum 只下载不安装 rpm 包
先安装一个插件:yum install -y yum-plugin-downloadonly
对于未安装过的 rpm 包: yum install -y pkg –downloadonly
对于已经安装过的: yum reinstall -y pkg –downloadonly
指定 rpm 包的下载路径:yum install -y pkg –downloadonly –downloaddir dir

你可能感兴趣的:(Linux)