关于软件包管理

        软件包管理

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

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

rpm安装:

        rpm {-i|–install} [安装-选项] 打包;包

        -h  以#符号表示安装进度

        -v  显示安装过程中的详细信息

        -vv

        -vvv

        经常使用组合:-ivh,ivvh

        例如 rpm -ivh 包文件

        安装时的选项:

        –test    测试安装,但不真正执行安装,仅报告依赖关系以及冲突信息等

        –nodeps  忽略依关系,副作用是能安装成功,但未必能运行成功

        –replacepkgs  覆盖安装–重新安装并覆盖原有的文件

        –nosignature  不被监测来源合法性

        –nodigest     不检查包完整性

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

        –foree        强制安装

        

rpm包升级:

         rpm {-U|–upgrade} [安装-选项] 打包;包 

              -U   升级或安装

               upgrade:安装有旧版程序包,则“升级”  如果不存在旧版程序包,则“升级”

         rpm {-F|–freshen} [安装-选项] 打包;包 

              -F   升级

               freshen:安装有旧版程序包,则“升级”  如果不存在旧版程序包,则不执行升级操作

        常用组合:-Uvh,Fvh 

        例如  rpm -Uvh 包文件

        升级选项:

        –oldpackage      降级

        –force           强制升级

升级时需要注意事项:

1  不要对内核执行升级,Linux 支持多个内核共存,可以对此直接安装新版本内核或不同版本的内核

2   如果程序包的配置文件安装后被修改,升级时,新版本的文件不会覆盖老版本的配置文件。而是把新版本的文件重命名加上后缀(.rpmnew) 之后保留

rpm包查询:

         rpm {-q|–query}[选择-选项][查询选项]

         安装选项                                                     ~]# rpm -q tree 后面准确查找包名    

         -a 所有包、                                                ~]# rpm -qa     查询当前系统安装的所有包  ~]# rpm -qa |grep "^tr"  管道给关键字查找,以tr开头的包名

         -f 查看指定的文件由哪个程序安装生成                          ~]# rpm -qf /etc/issue   查询文件是哪个包生成   

         -p  rpmfuile 针对尚未安装程序包文件做查询操作;              ~]# rpm -qp tree-1.6.0-10.el7.x86_64.rpm 

         –whatprovides 性能进程 查询指定的性能进程有哪个包所提供     ~]# rpm -q tree –whatprovides  查询这个功能是由哪个包所提供

         –whatrequires 性能进程 查询指定的性能进程被哪个包所依赖     ~]# rpm -q bash –whatrequires  查询这个功能是被哪个包所依赖  

         rpm2cpio 包文件|cpio -itv  预览包内的文件                    ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -itv

rpm2cpio 包文件|cpio -id   "*.conf" 释放包内文件

         查询选项:

         –changelog 查询rpm包的变动日志                              ~]# rpm -qc tree –changelog

         -c   查询程序的配置文件   

         -d   查询程序的文档                                          ~]# rpm -qd tree

         -i   信息                                                    ~]# rpm -qi tree

         -l   查看指定的程序包安装后生成的所有文件                    ~]# rpm -ql tree

         –scripts 程序包自带的脚本片断                               ~]# rpm -q bash –scripts

         -R   查询指定的程序包所依赖的 性能进程                       ~]# rpm -qR bash

         –provides  ;列出指定程序包所提供的 性能进程                ~]# rpm -q bash –provides

rpm卸载:

        rpm  {-e|–erase} 

         –allmatches      移除所有符合 <package> 的软件包(如果<package> 被指定未多个软件包,常常会导致错误出现)

         –nodeps                         不验证软件包依赖

         –noscripts                      不执行软件包脚本

         –notriggers                     不执行本软件包触发的任何脚本

         –test                           不真正安装,只是判断下是否能安装

包检验:rpm {-V|–verify}

               –nofiledigest                   不验证文件摘要

               –nofiles                        不验证软件包中文件

               –nodeps                         不验证包依赖

               –noscript                       不执行验证脚本

导入所需要公钥:

 ~]# rpm -K tree-1.6.0-10.el7.x86_64.rpm   检查包的完整性和签名

       

