源码安装是Linux下安装软件最麻烦的,没有之一,一般建议是不用源码安装的,建议采用 yum 安装,简单快捷。
而且源码包安装会比 rpm 包安装慢,是因为 rpm 的软件包是根据特定系统和平台而指定的,经常一种程序会提供很多 rpm 包的格式,用户根据系统情况选择适合的 rpm 包直接安装,而源码包相当于通用型,可以是用于多个系统中,所以需要运行configure脚本来检测环境,生成对应的安装信息。
源码安装 注意事项:
下载源码包尽量从官网下载,保证安全
源码包保存路径约定为:/usr/local/src/
安装路径约定为:/usr/local/源码包名
安装开始前,先要查看安装说明 vim INSTALL vim README
查看配置参数:./configure –help
安装过程中,每进行完一步要使用echo $? 进行验证前一步是否产生错误
这样说来源码安装是不是就没有优点了呢,其实也不尽然。
优点
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即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工具是RedHat公司开发的用于管理rpm包的工具使用 yum 安装 rpm 包可以自动解决包之间的依赖关系我们可以自定义 yum 的源,可以搭建本地 yum 仓库yum 源配置文件为
/etc/yum.repos.d/CentOS-Base.rep |
---|
操作符 | 作用 |
---|---|
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