软件包管理

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)
Nicolas ZhaoIVNicolas ZhaoIV
上一篇 2016-09-01
下一篇 2016-09-01

相关推荐

  • linux学习总结-linux基础(之二)

    六、在Linux基础目录命名法则及功用 根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个…

    Linux干货 2016-09-23
  • 基于Cobbler实现多版本系统批量部署

    前言 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的。记得前面我们探究了基于PXE实现系统全自动安装,但PXE同时只能提供单一操作系统的批量部署,面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,…

    Linux干货 2015-07-09
  • Linux基础之shell脚本编程(四)

    1、写一个脚本   (1) 能接受四个参数:start, stop, restart, status    start: 输出“starting 脚本名 finished.”   (2) 其它任意参数,均报错退出;   1 #!/bin/bash   2 #a…

    Linux干货 2016-11-28
  • LVM逻辑卷管理练习

         小编今天要讲的内容是如何创建逻辑卷,然后扩展它、缩减它。LVM 的重点就在于可以弹性的调整文件系统的容量!所以,下面练习开始。 1、创建一个至少有两个PV组成的大小为20G的名为testvg的 VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻 辑卷testlv;挂载至/users目录。 ①准备两个10G的…

    2017-08-26
  • Buffer和Cache的区别

    1、buffer(缓冲) 是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。 2、cache(缓存) 从CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的,例如平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换…

    Linux干货 2018-01-02
  • lvs——高可用集群

    技术简介: LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性 集群采用…

    Linux干货 2016-10-26