rpm数据库:

        数据库重建: /var/lib/rpm

        rpm {–initdb|–rebuilddb}

        initdb  初始化

        如果时间不存在数据库,则新建之,否则 不执行任何操作

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

  

  

  

rpm命令实现程序管理   主要核心命令

安装:-vih,–nodeps,–replacepkgs

卸载:-e,–nodeps

升级:-Uvh,-Fvh,–nodeps,–oldpackage

查询:-q,-qa,-qf,-qi,-qc,-q –scripts, -q –chanlog, -q –provides,-q–requires

校验:-V

导入GPG密钥:–import,-K,–nodigest,–nosignature

数据库重建:–initdb,–rebuilddb                                   

===========================================================

yum 

    yum是rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,

资源库: 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

    文件服务器:ftp:

                http://

                file:///

yum配置文件:

           /etc/yum.conf              主配置文件为所有仓库提供数据

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

           创库指向的定义:

           文件以.repo 结尾; 

           root@Compro ~]# cat /etc/yum.repos.d/base.repo 

           [base]                       提供配置信息

           name=CentOS 7                当前仓库的名称

           baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/    教室里的yum源

           enabled=1                    此仓库是否为可用

           gpgcheck=0                   是否对程序包做校验

           gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    指明访问密钥路径的路径

           [仓库ID]     对于当前系统的yum来将,此仓库ID用于唯一标识此仓库指向,因此,必须唯一

           name=name    当前仓库描述信息名称

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

           enabled={1|0}    此仓库是否可被使用 1是 禁用0是可以 不写是默认

           gpgcheck={1|0}   是否对程序包做校验  

           gpgkey=          指明gpgkey文件路径

           cost= 默认为1000

           

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

挂载光盘至某目录,例如/media/cdrom

#mount /dev/cdrom /media/cdrom

创建配置文件:

[CentOS7]

name=自定义                  当前仓库描述信息

baseurl=指明资源库的访问路径,通常为一个文件服务器上输出的某资源库,支持的类型:ftp://;http://;file:///

gpgcheck={1|10}          是否对程序包做校验

enabled={1|10}         此仓库上是否可用,默认为可用           

yum命令的语法: yum [选项] [命令] [包]

yum显示仓库列表:

                yum repolist [all|enabled|disabled]

显示程序包:

          yum list

          yum list [all | glob_ exp1 ] [glob_exp2] …             

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

安装程序包:

          yum install 包1 [包2] …

          yum reinstall 包1 [包2]…         重新安装

升级程序包:

          yum update [包1][包2]…

          yum downgrade 包1 [包2]…      降级

卸载程序包:

          yum remove | erase 包1 [包2]  …                      

                

查看程序包的信息:

          yum info name

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

yum provides | whatprovides 特性1 [特性2] …                

清理本地缓存:

          yum clean [包|元数据|expire-cache|rpmdf|plugins|all]

构建缓存:

         yum makecache            

 

搜索:

    yum  search 字符串1 [字符串2]

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

查看指定包所依赖的capabilities 

     yum deplist 包1 [包2] …

查看 yum事务历史

               yum history

               

日志:

     /var/log/yum.log

     

安装及升级本地程序包

         yum install rpmfile1 [rpmfile2] …

         yum update  rpmfile1 [rpmfile2] …

包组管理的相关命令:

         yum groupinstall group1

         yum groupupdate group1

         yum grouplist [hidden][groupwildcard]

         yum groupremove group1

         yum groupinfo group1

         

     

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

 

挂载光盘至某目录 

          例如 /media/crom  # mount /dev/cdrom /media/crom

          创建配置文件

          [CentOS7]

          name=name

          baseurl=file:///

          gpgcheck=0

          enabled=1    

yum 的命令行选项

yum [选项] 包

     –nogpgcheck     禁止进行gpg check

     -y               自动回答为"yes" 

     -q               静默模式

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

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

     –noplugins                 禁用所有插件

     

 

 =================================================================

 

                    源码编译  

程序包编译安装:

Application-VERSION-release.src.rpm–> 

安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装

源代码–>预处理–>编译–>汇编–>链接–>执行

源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系

C、C++:make (项目管理器,configure –>

Makefile.in –> makefile)

java: maven

