软件包管理及制作rpm软件包

使用Yum软件源

  • 列出yum库
    yum repolist
  • 清理缓存
    yum clean all
  • 添加指定的yum仓库配置
    1.使用yum-config-manager工具建立新配置文件
    yum-config-manager --add-repo http://content.example.com/rhel7.0/x86_64/dvd
    2.修改新建的仓库配置,,添加gpgcheck=0以禁用GPG签名检查
vim  /etc/yum.repos.d/local.dvd
[rhel7] #仓库标示
name=dvd #仓库描述信息
baseurl=http://content.example.com/rhel7.0/x86_64/dvd
enabled=1  #是否启用本文件(1启用,0
gpgcheck=0 #是否检测签名信息(1是,0否)
  • 安装软件
yum -y install httpd  #-y表示在交互过程中,对于所有的问题回答“yes”

使用rpm命令

  • Red Hat Package Manager的缩写

安装软件

参数说明
-iinstalling,安装
-vverbose显示安装的详细信息百分比
-hhashing marks 安装百分比
- -replacepkgs安装的软件包已经存在会安装失败,如果想强制安装可以使用
- -oldpackage如果安装的软件包,比系统x现在的软件包版本落后会安装失败,这时可以使用
- -nodepsl忽略依赖安装,安装后被安装的软件包可能不能正常运行
- -replacefiles如果两个软件包中的文件冲突了可以使用,替换由其他包安装的文件
rpm -ivh **.rpm
rpm -ivh --replacepkgs **.rpm
rpm -Uvh --oldpackage **.rpm
rpm -ivh --nodeps **.rpm
rpm -ivh --replacefiles **.rpm

卸载软件

-e ,卸载,erasing(注意卸载时使用的软件名,而不是软件的rpm包名。比如安装DB2时使用的是DB2的DB2_v1.2.0.rpm包。卸载时直接用rpm -e DB2,而不是rpm -e DB2_v1.2.0.rpm)

rpm -e app

如果被卸载的软件被其他软件依赖会报错,这时可以使用 --nodeps。不过这可能导致依赖它的软件不能正常工作

rpm -e --nodeps app

使用–test不会真的删除软件包,而只是模拟删除过程

rpm -e --test app

更新软件

-U表示卸载原来的软件包,并根据新的**.rpm安装新的软件包。

​rpm -Uvh **.rpm

-U会保留原先的配置,所以不必担心更新时修改了您的配置。不过当新的软件包无法兼容旧配置文件时,会看到以下提示

saving /etc/package.conf as /etc/package.conf.rpmsave

可以根据/etc/package.conf.rpmsave的内容手动更新新的配置文件

但想强制安装一个旧版本的软件包时可以使用 --oldpackage

rpm -Uvh --oldpackage **.rpm

另一种更新方式是Freshening,使用-F选项。与-U的区别在于它只会更新软件包里已经安装过的内容。比如原软件A有2个模块已经被安装,而新的A.rpm中新增了一个模块,如果使用-F这个新模块不会被安装到系统中。

rpm -Fvh **.rpm

查询软件包

参数说明
-q示查询软件包
-a查询所有安装在系统上的软件

对于-q来说还有它的子选项:

参数说明
-i显示RPM包的信息包括名字、描述、版本信息、大小、创建日期、安装日期、发行商等信息
-l显示RPM包中包含的文件
-s显示RPM包中包含的文件的状态
-d显示RPM包中被标记为文档的文件 (如:man信息文件, info信息文件, README文件, 等等).
-c显示RPM包中被标记为配置文件的文件(如:sendmail.cf, passwd, inittab,等等).
-v当显示是列表时,用类似ls -l的显示格式显示详细信息

RPM打包

本博客制作Nginx的rpm包

打包流程

  • 准备源码软件
  • 安装rpm-build
  • 编写编译配置文件
  • 编译RPM包

步骤一:安装rpm-build软件

yum -y install rpm-build
rpmbuild -ba nginx.spec #会报错,没有文件或目录,生成rpmbuild目录结构
ls /root/rpmbuild       #自动生成的目录结构
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/ #准备工作,将源码软件复制到SOURCES目录

步骤二:编写编译配置文件
创建并修改SPEC配置文件

vim /root/rpmbuild/SPECS/nginx.spec 
Name:nginx                                        #源码包软件名称
Version:1.12.2                                    #源码包软件的版本号
Release:10                                        #制作的RPM包版本号
Summary: Nginx is a web server software.            #RPM软件的概述    
License:GPL                                        #软件的协议,开源
URL:    www.test.com                                    #网址
Source0:nginx-1.12.2.tar.gz                        #源码包文件的全称
#BuildRequires:                                    #制作RPM时的依赖关系
#Requires:                                        #安装RPM时的依赖关系
%description
nginx [engine x] is an HTTP and reverse proxy server.    #软件的详细描述
%post
useradd nginx                               #非必需操作:安装后脚本(创建账户)
%prep
%setup -q                                #自动解压源码包,并cd进入目录
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%doc
/usr/local/nginx/*                    #对哪些文件与目录打包
%changelog

步骤三:使用配置文件创建RPM包
1)安装依赖软件包

 yum -y install  gcc  pcre-devel openssl-devel

2)rpmbuild创建RPM软件包

 rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
 ls /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm  #完成

步骤四:检测安装是否成功

 yum install /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm 
 rpm -qa |grep nginx
 ls /usr/local/nginx/

升级Linux内核

  • Linux内核文件
    –默认位置:/boot/vmlinuz-*
    –支持多个内核文件,开机时选择其中一个版本进系统
  • GRUB2多系统启动配置
    –引导信息:/boot/grub2/grub.cfg
    uname -r #查看现有内核版本
    rpm -ivh kernel-3.10.0-123.1.2.el7.x86_64.rpm #安装新版本内核
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值