linux使用yum对程序包管理相关知识

 yum客户端:

         配置文件:

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

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

  仓库的定义:

     [repositoryID]

     name-Some name for this repository

     baseur1=ur1://path//to/repository/

     enabled={1|0}

     gpgcheck={1|0}

     gpgkey=URL 能访问到密钥的路径

     failovermethod={roundrobin|priority}

       默认为1000

 yum命令用法:

     yum [options] [command] [package …]

 command is one of:

        * install package1 [package2] […]   安装指定的软件包

        * update [package1] [package2] […]  全部更新软件包;

        * update-to [package1] [package2] […] 全部更新到

        * update-minimal [package1] [package2] […]  最小化更新

        * check-update   检测可更新的软件包

        * upgrade [package1] [package2] […]   升级软件包组名

        * upgrade-to [package1] [package2] […] 升级到

        * distribution-synchronization [package1] [package2] […] 同步安装的软件包到最小版本

        * remove | erase package1 [package2] […]删除指定软件包

        * autoremove [package1] […]

        * list […] 列出目前yum所管理的所有的软件包名称与版本;

        * info […]列出目前yum所管理的所有的软件名称,版本和详细信息;

        * provides | whatprovides feature1 [feature2] […]

        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 清除缓存数据

        * makecache [fast] 生成源数据缓存

        * groups […] 

        * search string1 [string2] […] 

        * shell [filename]

        * resolvedep dep1 [dep2] […]确定那个软件包提供了给定的依赖关系

           (maintained for legacy reasons only – use repoquery or yum provides)

        * localinstall rpmfile1 [rpmfile2] […]

           (maintained for legacy reasons only – use install)

        * localupdate rpmfile1 [rpmfile2] […]

           (maintained for legacy reasons only – use update)

        * reinstall package1 [package2] […]

        * downgrade package1 [package2] […]

        * deplist package1 [package2] […]

        * repolist [all|enabled|disabled]显示配置的软件仓库

        * repoinfo [all|enabled|disabled]

        * repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-distribution-synchronization> [package2] […]

        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

        * history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

        * load-transaction [txfile]

        * updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-running-kernel]

        * fssnapshot [summary | list | have-space | create | delete]

        * fs [filters | refilter | refilter-cleanup | du]

显示当前列表:

 repolist [all|enabled|disabled] 显示配置的软件仓库

显示程序包:

        list 

        #yum list [all | glob-exp1] [glob-exp2] […]

        #yum list{available | installed | updates}

安装程序包:

      install package1 [package2] […]

 升级程序报:

      update [package1] [package2][…]

 检查可用升级:

          check-update

 卸载程序包:

         remove | erase package1 [package2][…]

查看程序包information:

       info […]

查看程序提供的特性(可以是某文件)是由那个程序报提供:

       provides | whatprovides feature1 [feature2][…]

清理本地缓存:

        makecache

搜索:

    search  string1 [string2] […]

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

查看指定包所依赖的capabilities:

        deplist package1 [pachage2] […]

查看yum事物历史:

        history [info|list | packages-list | packages-info | summary | addon-info | redo | undo | rollback | new | sync | stats]

安装及升级本地程序包:

        localinstall rpmfile1 [rpmfile2] […]

        (maintained for legacy reasons only – use install)

        localupdate rpmfile1 [rpmfile2] […]

        (maintained for legacy reasons only – use update

包组管理

groupinstall group1 [group2] […]

        * groupupdate group1 [group2] […]

        * grouplist [hidden] [groupwildcard] […]

        * groupremove group1 [group2] […]

        * groupinfo group1 […]

        * search string1 [string2] […]

        * shell [filename]

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

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

    # mount -r -t iso9660 /dev/cdrom /media/cdrom

(2)创建配置文件

[CentOS7]

   name=

   baseur1=gpgcheck=

   enabled=

yum的命令行选项:

   –nogpgcheck: 禁止进行gpg check;

   -y:自动回答为“yes"

   -q :静默模式:

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

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

   –noplugins:禁用所有插件:

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

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

    $arch: 平台:

    $basearch: 基础平台:

    http://mirrors.magedu.com/centos/$releasever/$basearch/os

创建yum仓库:

    createrepo [options] <directory>

程序报编译安装:

    testapp-VERSION-release.src.rpm –>安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;

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

        源代码组织格式:

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

               c , c++: make (configure –>Makefile.in –>makefile)项目管理工具

               java:  maven

      编译安装三步骤:

          ./configure

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

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

             make

             make install

开发工具:

    autoconf: 生成configure脚本

    automake:  生成Makefile.in

j建议:安装前查看INSTALL, README

开源程序代码的获取:

    官方自建站点:

        apache.org (ASF)

        mariadb.org

       ……

       代码托管:

           SourceForge

           Github.comc

           code.google.com

       c/c++: gcc (GNU C  Complier)

         前提:提供开发工具及开发环境

              开发工具: make, gcc 等

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

              glibc: 标准库

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

         CentOS 6:“Development Tools" ,"Server Platform Development",

   第一步:configure 脚本

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

         –help: 获取其支持使用的选项’

          选项分类:

          安装路径设定:

          –prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置:

          –sysconfdir=/PATH/TO/SOMEWHERE: 配置文件安装位置:

         System types:

         Optional Features:可选特性

         — disable-FEATURE

         –enable-FEATURE[=ARG]

         Optional Packages: 可选包

         –with – PACKAGE [=ARG]

         –without-PACKAGE

     第二部:make

     第三步:make install

安装后的配置:

   (1)导出二进制程序目录至PATH环境变量中:

        编辑文件/ETC/profile.d/NAME.sh

         export PATH=/PATH/TO/BIN:PATH

   (2)导出文件路径

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

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

      让系统重新生成缓存:

      ldconfig [-v]

   (3) 导出头文件

      ln  -sv 

   (4) 导出帮助手册

       编辑/etc/man.config 文件

       添加一个MANPATH

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!