C代码编译安装三步骤:

                    ./configure

                    通过选项传递参数,指定启动特性、安装路径等;

                    执行时会参考用户的指定以及makefile.in文件生成makefile

                    检查依赖到的外部环境,如依赖的软件包

                    [cdrom] 

                    name=centos 7 cdrom

                    baseurl=file:///mnt/cdrom

                    gpgcheck=0

                    enabled=0                   

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

                    make install   复制文件到相应路径

开发工具:

         autoconf: 生成configure脚本

         automake:生成Makefile.in

         注意:安装前查看 安装自带文档

开源程序源代码的获取:

官方自建站点:

apache.org (ASF:Apache Software Foundation)

mariadb.org

代码托管:

SourceForge.net

Github.com

code.google.com

c/c++编译器: gcc(GNU C Complier)

编译C源代码:

       准备:提供开发工具及开发环境

             开发工具:make,gcc等

             开发环境:开发库,头文件

             glibc:标准库

       实现:通过“包组”提供开发组件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

编译安装:

        第一步:configure 脚本

        选项:指定安装位置、指定启用的特性

        安装路径设定:./configure –prefix=/usr/local/http2 –sysconfdir=/etc/http2/

可选特性:

–disable-FEATURE

–enable-FEATURE[=ARG]

可选包:

–with-PACKAGE[=ARG],依赖包

–without-PACKAGE,禁用依赖关系     

     

安装后的配置:

二进制程序目录导入至PATH环境变量中;

编辑文件:

 [root@Compro ~]# vim /etc/profile.d/http2.sh

 PATH=$PATH:/usr/local/http2/bin

导入库文件路径:

 编辑/etc/ld.so.conf.d/NAME.conf

 添加新的库文件所在目录至此文件中

让系统重新生成缓存:

 ldconfig[-v]    

     

导入头文件

基于链接的方式实现:

ln -sv

导入帮助手册

编辑/etc/man.config|man_db.conf文件

添加一个MANPATH     

[root@Compro ~]# vim /etc/man_db.conf

MANDATORY_MANPATH /usr/local/http2/ma

     

     

     

     

     

     

     

     

     

     

 

原创文章,作者:小马哥,如若转载,请注明出处:http://www.178linux.com/42119

(0)
上一篇 2016-08-30 13:55
下一篇 2016-08-30 13:55

相关推荐

  • 第四周

    第四周 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 [root@node1 ~]# cp -r /etc/skel/ /home/tuser1 [root@node1 ~]# chmod -R go= /home/tuser1 [root@node1 ~]# ls -…

    Linux干货 2017-07-26
  • linux系统监控 sar命令详解

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告, 包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。 本文主要以CentOS 6.3 x64系统为例,介绍s…

    Linux干货 2015-06-17
  • redis主从复制(4)— client buffer

    1、 client buffer的设计 redis server以单进程的方式处理接收到的请求,而redis完成请求有些工作比较慢,比如网络IO和磁盘IO等比较慢的操作。redis为了提高处理客户端请求的响应时间,做了很多优化。比如网络io和磁盘io是异步完成、使用后台进程完成bgsave和bgrewriteaof工作,在server端为客户提供读buffe…

    Linux干货 2016-03-28
  • day7作业练习

    1、显示当前系统root、mage或wang用户的UID和默认shell  2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包 括下划线)后面跟一个小括号的行  3、使用egrep取出/etc/rc.d/init.d/functions中其基名     v …

    系统运维 2016-08-08
  • heartbeatV1+nfs实现高可用httpd

        随着互联网技术的不断发展,Web应用也越来越普遍,Web服务器的无故障工作时间就显得尤重要,但由于各种各样的原因,一台服务器并不能保证永远不出问题的运行,此时就需要一种机制来实现多台服务器共同为相同的来务功能提供服务,以确保任意一台服务器宕机后,不会影响其所承载的业务的访问。   &nbsp…

    Linux干货 2015-06-26
  • yum用法第一篇-简介及常见用法使用总结

    一、简介     yum( 全称为:Yellow dog Updater, Modified),是红帽(RedHat)家族(RedHat、Fedora、CentOS)中的前端shell的软件包管理器,主要基于对RPM包的管理,能够根据配置文件(类似于svn资源库配置文件)从指定的服务器自动下载RPM包进行安装,其最大的优势就是可…

    Linux干货 2015-09-22