软件包管理

rpm 与 yum 的用法

blob.png

源代码:name-VERSION.tar.gz|bz2|xz

VERSION: major.minor.release

rpm包命名方式:

name-VERSION-release.arch.rpm

例:bash-4.2.46-19.el7.x86_64.rpm

VERSION: major.minor.release

release:release.OS

常见的arch:

x86: i386, i486, i586, i686

x86_64: x64, x86_64, amd64powerpc: ppc

跟平台无关:noarch


包:分类和拆包

Application-VERSION-ARCH.rpm: 主包

Application-devel-VERSION-ARCH.rpm开发子包

Application-utils-VERSION-ARHC.rpm其它子包

Application-libs-VERSION-ARHC.rpm其它子包


blob.png

解决依赖包管理工具:

yum:rpm包管理器的前端工具

apt-get:deb包管理器前端工具

zypper: suse上的rpm前端管理工具

dnf: Fedora 18+ rpm包管理器前端管理工具


blob.png

获取程序包的途径

    1)系统发版的光盘或官方服务器;

    2)项目官方站点

    3)第三方组织

            Rpmforge:RHEL推荐

            搜索引擎:

                    http://pkgs.org

                    http://rpmfind.net

                    http://rpm.pbone.net

                    http://sourceforge.net

     4)自己制作

注意:查其合法性:来源合法性,程序包的完整性

 

blob.png

CentOS系统上使用rpm命令管理程序包:

        安装、卸载、升级、查询、校验、数据库维护

  安装

  rpm {-i|–install} [install-options] PACKAGE_FILE…

        -v: verbose 过程显示

        -vv:    详细过程显示

        -h: 以#显示程序包管理执行进度

        rpm -ivh  PACKAGE_FILE ..

                                    [install-options]

                                    –test: 测试安装,但不真正执行安装;dry run模式

                                    –nodeps:忽略依赖关系

                                    –replacepkgs| replacefiles

                                    –nosignature: 不检查来源合法性

                                    –nodigest:不检查包完整性

                                    –noscipts:不执行程序包脚本片断

                                    %pre: 安装前脚本;–nopre

                                    %post: 安装后脚本;–nopost

                                    %preun: 卸载前脚本;–nopreun

                                    %postun: 卸载后脚本;–nopostun


blob.png


rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

        upgrade:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则“安装”

        freshen:安装有旧版程序包,则“升级”

        如果不存在旧版程序包,则不执行升级操作

        rpm -Uvh PACKAGE_FILE …

        rpm -Fvh PACKAGE_FILE …

                                        –oldpackage:降级

                                        –force: 强行升级

blob.png                   

blob.png

rpm {-q|–query} [select-options] [query-options]

                    [select-options]

                    -a: 所有包

                    -f: 查看指定的文件由哪个程序包安装生成

                    -p rpmfile:针对尚未安装的程序包文件做查询操作;

                    –whatprovidesCAPABILITY:查询指定的CAPABILITY由哪个包所提供

                    –whatrequiresCAPABILITY:查询指定的CAPABILITY被哪个包所依赖

                                                [query-options]

                                                –changelog:查询rpm包的changelog

                                                -c: 查询程序的配置文件

                                                -d: 查询程序的文档

                                                -i: information

                                                -l: 查看指定的程序包安装后生成的所有文件;

                                                –scripts:程序包自带的脚本片断

                                                -R: 查询指定的程序包所依赖的CAPABILITY;

                                                –provides: 列出指定程序包所提供的CAPABILITY;

如果删除某个命令的文件  而不想重新安装 只想安装其包中的一个 就要用到一下两个命令

  rpm2cpio 包文件|cpio–itv预览包内文件

rpm2cpio 包文件|cpio–id “*.conf”释放包内文件

           

查询用法:

-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …

-qa

卸载:

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

rpm -e 包名


blob.png

rpm {-V|–verify} [select-options] [verify-options]

rpm -V 包名

        S file Size differs

        M Mode differs (includes permissions and file type)

        5 digest (formerly MD5 sum) differs

        D Device major/minor number mismatch

        L readLink(2) path mismatch

        U User ownership differs

        G Group ownership differs

        T mTimediffers

        P capabilities differ


导入所需要公钥:

rpm -K|checksigrpmfile检查包的完整性和签名

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7

rpm -qagpg-pubkey*


blob.png

数据库重建:

/var/lib/rpm

rpm {–initdb|–rebuilddb}

            initdb: 初始化 (较为安全推荐)

                如果事先不存在数据库,则新建之

                否则,不执行任何操作

            rebuilddb:重建

                无论当前存在与否,直接重新创建数据库


blob.png

文件服务器:

ftp://

http://

file:///

blob.png

