当前位置: 首页 > news >正文

linux源码编译rpm,Linux RPM 命令详解及源码编译安装

RPM 是RPM Package Manager(RPM软件包管理器)的缩写。

RPM文件在Linux系统中的安装最为简便。

一.rpm:

主要工作内容为安装,查询,卸载,升级,校验,数据库的重建,验证数据包等。

2.   rpm  lib数据库

数据库为 /var/lib/rpm

3.    rpm命名

包的组成部分

主包:

bind-版本号

如:bind-9.1.1-1.i586.el5.rpm

子包:

bind-libs-9.1.1-1.i586.el5.rpm

bind-utils-9.1.1-1.i586.el5.rpm

包名格式:

name-version-release.arch.rpm

bind软件名-主版本号.次版本号.发行号.架构平台.rpm

主版本号:重大改进

次版本号:某个子功能发生重大变化

发行号:修正了部分BUG,调整了一点功能

二:

1. rpm安装命令

rpm -i  /PAth/File文件

-v 以#显示进度,每个#表示2%;

-h:显示详细的信息过程

-vv:显示更详细的过程

rpm -ivh  /PATH/To/FILE

--nodeps:忽略依赖关系;

如:rpm -ivh gcc-4.4.7-3.el6.x86_64.rpm

--replacepkgs:重新安装,替换原有安装

--force:强行安装,可以实现重装或者降级

2. rpm包查询

rpm  -q  File_name:查看指定的包是否已经安装

rpm  -qa :查询已经安装的所有包

rpm  -qa |  grep File_name: 查询File_name是否已经安装,包括那些包

rpm  -qi  File_Name:查询指定包的说明信息

rpm  -ql File_Name:查询指定包安装后生成的文件列表

rpm  -qf /path/to/file_name: 查询指定的文件是由哪个rpm包安装生成的

rpm  -qc File_Name:查询指定安装包的配置文件

rpm  -qd PACKAGE_Name:查询指定安装包的帮助文件

rpm   -q  --scripts  PACKAGE_Name:查询指定安装包中包含的脚本

如果某个rpm包尚未安装,我们需查询其说明信息,安装以后生成的文件

rpm -qpi   /PATH/to/PACKAGE_Name

rpm  -qpl  /PATH/to/PACKAGE_Name

3. rpm包升级

rpm  -Uvh  /PATH/to/PACKAGE_Name   如果装有老版本的,则升级,否则安装

rpm  -Fvh  /PATH/to/PACKAGE_Name   如果装有老版本的,则升级,否则退出

rpm  --oldpackage: 降级

4. rpm卸载

rpm  -e PACKAGE_Name :

rpm   --nodeps :忽略依赖关系

rpm  -e  --nodeps Package_Name: 忽略依赖关系卸载

5. rpm校验

rpm -V PACKAGE_NAME :校验指定rpm包

6. 重建数据库

rpm  --rebuilddb:重建数据库,一定会重新建立

rpm --initdb:初始化数据库 ,没有才建立,有就不用建立数据库

7. rpm检验来源合法性,及软件包完整性

[root@localhost zhang]# ls /etc/pki/

[root@localhost zhang]# ls /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[root@localhost zhang]#rpm --import  /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件

rpm -K /PAPT/to/PACKAGE_NAME   验证rpm包

rsa,gpg:验证来源合法性,也即验证签名,可以使用--nosignature,略过此项

sha1,md5:验证软件包的完整性,可以使用--nodigest,略过此项

列子:以 gcc-4.4.7-3.el6.x86_64.rpm软件包为例[root@localhost zhang]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[root@localhost zhang]# rpm -K gcc-4.4.7-3.el6.x86_64.rpm

gcc-4.4.7-3.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

[root@localhost zhang]# rpm -K --nodigest gcc-4.4.7-3.el6.x86_64.rpm

gcc-4.4.7-3.el6.x86_64.rpm: rsa (md5) pgp OK

[root@localhost zhang]# rpm -K --nosignature gcc-4.4.7-3.el6.x86_64.rpm

gcc-4.4.7-3.el6.x86_64.rpm: sha1 md5 OK

源码编译安装:  编译安装的步骤:  1、下载源码包,并解压   # tar xf package.tar.{gz | bz2 | xz}  注意,解压完成后的目录名称通常为package  2.切换到源码目录中   # cd package  3、执行configure脚本   # ./configure  4.编译   # make  5、安装   # make install

configure脚本的通用功能:  我们需要定义的配置:   1、指定安装路径    --prefix=/usr/local/package_name   2、指定配置文件路径    --sysconfdir=/etc/package_name   3、指定启用/禁用的特性:    --enable-feature  例如:--enable-fpm    --disable-feature 例如:--disable-socket   4、指定所依赖功能、程序或文件    --with-function:启用某功能    --without-function: 禁用某功能   不同的程序,其configure脚本功能不同,需获取帮助    ./configure --help

二进制程序: #vim /etc/profile.d/apache.sh PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH export PATH

头文件输出给系统 # ln -sv /usr/local/apache/include /usr/include/httpd库文件输出 #vim /etc/ld.so.conf.d/httpd.conf /usr/local/apache/bin让系统重新生成库文件路径缓存 #ldconfig导出man文件 #vim /etc/man.config MANPATH /usr/local/apache/man

卸载则删除安装目录即可

相关文章:

  • 企业 linux安装软件有哪些,RedHat 6.0 Enterprise企业版如何使用yum安装软件
  • linux应用参数 冒号,Lua-面向对象中函数使用时冒号(:)和点(.)的区别
  • linux执行计划步骤,linux下定时执行计划任务(Scheduled execution tasks under Linux).doc...
  • linux下跑酷游戏编程,【Unity3D开发小游戏】《跑酷小游戏》Unity开发教程
  • c语言中实型变量的三种类型,在C语言中实型变量分为两种类型.doc
  • 如何用c语言输出1 11 111,C语言练习1-11.doc
  • c语言 出库入库软件,终于把栈的实现库遍好了(C语言也可以用哦)
  • 数列极差问题c语言源代码,数列极差问题
  • c语言 输出链表函数,大神帮我看一下怎么输入输出一个链表,我输入了但是没输出啊...
  • android编程歌词显示,Android 音乐播放器实现歌词显示
  • android 代码 drawable,Android 通过DrawableInflater加载自定义Drawable
  • Android ui 单元测试 覆盖率,Android单元测试/Ui测试+JaCoCo覆盖率统计
  • android高德地图用地址获取经纬度,高德地图API-获取位置信息的经纬度
  • android notification 的总结分析,Android中Notification用法实例总结
  • 鸿蒙与微信小程序,从微信小程序到鸿蒙JS开发-页面路由
  • HTTP--网络协议分层,http历史(二)
  • HTTP中GET与POST的区别 99%的错误认识
  • JAVA之继承和多态
  • opencv python Meanshift 和 Camshift
  • use Google search engine
  • vue--为什么data属性必须是一个函数
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 跨域
  • 来,膜拜下android roadmap,强大的执行力
  • 实习面试笔记
  • 延迟脚本的方式
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (12)Hive调优——count distinct去重优化
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (BFS)hdoj2377-Bus Pass
  • (C#)获取字符编码的类
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (第二周)效能测试
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (简单) HDU 2612 Find a way,BFS。
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十)c52学习之旅-定时器实验
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net6 webapi log4net完整配置使用流程
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .net与java建立WebService再互相调用
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @ModelAttribute 注解
  • [2669]2-2 Time类的定义
  • [C\C++]读入优化【技巧】
  • [C++随笔录] 红黑树
  • [CTSC2014]企鹅QQ