一、源代码管理

绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为 tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为:

  1. ./configure:解压缩后运行该命令,它主要检查编译环境、相关库文件以及配置参数并生成 makefile
  2. make:对源代码进行编译,生成可执行文件
  3. make install:将生成的可执行文件安装到计算机中

源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好。并且开源软件一般会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)。

二、RPM(RPM Package Manager,RPM包管理器)

使用源代码形式安装软件的优点是适用于所有系统、可定制,而缺点则是操作复杂、编译时间较长、极容易出现错误。为了方便使用,Erik Troan 和 Marc Ewing 开发了 RPM(RPM Package Manager,RPM 包管理器),RPM 最早是应用在 RedHat(红帽)中的。

1.设计目标

RPM 通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。RPM 的设计目标如下:

  • 使用简单
  • 使用单一软件包格式文件发布(.rpm 文件)
  • 可升级
  • 追踪软件依赖关系
  • 基本信息查询
  • 软件验证功能
  • 支持多平台

2.命名规范

packagename-1.2.0-30.el6.x86_64.rpm

(包名-版本号-操作系统-硬件平台)

其中,

操作系统:el6 表示 RedHat 6.x 或 CentOS 6.x 操作系统。

硬件平台:x86_64 表示 64 位平台,i386 表示 32 位平台,noarch 表示不需要特定的硬件平台(跨平台)。

3.基本命令

安装包:

安装包:rpm -i packagename.rpm

卸载包:

rpm -e packagename

升级包:

rpm -U packagename-new.rpm

通过 http、ftp 协议安装:

rpm - ivh http://www.domainname.com/packagename.rpm

常用参数:

-v    显示详细信息
-h 显示进度条
-i 安装包
-e 卸载包
-U 更新(升级)包
-q 查询
-a 查询所有已安装包
-i 显示包信息
-h 取hash(哈希)
-f 查询文件属于哪个包
-p 未安装包的信息
-l 列出包里的文件

 

三、RPM查询

rpm -qa                     列出已安装的所有rpm包
rpm -qa | grep '.*gnome.*' 列出所有名称含有gnome的包 rpm -qf filename 查询目标文件属于哪个包 rpm -qi package 获取一个已安装包的相关信息
rpm -qip package.rpm 获取一个未安装包的相关信息 rpm -ql package 获取一个已安装包内的文件列表
rpm -qlp package.rpm 列出一个未安装包内的文件列表

  

四、RPM验证

软件包在传播的过程中可能会被恶意地修改,所以为了安全起见,现代系统都加入了对软件包的验证功能。

验证一般使用非对称加密算法,所以需要一个公钥。导入公钥的方法是:

rpm --import /path/to/key_file

验证未安装的软件包:

rpm -K package.rpm

验证已安装的软件包:

rpm -V package

  

 

参考链接:

Linux中RPM包命名规则

YUM 公钥认证及导入

Linux 入门记录:十九、Linux 包管理工具 RPM的更多相关文章

  1. Linux学习之十九-Linux磁盘管理

    Linux磁盘管理 1.相关知识 磁盘,是计算机硬件中不可或缺的部分磁盘,是计算机的外部存储器中类似磁带的装置,将圆形的磁性盘片装在一个方的密封盒子里,这样做的目的是为了防止磁盘表面划伤,导致数据丢失 ...

  2. Linux下程序包管理工具RPM

    实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...

  3. Linux 入门记录:九、Linux 文件系统挂载管理

    一.挂载操作 磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用. Windows 或 Mac 系统会进行自动挂载,一旦创建好文件系统后会自动挂载到系统上,Windows 上称之为 C 盘.D ...

  4. Linux 入门记录:七、fdisk 分区工具

    一.fdisk分区工具 fdisk 是来自 IBM 的老牌分区工具,支持绝大多数操作系统,几乎所有的 Linux 发行版都装有 fdisk,包括在 Linux 的 resuce 模式下依然能够使用. ...

  5. 攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

    一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分 ...

  6. Linux之包管理工具总结[RPM/DPKG]-[YUM/APT]

    0.关键词解释 RPM:Red Hat Package Manager(原名),RPM Package Manager(现名,递归缩写,类似于GNU的命名); 解释:RPM软件包管理器 YUM:Yel ...

  7. Golang学习--包管理工具glide

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  8. glide包管理工具

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  9. Linux 入门记录:二十、Linux 包管理工具 YUM

    一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...

随机推荐

  1. 窗口中各模块的切换效果,使用jquery实现

    用到了两个js库,请自行下载,用到的背景图片可任意图片都可以,主要是看效果 <!DOCTYPE html> <html> <head> <script src ...

  2. 新jQuery中attr 与 prop的不同

    使用最新版本jquery,在对checkbox操作时发现 attr属性全选,反选等不起作用,后查发现新版本对标签属性的设置发生了变化. 在高版本的jquery引入prop方法后,什么时候该用prop? ...

  3. 第一篇:python基础_1

    本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...

  4. 文件传输底层是二进制 所以在传输前可以通过 InputStreamer 指定传输出的编码格式

    文件传输底层是二进制 所以在传输前可以通过 InputStreamer 指定传输出的编码格式

  5. 【bzoj3110】[Zjoi2013]K大数查询 权值线段树套区间线段树

    题目描述 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c.如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数 ...

  6. 【bzoj4196】[Noi2015]软件包管理器 树链剖分+线段树

    题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个 ...

  7. SVG总结小知识

    SVG:可缩放矢量图形.全称是:Scalable Vector Graphics SVG使用 XML 格式定义图像.   SVG是使用 XML 来描述(二维图形和绘图)程序的语言.   SVG是W3C ...

  8. [SDOI2015]约数个数和 莫比乌斯反演

    ---题面--- 题解: 为什么SDOI这么喜欢莫比乌斯反演,,, 首先有一个结论$$d(ij) = \sum_{x|i}\sum_{y|j}[gcd(x, y) == 1]$$为什么呢?首先,可以看 ...

  9. Android Appliction 使用解析

    Application Base class for those who need to maintain global application state. You can provide your ...

  10. Mac将应用拖入Finder工具栏

    在Finder的工具栏上放一下应用,方便打开对应的文件,可以 Command + 鼠标拖动应用,将应用拖入Finder工具栏中. 本人的Finder工具栏上添加了vscode这个应用