yum客户端配置文件:

    /etc/yum.conf:为所有仓库提供公共配置

    /etc/yum.repos.d/*.repo:为仓库的指向提供配置

            仓库指向的定义:

                        [repositoryID]

                        name=Some name for this repository

                        baseurl=url://path/to/repository/

                        enabled={1|0}默认1

                        gpgcheck={1|0}默认1

                        gpgkey=URL

                        enablegroups={1|0}

                        failovermethod={roundrobin|priority}

                        默认为:roundrobin,意为随机挑选;

                        cost= 默认为1000

                    

yum-config-manager –disable “仓库名" 禁用仓库

yum-config-manager –enable “仓库名” 启用仓库

            

显示仓库列表:

repolist[all|enabled|disabled]

显示程序包:

list

# yum list [all | glob_exp1] [glob_exp2] […]

# yum list {available|installed|updates} [glob_exp1] […]

安装程序包:

install package1 [package2] […]

reinstall package1 [package2] […] (重新安装)

升级程序包

update [package1] [package2] […]

downgrade package1 [package2] […] (降级)

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2] […]

查看程序包information:

info […]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovidesfeature1 [feature2] […]

清理本地缓存:

clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]

构建缓存:

makecache

搜索:search string1 [string2] […]

以指定的关键字搜索程序包名及summary信息

查看指定包所依赖的capabilities:

deplistpackage1 [package2] […]

查看yum事务历史:

history [info|list|packages-list|packages-info|

summary|addon-info|redo|undo|

rollback|new|sync|stats]

yum history

yum history info 6

yum history undo 6

日志:/var/log/yum.log

安装及升级本地程序包:

* localinstallrpmfile1 [rpmfile2] […]

(用install替代)

* localupdaterpmfile1 [rpmfile2] […]

(用update替代)

包组管理的相关命令:

groupinstallgroup1 [group2] […]

groupupdategroup1 [group2] […]

grouplist[hidden] [groupwildcard] […]

groupremovegroup1 [group2] […]

groupinfogroup1 […]

如何使用光盘当作本地yum仓库:

(1) 挂载光盘至某目录,例如/media/cdrom

# mount /dev/cdrom/media/cdrom

(2) 创建配置文件

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

yum的命令行选项:

–nogpgcheck:禁止进行gpgcheck

-y: 自动回答为“yes”

-q:静默模式

–disablerepo=repoidglob:临时禁用此处指定的repo

–enablerepo=repoidglob:临时启用此处指定的repo

–noplugins:禁用所有插件

blob.png

yum的repo配置文件中可用的变量:

$releasever: 当前OS的发行版的主版本号

$arch: 平台,i386,i486,i586,x86_64等

$basearch:基础平台;i386

$YUM0-$YUM9:自定义变量

实例:

http://server/centos/$releasever/$basearch/

http://server/centos/7/x86_64

http://server/centos/6/i384

创建yum仓库:

createrepo[options] <directory>

blob.png

C代码编译安装三步骤:

1、./configure:

(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile

(2) 检查依赖到的外部环境

2、make:根据makefile文件,构建应用程序

3、make install:复制文件到相应路径

开发工具:

autoconf: 生成configure脚本

automake:生成Makefile.in

注意:安装前查看INSTALL,README



1安装包组

yum groupinstall  "Development tools"

2下载并解开源码包

tar xvf httpd-2.2.29.tar.bz2 

3 ./configure

./configure –prefix=/usr/local/http2  –sysconfdir=/etc/http2

4 make

5 make install

6 启动web服务程序

netstat -atn

 ./apachectl start

7 测试:关防火墙,浏览器访问

iptables -vnL

iptables -F

yum install links

links 10.1.252.192


                    










原创文章,作者:Nicolas ZhaoIV,如若转载,请注明出处:http://www.178linux.com/36498

(0)
上一篇 2016-09-01 08:49
下一篇 2016-09-01 08:49

相关推荐

  • sed和awk和数组实践-week15

    1、总结sed和awk的详细用法; (1) sedsed:Stream EDitor,流编辑器,行编辑器 基本原理:一次从文本中读取一行,放到sed自己的工作车间加工, 该工作车间叫做模式空间(pattern space)判断该行是否符合过滤模式, 如果符合过滤模式: 送往标准输出(终端) 执行编辑操作, 从模式空间中处理以后,处理过后送到标准输出(不一定有…

    Linux干货 2017-05-06
  • bash工作特性之命令执行状态返回值与命令行展开概述

    bash工作特性之命令执行状态返回值与命令行展开概述 bash是什么? shell是一种用户接口程序,提供了用户与内核进行交互的接口。shell可以分为两类:一类为GUI,即用户图形界面;另一类为CLI,即命令行接口,将用户的命令送入到内核去执行,大多数发行版中最常用的就是bash。 bash特性 命令执行状态返回值 bash通过状态返回值来输出结果: 命令…

    Linux干货 2017-07-09
  • Nginx的编译安装

    nginx.html Nginx的编译安装 一、Nginx的特点 二、获取并编译Nginx 三、配置主页面 四、配置编译文件时的选项及模块 一、Nginx的特点 1、Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 。它支持内核 Poll 模型,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。 2、Nginx 具…

    Linux干货 2016-03-20
  • 系统管理之系统启动及内核编译

    CentOS 5和6的启动流程服务管理Grub管理自制Linux启动排错编译安装内核 系统启动流程:  POST –> 读取BootSequence (BIOS),决定引导次序 –>读取引导设备的Bootloader(MBR grubstage1–>stage1.5/boot…

    Linux干货 2016-09-13
  • 开篇

    test 新人报道

    Linux干货 2016-10-28
  • 中秋干货之系统启动修复

    在使用CentOS系统时,难免会有误操作而导致机器不能正常启动,这里介绍了多种启动失败的原因和修复的方法。 grub损坏类 grub 1stage 被破坏使用dd擦写MBR前446字节,即抹去stage1阶段–[root@_2_ ~]# reboot #重启–启动失败,找不到系统,这时只能借助光盘进入修复模式,重新安装grub&#82…

    Linux干货 2016-09-15