Linux的rpm命令以及挂载源码编译安装

本文介绍了Linux系统中RPM命令的使用,包括查询、安装、卸载、升级和数据库维护。同时,讲解了源码编译安装的过程,包括其优势和常见步骤,以及编译安装脚本的运用。通过本文,读者能够掌握RPM包管理和源码编译安装的基本操作。
摘要由CSDN通过智能技术生成

RPM命令以及源码编译

 1.应用程序与系统命令的关系

1.对比系统命令和应用程序的不同

- 位置:        Linux中一切皆为文件 演示内部命令和外部命令  位置   应用程序位置
- 用途:        命令主要处理系统的基本操作(复制,配置) 应用程序可以完成独立的任务浏览器访问网页
- 使用环境    字符界面                        字符和桌面
- 格式            命令的格式 命令参数对象             无固定格式

 2.典型应用程序的目录结构

| **文件类型**                     | **保存目录**   |
| -------------------------------- | -------------- |
| 普通执行程序文件                 | /usr/bin       |
| 服务器执行程序文件和管理程序文件 | /usr/sbin      |
| 应用程序配置文件                 | /etc           |
| 日志文件                         | /var/log       |
| 应用程序参考文档文件             | /usr/share/doc |

3.常见的软件包封装类型

| **文件类型**       | **保存目录**                                                 |
| ------------------ | ------------------------------------------------------------ |
| RPM软件包          | 扩展名为“.rpm”                                               |
| DEB软件包          | 扩展名为“.deb”                                               |
| 源代码软件包       | 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码 |
| 绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用 |

1. RPM包 : RPM Package Manager的缩写  是红帽公司自主研发的一款工具,实用性强。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在相互依赖的情况。

2. DEB包:在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。

3. 源代码软件包 :是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

4. 绿色免安装的软件包 :顾名思义自行理解比如Windows的截图软件


<font >查看rpm包里面的内容</font>

[root@localhost Packages]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -tv


软件包中的文件分类



#### RPM包管理工具

Red-Hat Package Manager

由Red Hat公司提出,被众多Linux发行版所采用

建立统一的数据库文件(一张对应表将信息写入)

详细记录软件包安装、卸载等变化信息

自动分析软件包依赖关系 

RPM软件包
软件素材参考:http://www.rpm.org

##### 一般命名格式

 bash-4.1.2-15.el6_4.x86_64.rpm

 bash shell环境    版本信息 4.1.2   15发布次数    x86_64硬件(为“i386”或“i686”等)

拆包后的分类
```bash
[root@localhost Packages]# ll httpd*
-rw-rw-r--. 2 root root 2835196 8月  11 2017 httpd-2.4.6-67.el7.centos.x86_64.rpm
-rw-rw-r--. 2 root root  197360 8月  11 2017 httpd-devel-2.4.6-67.el7.centos.x86_64.rpm
-rw-rw-r--. 2 root root 1402824 8月  11 2017 httpd-manual-2.4.6-67.el7.centos.noarch.rpm
-rw-rw-r--. 2 root root   89284 8月  11 2017 httpd-tools-2.4.6-67.el7.centos.x86_64.rpm
#主包  开发包   手册包   工具包
程序包管理器相关文件
  1. 包文件组成 (每个包独有)
  • 包内的文件
  • 元数据,如:包的名称,版本,依赖性,描述等
  • 可能会有包安装或卸载时运行的脚本
  1. 数据库(公共):/var/lib/rpm (安装好后会将一些公共的数据放入数据库中)
  • 程序包名称及版本

  • 依赖关系

  • 功能说明

  • 包安装后生成的各文件路径及校验码信息

包数据库:

[root@localhost Packages]# ll /var/lib/rpm
#很关键安装卸载包都需要
总用量 96744
-rw-r--r--. 1 root root  4157440 8月  27 09:30 Basenames
-rw-r--r--. 1 root root    16384 8月  27 09:30 Conflictname
-rw-r--r--. 1 root root   311296 8月  27 10:07 __db.001
-rw-r--r--. 1 root root    90112 8月  27 10:07 __db.002
-rw-r--r--. 1 root root  1318912 8月  27 10:07 __db.003
-rw-r--r--. 1 root root  1159168 8月  27 09:30 Dirnames
-rw-r--r--. 1 root root    32768 8月  27 09:30 Group
-rw-r--r--. 1 root root    20480 8月  27 09:30 Installtid
-rw-r--r--. 1 root root    69632 8月  27 09:30 Name
-rw-r--r--. 1 root root    32768 8月  26 11:44 Obsoletename
-rw-r--r--. 1 root root 88866816 8月  27 09:30 Packages
-rw-r--r--. 1 root root  2400256 8月  27 09:30 Providename
-rw-r--r--. 1 root root   507904 8月  27 09:30 Requirename
-rw-r--r--. 1 root root   131072 8月  27 09:30 Sha1header
-rw-r--r--. 1 root root    73728 8月  27 09:30 Sigmd5
-rw-r--r--. 1 root root     8192 8月  27 09:30 Triggername

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包

安装软件包时,会因为缺少依赖的包,而导致安装包失败。

获取途径
  1. 红帽官方
  2. 第三方组织提供
  3. 软件项目官方站点
  4. 自己制作
rpm命令的格式

RPM软件可以实现几乎所有的功能,新增,删除,更新等

查询

查询已安装的软件包

选项 功能效果
rpm -qa(all) 显示当前系统中以 RPM 方式安装的所有软件列表
rpm -q 软件名 查询指定软件是否已安装
rpm -qi 软件名 查看指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql(list) 软件名 显示指定的软件包在当前系统中安装的所有目录、文件列表
rpm -qc (configfiles ) 软件名 列出已安装的指定软件的配置文件
rpm -qd(docfiles) 软件名 列出已安装的指定软件的软件包文档所在位置
rpm -qR (requires) 软件名 列出已安装的指定软件的依赖的软件包及文件
rpm -qf(file) 软件名 查看指定的文件或目录是由哪个软件包所安装的
rpm-qpd 查询未安装指定软件包的文档位置
rpm -qpi 查询未安装指定软件包的完整名称详细信息
rpm -qpl 查询未安装指定软件包的文件列表
rpm -qpc 查询未安装指定软件包的配置文件位置

例子

[root@localhost system]# rpm -qa
#查询所有的已rpm方式安装的软件列表

[root@localhost data]# rpm -q httpd
#查看httpd有没有安装
httpd-2.4.6-67.el7.centos.x86_64

[root@localhost data]# rpm -qi httpd
[root@localhost data]# rpm -qi tree 
#查看httpd的详细信息

[root@localhost data]# rpm -ql httpd
[root@localhost data]# rpm -ql tree 
#目录或文件列表

[root@localhost data]# rpm -qc httpd
#配置文件位置

[root@localhost data]# rpm -qd tree 
#软件包文档所在位置
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

[root@localhost data]# rpm -qR tree 
#查看依赖包
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值