RPM(RedHat Package Manager),不同Linux发行版发布的RPM文件甚至不同版本,不通用。

SRPM为Source RPM,所提供的软件内容没有经过编译,格式为xxx.src.rpm。将软件编译成RPM文件,然后将编译完成的RPM文件安装。

RPM属性依赖使用YUM在线升级。YUM服务器将依赖属性问题记录为依赖性列表,存于服务器或本地。有需求时下载列表,对比数据库,解决依赖问题,下载软件。

RPM文件在系统上安装完毕后,相关信息写入到/var/lib/rpm中。

RPM -i安装,-v查看详细安装信息,-h显示安装进度。

如安装两个软件:rpm -ivh a.i386.rpm b.i386.rpm *.rpm,

通过网址进行安装:rpm -ivh http://website.name/path/pkgname.rpm

RPM安装时的一些选项:

找出安装文件在光盘中的位置:find /mnt -name 'pam-devel*'

测试依赖性:rpm -ivh pam-devel... --test

RPM查询

-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 底下的檔名而已)
-qd :列出该软件的所有说明文件 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件;

如查询是否已经安装了软件:rpm -q logrotate  

RPM验证与数字签名

-V :后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的文件;
-Vp :后面加的是文件名,列出该软件内可能被更动过的文件;
-Vf :列出某个文件是否被更动过~

如:rpm -V logrotate#表示该文件没有被修改过。rpm -Vf /etc/crontab

其中显示的信息解释如下:之后的c表示logrotate为configuration文件。

安装RPM文件时,首先安装原厂的公钥文件,安装时rpm命令读取rpm文件的签名与安装签名对比,相同则安装。

CentOS的数字签名在之类:/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

rpm文件的安装:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

查找:locate GPG-KEY      find /etc -name '*GPG-KEY*'

显示:rpm -qa | grep pubkey     rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b#密钥以软件pubkey的呈现方式

RPM卸载:-e

如:显示相关软件rpm -qa | grep pam,卸载rpm -e pam

由于删除,卸载等操作,可能导致RPM数据库/var/lib/rpm/的文件损坏,通过rpm --rebuilddb重建数据库

利用YUM查找磁盘阵列相关软件信息:yum search raid

找出mdadm软件功能:yum info mdadm

列出yum已安装软件名称:yum list

列出服务器上可供更新本机的软件:yum list updates

列出提供passwd命令的软件:yum provides passwd

 安装软件:yum install pam-devel

卸载软件:yum remove pam-devel

修改配置文件:vim /etc/yum.repos.d/CentOS-Base.repo,一些说明:

修改baseurl的地址即可修改镜像源。之后列出软件是否正常运行:yum repolist all

修改软件源后,可能造成本地列表与YUM服务器列表不同步,造成无法更新,需要删除本机的旧数据:yum clean all

YUM软件群组功能

查看目前可用和未安装的软件群组:yum grouplist

查看软件群组信息:yum groupinfo "Scientific Support"

安装软件群组:yum groupinstall "Scientific Support"

修改群组安装时默认全部安装而不是可选择安装:vim /etc/yum.conf,然后补如下:之后安装。

软件拓展计划EPEL提供了许多额外的软件源。

针对epel,在建立/etc/yum.repos.d/epel.repo文件,写入数据:

使用自定义文件安装两个软件:yum --enablerepo=epel install netcdf R

使用光盘安装:

全系统自动升级:

安装如apache软件的防火墙:

使用SRPM软件:

安装编译一些参数:

示例:下载软件wget http://vault.centos.org/7.1.1503/updates/Source/SPackages/ntp-4.2.6p5-19.el7.centos.1.src.rpm

直接编译:rpmbuild --rebuild ntp-4.2.6p5-19.el7.centos.1.src.rpm

安装依赖项:yum install libcap-devel openssl-devel libedit-devel pps-tools-devel autogen autogen-libopts-devel

再次编译:rpmbuild --rebuild ntp-4.2.6p5-19.el7.centos.1.src.rpm

找到最后完成编译的软件:/root/rpmbuild/RPMS/x86_64/ntp-4.2.6p5-19.el7.centos.1.x86_64.rpm

 使用的路径与需要的软件

直接安装SRPM文件:rpm -ivh ntp-4.2.6p5-19.el7.centos.1.src.rpm,查看:ll -l /root/rpmbuild

查看配置文件*.spec的主要内容:如ntp.spec,为将SRPM编译为RPM的主要文件,每段以%开头

文件一些格式说明:

SRPM一些编译指令:rpmbuild -ba ntp.spec编译并同时产生 RPM 与 SRPM 文件

rpmbuild -bb ntp.spec仅编译成 RPM 文件

一些细节:

自行软件打包时,首先制作源码,之后制作Tarball。

然后建立.spec文件,如:

