zoukankan      html  css  js  c++  java
  • yum工具介绍

    Linux程序包管理(2)

      Centos:yum,dnf

      URL:ftp://172.16.0.1/pub/

      YUM:yellow dog,yellowdog Update Modifier

       

      文件服务器:

        ftp

        http

        nfs

        file

    yum客户端:

      配置文件:

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

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

        /var/cache/yum:为yum缓存目录

      仓库的定义:

      [repositoryID]

      name=Some name for this repository

      baseurl=usr1://path/to/repository/

      enabled={1|0}

      gpgcheck={1|0}  

      repo_gpgcheck=

      gpgkey=URL

      enablegroups=

      failovermethod={roundrobin | priority}   随机或优先级

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

      cost:默认为1000,开销越小越优先

    yum命令的用法:

      yum [options] [command] [package ...]

      

    * install package1 [package2] [...]
    * update [package1] [package2] [...]
    * update-to [package1] [package2] [...]
    * check-update
    * upgrade [package1] [package2] [...]
    * upgrade-to [package1] [package2] [...]
    * distribution-synchronization [package1] [package2] [...]
    * remove | erase package1 [package2] [...]
    * list [...]
    * info [...]
    * provides | whatprovides feature1 [feature2] [...]
    * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
    * makecache
    * groupinstall group1 [group2] [...]
    * groupupdate group1 [group2] [...]
    * grouplist [hidden] [groupwildcard] [...]
    * groupremove group1 [group2] [...]
    * groupinfo group1 [...]
    * search string1 [string2] [...]
    * shell [filename]
    * resolvedep dep1 [dep2] [...]
    * 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]
    * version [ all | installed | available | group-* | nogroups* | grouplist |
    groupinfo ]
    * history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll-
    back|new|sync|stats]
    * load-transaction [txfile]
    * check
    * help [command]

    显示仓库列表:

       repolist [all | enabled | disabled]

    显示程序包:

      list

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

        # yum list { available | installed | updates }  [glob_exp1] [...]   #重新安装

    安装程序包:

      install

        install package1 [package2] [...]

         reinstall package1 [package2] [...]

    升级和降级程序包:

      update [package1] [package2] [...]

      downgrade package1 [package2] [...]   #降级

    检查可用升级:

      check-update

    卸载程序包:

      remove | erase package1 [package2] [...]

    查看程序包information(信息):

      info [...]

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

      provides | whatprovides feature1 [feature2] [...]

    清理本地缓存:

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

    构建缓存:

      makecache

    搜索:

      search string1 [string2] [...]

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

    查看指定包所依赖的capabilities(所依赖的哪些包;依赖关系分析):

      deplist package1 [package2] [...]

    查看yum事务历史:

      history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll-
    back|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] [...]

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

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

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

      (2)创建配置文件

        [centos7]

        name=

        baseurl=

        gpgcheck=

        enabled=

    yum的命令行选项:

      --nogpgcheck:禁止进行 gpg check

      -y:自动回答为“yes”

      -q:静默模式

      --disablerepo=repoid glob:临时禁用此处指定的repo

      --enablerepo=repoid glob:临时启用此处指定的repo

      --noplugins:禁用所有插件

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

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

      $arch:平台(架构)

      $basearch:基础平台

      $YUM0-$YUM9

      http://mirrors.aliyun.com/centos/$releaserver/$basearch/os

    创建yum仓库:

      createrepo

    程序包编译安装:

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

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

      源代码组织格式:

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

      

        c、c++:make (configure --> Makefile.in -->  makefile)

        java:maven

        

        C代码编译安装三步骤:

          ./configure:

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

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

          make:

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

          make install:

            

    开发工具:

      autoconf:生成configure脚本

      automake:生成Makefile.in

    建议:安装前查看INSTALL,README

    开源程序源代码的获取:

      官方自建站点:

        apache.org(ASF)

        mariadb.org

        ...

      代码托管:

        SourceForge

        Github.com

        code.google.com

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

    编译C源代码:

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

        开发工具:make,gcc等

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

          glibc:标准库

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

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

          

      第一步:configure脚本

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

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

          选项分类:

            Installation directories(安装路径设定):

              --prefix=/PATH/TO/SOMEFILE:指定默认安装位置;默认为/usr/local

              --sysconfdir=/PATH/TO/SOMEFILE:配置文件安装位置

            system types(系统类型)

              交叉编译时使用

            Optional Features:可选特性

              --disable-FEATURE

              --enable-FEATURE[=ARG]

            Optional Packages:可选程序包(依赖到的程序包)

              --with-PACKAGE[=ARG]

              --withhout-PACKAGE

            

      第二步:make

      第三步:make install

    安装后的配置:

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

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

          export PATH=/PATH/TO/BIN:$PATH

      (2)导出库文件路径

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

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

        让系统重新生成缓存:

          ldconfig [-v]

      (3)导出头文件

        基于链接的方式即可:

        ln -sv 

      (4)导出帮助手册

        编辑/etc/man.config文件

          添加一条MANPATH并指明新路径

    练习:

      1、yum的配置和使用:包括yum repository(仓库)的创建

      2、编译安装Apache 2.2;启动此服务

    博客作业:程序包管理;rpm/yum/编译

  • 相关阅读:
    【9901】数塔问题
    【9704】&&【9109】麦森数
    Javascript继承机制的设计思想
    Javascript继承机制的设计思想
    儿子和女儿——解释器和编译器的区别与联系
    Firebug控制台详解
    Firebug控制台详解
    linux 下 自己写的 html文件产生中文乱码问题 解决办法
    linux 下 自己写的 html文件产生中文乱码问题 解决办法
    (译)Objective-C的动态特性
  • 原文地址:https://www.cnblogs.com/self-discipline-xxc/p/10424537.html
Copyright © 2011-2022 走看看