Linux应用程序基础与RPM软件包管理工具以及源代码编译安装
一,应用程序与系统命令的关系:
角色 | 系统命令 | 应用程序 |
---|---|---|
文件位置 | 一般在/bin和/sbin目录中,或为Shell内部命令 | 通常在/usr/bin和/usr/sbin目录中 |
主要用途 | 完成对系统的基本管理工作,例如ip配置工具 | 完成相对独立的其他辅助任务,录入可浏览网页浏览器 |
适用环境 | 一般只在字符操作界面中运行 | 根据实际需要,有些程序可在图形界面中运行 |
运行格式 | 一般包括命令字,命令选项和命令参数 | 通常没有固定的执行格式 |
二,典型应用程序的目录结构
文件类型 | 保存目录 |
---|---|
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序参考文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/share/man |
三,常见的软件包封装类型:
文件类型 | 保存目录 |
---|---|
RPM软件包 | 扩展名为:“.rpm” |
DEB软件包 | 扩展名为“.deb” |
源代码软件包 | 一般为“tar.gz”,“tar.bz2”等格式的压缩包 |
绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多在压缩包内提供以编译好的执行程序文件 解开压缩包后的文件即可直接使用 |
四,RPM包管理工具
Red-Hat Package Manager
- 由Red Hat 公司提出,被众多LINUX发行版本采用
- 建立统一的数据库文件
- 详细记录软件安装包,卸载等变化信息
- 自动分析软件包依赖关系
RPM软件包
- 软件素材参考:http://www.rpm.org
- 一般命名格式:bash-4.1.2-15.el6_4.X86_64.rpm
rpm命令的格式
- rpm命令能够实现几乎所有对RPM软件包的管理功能
- 执行 “man rpm" 命令可以获取得关于rpm命令的详细帮助信息
rpm命令功能
- 查询,验证RPM软件包的相关信息
- 安装,升级,卸载RPM软件包
- 维护rpm数据库信息等综合管理操作
查询RPM软件包信息
- 查询已安装的RPM的软件信息
- 格式:rpm -q [子选项] [软件名}
- 常用选项
- -qa -qi -ql -qf -qc -qd
- 常用选项
- 查询未安装的RPM软件包中文信息
- 格式 rpm -qp[子选项] RPM包文件
- 常用选项
- -qpi -qpl -qpc -qpd
- 常用选项
- 格式 rpm -qp[子选项] RPM包文件
下表为软件包命令查询选项具体作用:
命令 | 作用 |
---|---|
rpm -qa | 显示所有已安装的程序名 |
rpm -qi +程序名 | 显示已安装的程序的详细信息 |
rpm -ql +程序名 | 显示已安装的的程序的文件列表 |
rpm -qf +程序名 | 查询已安装的程序属于哪个安装包 |
rpm -qc +程序名 | 列出已安装程序的配置文件 |
rpm-qd +程序名 | 列出已安装程序的软件包文档所在位置 |
rpm -qR+程序名 | 列出已安装程序的依赖的软件包及文件 |
rpm -qpi +程序名 | 显示未安装的程序的详细信息 |
rpm-qpl +程序名 | 显示未安装的程序的文件列表 |
rpm -qpf +程序名 | 显示未安装的程序属于哪个程序 |
rpm -qpc +程序名 | 显示未安装的程序的配置文件 |
rpm -qpd +程序名 | 显示未安装的程序的软件包文档的位置 |
字符 | 功能 |
---|---|
-q | 使用询问模式,当遇到任何问题时,rpm指令会先询问用户 |
-R | 显示套件的关联性信息 |
- S | 显示文件庄涛,本参数需配合“-1”参数使用 |
-U | <套件档> 或–upgrade,<套件档>:升级指定的套建档 |
-v | 显示指令执行过程 |
-vv | 详细显示指令执行过程,便于排错 |
查询rpm软件包信息的命令选项及含义:
命令 | 选项 | 作用 |
---|---|---|
rpm | -q +程序名 | 查询软件包是否安装 |
rpm | -qa | 查询xxx是否被安装过 |
rpm | -i | 安装 |
rpm | -e | 卸载 |
rpm | -U | 升级(不管程序是否安装过,都给它升级) |
rpm | –force | 强制 |
rpm | –nodeps | 不检查与其他软件包的依赖关系 |
rpm | -v | 显示过程信息 |
rpm | -h | 在安装或升级过程中以#显示进度 |
如何安装无签名认证的rpm包
rpm的签名机制是为了验证rpm包来源的有效性和正当性,通过这个认证可以防止rpm包被恶意更改和确认包的来源,更加安全可靠
下面一条命令就是解决本地安装rpm包,yum解决依赖关系但不是官方rpm包,缺乏签名认证时的一种方法
yum --nogpgcheck .rpm (安装.rpm包)
编译安装的基本过程
1,tar 解包
tar zvxf/jxvf xxx.tar.gz/xxx.tar.bz2 -C 目标路径
2,配置
./configure --prefix=目标路径(此软件安装到哪里去)
3,编译
make
维护RPM数据库
- 重建RPM数据库 rpm --rebuilddb 或 rpm --initdb
-导入验证公钥 rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-7(在官网上下载相应密钥)
解决软件包依赖关系方法
- 安装有依赖关系的多个软件时
- 被依赖的软件包需要先安装
- 可同时指定多个.rpm包文件进行安装 - 卸载有依赖关系的多个软件时
- 依赖其他程序的软件包需要先卸载
- 可同时指定多个软件名进行卸载
- 忽略依赖关系
- 结合 “–nodeps”选项,但可能导致软件异常
五 ,源代码编译概述
使用源代码安装软件的优点
- 获得最新软件版本,及时修复bug
- 根据用户需要,灵活定制软件功能
应用场合举例
- 安装较新版本的应用程序时
- 当前安装的程序无法满足需要时
- 需要为应用程序添加新的功能时
Tarball封包
- .tar.gz和.tar.bz2格式据多
- 软件素材参考:http://sourceforge.net
完整性校验
- md5sum校验工具
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200819093146453.png#pic_center)
- 需安装支持C/C++程序语言编译器
- gcc, gcc-c++, make, …
tar解包
- 习惯上将软件包释放到/usr/src/目录
- 接报后的源代码文件位置: /usr/src/软件名-版本号/
示例
./configure配置
-
使用源代码目录中的configure 脚本
-
执行 “./configure --help”可查看帮助
-
典型的配置选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNI5gEs4-1597676644220)(en-resource://database/555:1)] -
示例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K9GfxuA7-1597676644222)(en-resource://database/557:1)]
make 编译与安装
- 编译 :执行 make命令
- 安装 :执行make install命令
也可同时编译与安装:make && make install
-例如:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hSgGot7t-1597676644223)(en-resource://database/563:1)]
测试,应用,维护软件
-
使用前
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-542MkORt-1597676644224)(en-resource://database/559:1)] -
启动Apache
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dOcasJ3B-1597676644224)(en-resource://database/561:1)] -
运行lynx 127.0.0.1查看本机Apache运行状态(lynx默认是未安装,如果安装有问题应该是yum源安装有问题,此时可采用rpm安装)