Name: main
Version: 0.1
Release: 1%{?dist}
Summary: Shows sin and cos value.
Group: Scientific Support
License: GPLv2
URL: http://linux.vbird.org/
Source0: main-0.1.tgz # 这两个档名要正确喔!
Patch0: main_0.1_to_0.2.patch
%description
This package will let you input your name and calculate sin cos value.
%prep
%setup -q
%patch0 -p1 # 要用来作为 patch 的动作!
%build
make clean main # 编译就好!不要安装!
%install
mkdir -p %{buildroot}/usr/local/bin
install -m 755 main %{buildroot}/usr/local/bin # 这才是顺利的安装行为!
%files
/usr/local/bin/main
%changelog
* Wed Sep 09 2015 VBird Tsai <vbird@mail.vbird.idv.tw> 0.2
- build the program

然后编译:rpmbuild -ba main.spec

安装,测试,查询:

 yum install /root/rpmbuild/RPMS/x86_64/main-0.1-1.el7.centos.x86_64.rpm

rpm -ql main    rpm -qi main

讲真,废话真的太多了!因省时间,直接进行了截图!

别人的Linux私房菜(23)软件安装RPM、SRPM、YUM的更多相关文章

  1. linux 基础入门(8) 软件安装 rpm、yum与源码安装详解

    8.软件 RPM包安装 8.1rpm安装 rpm[选项]软件包名称 主选项 -i 安装 -e卸载 -U升级 -q查找 辅助选项 -ⅴ显示过程 -h --hash 查询 -a-all查询所有安装的包 - ...

  2. 软件安装 RPM SRPM YUM

    RPM介绍 RPM是已经编译好的软件安装库.编译是有相应环境相适应的,包括系统,版本等相关信息都要跟编译版本一致才行,否则肯定会出现安装不成功的情况,强制安装的话,也会出现各种各样的问题. 在这种情况 ...

  3. 鸟哥的linux私房菜学习记录之软件安装RPM,SRPM,YUM

  4. 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM   软件管理员简介 RPM与DPKG两大主流 rpm: redhat       centos     suse    命令:yum ...

  5. 别人的Linux私房菜(22)软件安装:源代码与Tarball

    执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...

  6. 别人的Linux私房菜(6)文件权限与目录配置

    账号与一般身份用户存放在/etc/passwd文件中 个人密码存放在/etc/shadow文件中 Linux所有组名存放在/etc/group中 ls -al查看所有信息并显示权限等 文件权限的10字 ...

  7. linux 文件上传&软件安装(rpm)

    文件的上传与下载(linux -linux ) 实例1:从远处复制文件到本地目录命令:scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /o ...

  8. 别人的Linux私房菜(4)安装CentOS7

    linux磁盘分区参考: 添加磁盘分区(总30G). BIOS boot 2MB 系统自定义文件系统 分区格式为主要分区 /boot 1GB  文件系统为xfs  主要分区 / 10GB 文件系统为x ...

  9. 别人的Linux私房菜(21)基础系统设置与备份策略

    网络设置,手动设置IP,DHCP自动获取. 以太网协议开发出来的网卡ethN,N为数字. CentOS7对网卡命名的规则:eno代表由主板BIOS内建立的网卡,ens1由主板BIOS内建的PCI-E界 ...

随机推荐

  1. Windows10关闭自动更新

    1 使用windows+r调出运行,输入:services.msc2 找到Windows update,右键选择属性:将启动类型从自动改为手动.3 使用windows+r调出运行,输入:gpedit. ...

  2. C++Primer第五版——习题答案详解(八)

    习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第9章 顺序容器 练习9.1 a.list,需要按字典序插入,可能插入位置在中间 b.d ...

  3. 分布式CAP定理,为什么不能同时满足三个特性?

    在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理. 根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性). Availability(可 ...

  4. mybatis入门篇:通过SqlSession.selectList进行数据查询

    作为一个java菜鸟,早就从慕课网中学到一些基本的mybatis的用法,但是一直不成体系,懵懵懂懂,既然正式入了java这个坑,就打算好好学学,所以买了本<MyBatis从入门到精通>,在 ...

  5. 44个Java代码性能优化总结

    https://blog.csdn.net/xiang__liu/article/details/79321639 ---稍后有时间整理

  6. 优化 SQL SELECT 语句性能

    SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则.20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能需要花费80%的时间. 检查索引:在SQ ...

  7. javaee_正则表达式基础和常用表达式

    正则基础: 1.1 -字符集 [ ] : 代表单个字符. [^] : 除了该字符外的所有单个字符. [a-zA-Z] : [a-z] || [A-Z]. [a-d[m-p]] :[a, d] || [ ...

  8. django 开发之前后端分离开发模式

    1. 什么是前后端分离开发的概念: 前端页面运行前端服务器上,负责页面的渲染(静态文件的加载)与跳转 后端代码运行在后端服务器上, 负责数据的处理(提供数据请求的接口) 2. 前后端分离开发碰到的问题 ...

  9. python中os模块

    os  模块 操作系统模块,该模块主要处理与操作系统相关的操作 最常用是文件操作:打开.读取 import os os.getcwd() #获取当前执行文件夹路径 ​ os.chdir('dirnam ...

  10. 转:解决AndroidStudio连不上Android设备真机的问题

    Android手机开发Android应用的时候,需要连接真机,进行应用软件的真机调试,但是由于诸多原因,可能导致无法与实现连接: 在我们连接了Android设备出现上面这种情况的时候,可以打开设备管理 ...