1. 背景
  2.  
  3. YUM(Yellow dog Updater, Modified)为多个Linux发行版的前端软件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM通过调用RPM的软件包信息让用户更方便地进行软件安装,升级,卸载等软件包管理操作。
    yum客户端采用python编写,采用sqlite存储
  4.  
  5. rpm客户端采用c编写,采用bdb存储
  6.  
  7. http://www.rpm.org/
    The RPM Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages.
    http://yum.baseurl.org/
    Yum Package Manager
    Yum is an automatic updater and package installer/remover for rpm systems.
  8.  
  9. https://trac.edgewall.org/about
    Trac是基于web的软件项目管理和缺陷/事务追踪系统. 强调使用方便, 而不是其外在形式. 它提供了集成Wiki/版本控制系统界面, 以及更多方便的项目管理渠道, 来掌控项目的事件和变化.
  10.  
  11. http://refspecs.linuxfoundation.org/lsb.shtm
  1. 相关包及文件centos7
  2.  
  3. [root@my yum.repos.d]# rpm -qa|grep yum
  4. yum-metadata-parser-1.1.4-10.el7.x86_64
  5. yum-plugin-fastestmirror-1.1.31-29.el7.noarch
  6. yum-3.4.3-125.el7.centos.noarch
  7.  
  8. [root@my yum.repos.d]# rpm -qa|grep rpm
    rpm-build-libs-4.11.1-25.el7.x86_64
    rpm-libs-4.11.1-25.el7.x86_64
    rpm-4.11.1-25.el7.x86_64
    rpm-python-4.11.1-25.el7.x86_64
  9.  
  10. fastestmirror配置文件:(一般不用动)
  11. /etc/yum/pluginconf.d/fastestmirror.conf
  12. 你的yum镜像的速度测试记录文件:
  13. /var/cache/yum/timedhosts.txt
  14.  
  15. [root@manage ~]# file /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx
    /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx: ASCII text
    [root@manage ~]# less /tmp/yum_save_tx-2016-03-29-17-24zCwK6e.yumtx
  16.  
  17. [root@localhost ~]# cat /etc/yum.conf
  18.  
  19. [main]
    cachedir=/var/cache/yum/$basearch/$releasever         #yum下载的RPM包的缓存目录
    keepcache=0             #缓存是否保存,1保存,0不保存。
    debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
    logfile=/var/log/yum.log         #yum的日志文件所在的位置
    exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
    obsoletes=1             #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
    gpgcheck=1             #是否检查GPG(GNU Private Guard),一种密钥方式签名。
    plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
    installonly_limit=3         #允许保留多少个内核包。
    exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
    distroverpkg=centos-release
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
  1. [root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
  2.  
  3. name,是对repository的描述,支持像$releasever $basearch这样的变量;  
    $releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
    $archcpu体系,如i686,athlon
    $basearchcpu的基本体系组,如i686athlon同属i386alphaalphaev6同属alpha
  4.  
  5. [fedora]      #方括号里面的是软件源的名称,将被yum取得并识别
    name=Fedora $releasever - $basearch   #这里也定义了软件仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择适合当前系统的软件包,以下同……
    failovermethod=priority   #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
    exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
    #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
    #上面的一行baseurl第一个字符是'#'表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
    #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
    #上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
  1. http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-7&arch=x86_64
    http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-6&arch=x86_64
  2.  
  3. http://mirror.symnds.com/distributions/CentOS/6.5/os/x86_64/repodata/
    http://mirror.symnds.com/distributions/CentOS/$releasever/os/$basearch/
  1. yum命令
  2.  
  3. 怎么使用YUM命令升级所有RPM软件包?
  4. yum update
  5. 怎么使用YUM命令升级单个RPM软件包
  6. yum update 软件名称
  7. 使用YUM安装RPM软件包
  8. yum install 软件名称
  9. 使用YUM升级全部软件时怎么排除个别软件,假如你想升级所有软件包,但不想升级内核,就可以用下面的命令:
  10. yum --exclude=package kernel* update
  11. 怎么使用YUM来确定某个软件需要升级,下面的命令会检测 Fedora/CentOS/RHEL上的所有软件是否需要升级
  12. check-update
  13. 使用YUM卸载软件
  14. yum remove 软件名称 或者 yum erase 软件名称
  15. 使用YUM查看软件包相关信息
  16. yum list可以让你获取软件包相关信息,后面不指定软件包名的话,它会列出所有软件包的信息。 yum list 软件名称
  17. 使用yum了解软件的主要功能
  18. 比如你想知道httpd这个软件是干吗的,可以输入下面的的命令: yum provides httpd
  19. 使用YUM查找软件包
  20. 如果你不知道某个软件包的全称,这个命令就非常有用了,它会根据你提供的关键词在RPM的软件包数据库里搜索相适配的软件包。比方说我想找 samba这个软件的全称,我只需要输入下面的命令即可: yum search samba
  21. 使用YUM查看软件包的基本信息
  22. yum info samba
  23. 怎么清除YUM缓存和下载包文件
  24. 每安装一个软件包,YUM都是先下载一个RPM软件包然后再安装,安装完后并不会自动删除。时间长了,这些文件占很多空间的。所以,需要定时清理: yum clean all
  25. 怎么使用YUM安装本地RPM
  26. 如果你想要自己创建一个RPM软件包,你可以用YUM来确定存在哪些依赖关系: yum localinstall 软件名称.rpm
  27. 使用YUM升级本地RPM软件包
  28. 如果你想升级一个本地RPM软件包,可以用下面的命令: yum localupdate update-package.rpm
  29. 确定RPM包依赖哪些组件
  30. 如果你想自己源码安装软件,了解安装的软件包依赖哪些软件非常有必要的。deplist可以让你知道软件包依赖哪些组件,这些组件的全称是什么。 yum deplist 软件名称
  31. 查看YUM的版本信息
  32. yum -v
  33. 使用YUM安装软件包到chroot环境(chroot)
  34. 你可以使用下面的命令把软件安装到chroot yum --installroot=/path/to/chroot/
  35. 使用YUM启用已存在的软件源
  36. 如果你安装了第三方的软件源,你需要先启用该软件源才能从其安装软件,输入下面的命令启用EPEL软件源: yum --enablerepo=epel install rsnapshot
  37. 使用YUM禁用软件源
  38. 如果你安装了第三方软件源但不想从其安装软件,可以用下面的命令禁用: yum --disablerepo=epel install 软件名称
  39. YUM软件集合
  40. YUM软件集合是指多个共同协作的软件统称,比如“Development Tools”(开发工具)。 下面介绍下怎么用yum groupinstall命令来查看/安装/卸载yum软件集合
  41. 安装yum软件集合
  42. yum groupinstall 'Development Tools'
  43. 卸载yum软件集合
  44. yum groupremove 'Development Tools'
  45. 升级yum软件集合
  46. yum groupupdate 'Development Tools'
  47. 查看yum软件集合信息
  48. yum groupinfo 'Development Tools'
  49. 查看有哪些软件集合
  50. yum grouplist | more
  51. 使用YUM输出已安装软件包列表
  52. 该命令适用所有使用YUM为软件管理器的linux版本,如CentOS, Fedora, RHEL yum list installed
  53.  
  54. yum [options] COMMAND package_name
    其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。
    安装最快镜像插件:       yum install yum-fastestmirror
    安装yum图形窗口插件:    yum install yumex
    显示所有已经安装和可以安装的程序包    yum list 蓝色已安装,白色未安装
    显示库    yum repolist
  55.  
  56. [root@localhost ~]# yum list installed|wc -l
    276
    [root@localhost ~]# rpm -qa|wc -l
    220
    这两个的数量是有差异的
  57.  
  58. 可以在命令前加help查看具体的帮助,非常方便,意识到这一点是对yum的一次本质提升20160412才意识到)
    [root@localhost ~]# yum help list
    Loaded plugins: fastestmirror
    list [PACKAGE|all|installed|updates|extras|obsoletes|recent]
  59.  
  60. List a package or groups of packages
  61.  
  62. [root@localhost ~]# yum search varnish
    [root@localhost ~]# yum search all varnish
    [root@localhost ~]# yum provides varnish
    [root@localhost ~]# yum list varnish
    [root@localhost ~]# yum install varnish
    [root@localhost ~]# yum info varnish
    [root@localhost ~]# yum localinstall varnish.rpm
    [root@localhost ~]# yum deplist httpd
    [root@localhost ~]# cat /etc/yum.conf
    [root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
    yum clean all
    yum makecache
    rm -rf /var/cache/yum/*
  63.  
  64. [root@localhost dd]# yum repolist
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    repo id                                                                 repo name                                                                       status
    base                                                                    CentOS-6 - Base                                                                 6,367
    repolist: 6,367
  65.  
  66. 可以用whatprovides来确定哪个包提供了这个命令
    [root@localhost base]# yum whatprovides which
    [root@localhost base]# yum whatprovides awk
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Warning: 3.0.x versions of yum would erroneously match against filenames.
     You can use "*/awk" and/or "*bin/awk" to get that behaviour
    No Matches found
  67.  
  68. erroneously
    adv. 错误地;不正确
    下面这两个输出是不一样的
    [root@localhost base]# yum whatprovides *awk
    [root@localhost base]# yum whatprovides */awk
  69.  
  70. [root@localhost dd]# yum clean
    Loaded plugins: fastestmirror
    Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
    [root@localhost dd]# yum history
    Loaded plugins: fastestmirror
    ID     | Login user               | Date and time    | Action(s)      | Altered
    -------------------------------------------------------------------------------
         9 | root <root>              | 2014-09-20 00:23 | Install        |    2
         8 | root <root>              | 2014-09-20 00:21 | Install        |    2
         7 | root <root>              | 2014-09-20 00:20 | Install        |    1
         6 | root <root>              | 2014-09-20 00:06 | Erase          |    1
         5 | root <root>              | 2014-09-20 00:02 | Install        |    1
         4 | root <root>              | 2014-09-20 00:01 | Erase          |    1
         3 | root <root>              | 2014-09-19 23:46 | Install        |    1
         2 | root <root>              | 2014-09-18 17:46 | Install        |    7
         1 | System <unset>           | 2014-09-18 17:32 | Install        |  205
    history list
  71.  
  72. [root@localhost dd]# yum --help |egrep "remove|erase"
    erase          Remove a package or packages from your system
    groupremove    Remove the packages in a group from your system
  73.  
  74. [root@localhost dd]# yum deplist gcc
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Finding dependencies:
    package: gcc.x86_64 4.4.7-4.el6
      dependency: libgcc >= 4.4.7-4.el6
       provider: libgcc.i686 4.4.7-4.el6
       provider: libgcc.x86_64 4.4.7-4.el6
      dependency: /sbin/install-info
       provider: info.x86_64 4.13a-8.el6
      dependency: libgomp.so.1()(64bit)
       provider: libgomp.x86_64 4.4.7-4.el6
      dependency: cloog-ppl >= 0.15
       provider: cloog-ppl.x86_64 0.15.7-1.2.el6
       provider: cloog-ppl.i686 0.15.7-1.2.el6
      dependency: glibc-devel >= 2.2.90-12
       provider: glibc-devel.x86_64 2.12-1.132.el6
       provider: glibc-devel.i686 2.12-1.132.el6
      dependency: cpp = 4.4.7-4.el6
       provider: cpp.x86_64 4.4.7-4.el6
      dependency: binutils >= 2.19.51.0.14-33
       provider: binutils.x86_64 2.20.51.0.2-5.36.el6
      dependency: libgomp = 4.4.7-4.el6
       provider: libgomp.x86_64 4.4.7-4.el6
       provider: libgomp.i686 4.4.7-4.el6
      dependency: rtld(GNU_HASH)
       provider: glibc.i686 2.12-1.132.el6
       provider: glibc.x86_64 2.12-1.132.el6
      dependency: libc.so.6(GLIBC_2.7)(64bit)
       provider: glibc.x86_64 2.12-1.132.el6
      dependency: /bin/sh
       provider: bash.x86_64 4.1.2-15.el6_4
      dependency: libgcc_s.so.1()(64bit)
       provider: libgcc.x86_64 4.4.7-4.el6
    [root@localhost dd]# yum search w3m
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    ====================================================================== N/S Matched: w3m ======================================================================
    w3m-img.x86_64 : A helper program to display the inline images for w3m
    w3m.x86_64 : A pager with Web browsing abilities
  75.  
  76.   Name and summary matches only, use "search all" for everything.
  77.  
  78. 必须选择下面的基本模式:Query, Verify,  Signature  Check, Install/Upgrade/Freshen, Uninstall, Initialize Database, Rebuild Database, Resign, Add Signature, Set Owners/Groups, Show Querytags, and Show Configuration。
  79.  
  80. rpm一般选项:可以用于所有的不同的模式中。
    -vv
  81.  
  82. rpm查询选项的通用格式:
    rpm {-q|--query} [select-options] [query-options]
    有两个查询的子集选项:包选择和包查询选择。即[select-options]和[query-options]
    包选择选项:[select-options]
    rpm -q tcpdump
    rpm -qa
    rpm -qf /usr/bin/bash
    rpm -qg 组包名
  83.  
  84. 包查询选择:[query-options]
    rpm -q pam --changelog    查询包更改历史
    rpm -qc pam    只列出配置文件
    rpm -qc pam -vv
    rpm -qd pam    只列出帮助文件
    rpm -qi pam    显示包信息
    rpm -qa --last|more      以包安装的顺序来列出包内容,结果是最后一个安装的包在最上层列出。
    rpm -ql pam
    rpm -q pam --provides
    rpm -qR pam    列出依赖的包
    rpm -q pam --scripts
  85.  
  86. rpm -qpl http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  87.  
  88. rpm安装的通用命令如下:
    rpm {-i|--install} [install-options] PACKAGE_FILE ...
  89.  
  90. PACKAGE_FILE    形如oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm
    PACKAGE_NAME    形如oracle-instantclient-sqlplus
  1. yum源(软件仓库)
    yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是httpftp站点, 也可以是本地软件源(光盘,iso,自定义的rpm包等),但必须包含rpmheaderheader包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
    在执行yum update命令的时候,这一步就是yum会从服务器的header目录下载rpmheader,放在本地的缓存中。
    yum 的大致原理: yum会检查 $baseurl/repodata/repomd.xml,这个索引文件,找不到的会失败的。所以添加软件库的时候要注意一下,特别是第3方软件库.
    注:当第一次使用yumyum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
    [root@localhost ~]# cd /var/cache/yum/x86_64/6/;ls
    /etc/yum.repos.d/下面启用的源,cache目录下才会有相关的目录。
    yum就是根据存放在这里的这些rpmheader来检测系统中安装的软件(rpm软件包)是不是最新版本,需不需要update.
    如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,
    [root@localhost yum]# yum clean
    Loaded plugins: fastestmirror
    Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
    默认启用了base,updates,extras三个源
    [root@localhost yum]# grep '\[' /etc/yum.repos.d/CentOS-Base.repo
    [base]
    [updates]
    [extras]
    [centosplus]
    [contrib]
  2.  
  3. yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。
    http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html
  4.  
  5. 1.构建本地yum
  1. 本地软件源(光盘,iso,自定义的rpm包等)
  2.  
  3. 光盘
  4.  
  5. 默认有这个文件,就不需要新建repo文件了
    [root@localhost yum]# less /etc/yum.repos.d/CentOS-Media.repo
    [root@localhost yum]# mkdir /media/cdrom;mount /dev/sr0 /media/cdrom
    [root@localhost yum]# rm -rf /var/cache/yum/*
    [root@localhost yum]# rm -rf /tmp/yum*
  6.  
  7. yum --disablerepo=\* --enablerepo=c6-media
    yum --disablerepo=base,updates,extras --enablerepo=c6-media
    [root@localhost yum]# yum --enablerepo=c6-media --disablerepo=\* install perl
    Loaded plugins: fastestmirror
    Determining fastest mirrors
     * c6-media:
    file:///media/CentOS/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/CentOS/repodata/repomd.xml
    Trying other mirror.
    file:///media/cdrecorder/repodata/repomd.xml: [Errno 14] Could not open/read file:///media/cdrecorder/repodata/repomd.xml
    Trying other mirror.
    c6-media                                                 | 4.0 kB     00:00 ...
    c6-media/primary_db                                      | 4.4 MB     00:00 ...
    Setting up Install Process

  8. 自定义rpm
  9.  
  10. 1、将所有的rpm包拷贝到一个目录中,此处放在/mnt/local/下
    2、安装createrepo包
    rpm -ivh createrepo-0.9.8-4.el6.noarch或者
    yum install createrepo
    3、createrepo -v /mnt/local    #-v指定
    #vi local.repo
    [local]
    name=local
    baseurl=file:///mnt/local/
    gpgcheck=0
    #yum clean all
    #yum --enablerepo=local --disablerepo=\* install 包名
  1. iso
  2.  
  3. mount -o loop -t iso9660 rhel6.iso /mnt/iso/
    这时在local.repo文件添加
    [server]                             
    name=RHEL                       
    baseurl=file:///mnt/iso/   
    gpgcheck=0                     
    #yum clean all
    #yum --enablerepo=server --disablerepo=\* install perl
    与上相同
  4.  
  5. 2.构建远程yum
  6.  
  7. 架设本地,远程(ftp,http都可以)
    首先架设vsftp服务器
    rpm -ivh Createrepo-xxx.rpm
    createrepo /var/ftp/pub/     #生成数据库
    /etc/init.d/vsftpd start     #启动ftp服务
    baseurl=ftp://192.168.1.88/pub/
    安装单个服务已经可以了,下面我们来解决安装组包的问题
    修改文件:/usr/lib/python2.4/sit-pachages/yum/yumRepo.py
    #第441行vi +441 /usr/lib/python2.4/sit-pachages/yum/yumRepo.py
    #敲命令将 remote= url + '/' +relative  修改为  remote= "/var/ftp/pub/Server" + '/' +relative
    http类似于ftp,只是路径不同,协议不同而已。http方式是将源文件放入html目录中
  8.  
  9. http
    # vim /etc/yum.repos.d/cloudstack.repo
    [cloudstack]
    name=cloudstack
    baseurl=http://cloudstack.apt-get.eu/rhel/4.2/
    enabled=1
    gpgcheck=0
  10.  
  11. 因网络慢问题,可以先下载所有安装包,然后创建本地源:
    yum -y install httpd createrepo
    wget -c -r -nd -A rpm http://cloudstack.apt-get.eu/rhel/4.2/ -P /var/www/html/4.2
    createrepo /var/www/html/4.2/
    service httpd start
  12.  
  13. -c 断点续传
    -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录
    -A 指定分号分隔的被接受扩展名的列表
  14.  
  15. yum配置改为:
    [cloudstack]
    name=cloudstack
    baseurl=http://<http_server_ip>/4.2  #修改成自己服务器的IP地址
    enabled=1
    gpgcheck=0
  16.  
  17. 3.第三方源

  18. epel
  19. Extra Packages for Enterprise Linux(企业版 Linux 附加软件包)(以下简称 EPEL)是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS Scientific Linux)的一个高质量附加软件包项目。
  20. EPEL 的软件包通常不会与企业版Linux官方源中的软件包发生冲突,或者互相替换文件。EPELFedora项目基本一致,包含完整的构建系统、升级管理器、镜像管理器等等。
  21. EPEL 包含一个叫做epel-release的包,这个包包含了EPEL源的gpg密钥和软件源信息。您可以通过yum安装到您的企业版Linux发行版上。除了epel-release源,还有一个叫做epel-testing的源,这个源包含最新的测试软件包,其版本很新但是安装有风险,请自行斟酌。
  22. 注意: 有些第三方软件源需要 EPEL 'epel-testing'源来安装依赖组件,请务必在系统设置中启用本源。这里有相关的开启教程。(相关配置文件位于:/etc/yum.repos.d/epel-testing.repo)。
  23.  
  24. 首先安装epel包,下面两种方法均可以
  25. #yum install epel-release或者下面的
  26. #rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  27. #rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
    先查看一下这个包都安装了那些文件
    rpm -qpl http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  28. 导入key
  29. # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
  30.  
  31. 注意:
  32. 1、要安装最新版本的EPEL,请前往 http://mirrors.ustc.edu.cn/fedora/epel/ 中查找最新版本的URL地址,这里采用的是6.8版本
  33. 32位:http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
  34. 64位:http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
  35. 2、若出现下面类似错误,则表示对应的URL已经不存在,需要重新找EPEL的版本,请前往 http://mirrors.ustc.edu.cn/fedora/epel/ 获取需要的版本
  36. 如下报错,安装epel-release成功,但没有提示导入key
  37. [root@localhost ~]# yum install epel-release
  38. [root@localhost ~]# yum install x2goserver x2goserver-xsession
  39. Loaded plugins: fastestmirror, refresh-packagekit, security
  40. Loading mirror speeds from cached hostfile
  41. Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
  42. 解决办法是
  43. 处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, baseurl的注释取消, mirrorlist注释掉。即可。
  1. 163yum
  2.  
  3. 1.导入CentOS-6GPG证书
    rpm import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
    http://mirrors.163.com/.help/centos.html
    2.yum使用163yum源:
    cd /etc/yum.repos.d/
    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
  4.  
  5. 先备份
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    再下载对应版本的库文件
    curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
    curl -O http://mirrors.163.com/.help/CentOS6-Base-163.repo
    再生成缓存
    yum clean all
    yum makecache
  6.  
  7. 3.修改repo文件
    在所有mirrorlist前面加上#,把所有$releasever替换成6,保存
    sed -i ‘/mirrorlist/d CentOS-Base-163.repo
    sed -i ‘/\[addons\]/,/^$/d CentOS-Base-163.repo
    sed -i s/\$releasever/6/’ CentOS-Base-163.repo
    sed -i s/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/’ CentOS-Base-163.repo
    4.清理并重新生成yum缓存
    yum clean metadata
  8.  
  9. 安装额外的软件仓库:
    rpm.livna.org 的软件包仓库:
    rpm -ivh http://livna-dl.reloumirrors.net … ease-7-2.noarch.rpm
    freshrpms.net 的软件包仓库:
    rpm ivh http://ftp.freshrpms.net/pub/fre … 1.1-1.fc.noarch.rpm
  1. 问题:
  2. [root@name user]# yum
  3. File "/usr/bin/yum", line 30
  4. except KeyboardInterrupt, e:
  5. 原因:
  6. 这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.63.0后,出现语法解释错误。
  7. 解决办法:
  8. 很简单,一是升级yum,一是修改yum的解释器为旧版本python2.4(如果你没有采用覆盖升级的话)
  9. 升级yum的作法就不详述了;
  10. 修改yum的解释器为旧版本python2.4
  11. vi /usr/bin/yum
  12. 将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.4"即可
  13. YUM时,注:如出现:Existing lock /var/run/yum.pid: another copy is running. Aborting.错误,
  14. 要运行: rm -f /var/run/yum.pid 将该文件删除!
  15. yum Existing lock 错误的解决办法
  16. 如果系统启动的时候, yum 出现Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.
  17. 可以用下面的办法解决:
  18. 可以 /etc/init.d/yum-updatesd stop
  19. 也可以 rm -f /var/run/yum.pid
  20.  
  21. 主要原因就是yum在自动更新,所以再运行yum就会报这个错。
  22. 只要关掉正在执行的yum更新就可以了就可以了,停止正在运行的yum进程,或者禁用开机自动启动yum进程。
  23. 1rm -rf /var/run/yum.pid
  24. 2./etc/init.d/yum-updatesd stop
  25. 为什么会有一个yum进程在执行呢?
  26. 原来是yum自动更新机制自动激活了yum进程,用下面的命令停止自动更新:
  27. 如果我们不需要自动更新服务,可以直接删除它。
  28. #yum remove yum-updatesd
  29. 不过删除该服务之后,以后的更新要用下面的命令手工来完成了。
  30. #yum update

linux包之包管理命令rpm-yum的更多相关文章

  1. Linux就业技术指导(五):Linux运维核心管理命令详解

    一,Linux核心进程管理命令 1.1 ps:查看进程 1.1.1 命令解释 功能说明 ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片.如果想要动态地显示进程,就需要使 ...

  2. 云计算:Linux运维核心管理命令详解

    云计算:Linux运维核心管理命令详解 想做好运维工作,人先要学会勤快: 居安而思危,勤记而补拙,方可不断提高: 别人资料不论你用着再如何爽那也是别人的: 自己总结东西是你自身特有的一种思想与理念的展 ...

  3. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  4. Linux 用户篇——用户管理命令之id、whoami、su、chage

    一.浅谈id.whoami.su.chage 本篇是续写上一篇<Linux 用户篇——用户管理命令之useradd.passwd.userdel.usermod>. (1)id命令 命令格 ...

  5. RPM包管理命令rpm

    RPM包管理器是Linux系统中最早的软件包管理软件之一,也是目前最流行的软件包管理器,许多发行版都使用RPM作为默认的软件包管理软件. RPM软件包名称格式: samba-client-3.0.33 ...

  6. Linux基础:软件安装(rpm,yum,源代码)

    Software Installation on Linux Linux安装分为rpm包(可通过yum或者是rpm命令安装)和源码包(源代码或者是编译过的二进制码)两种. Linux是开源系统,很多应 ...

  7. 软件包管理(rpm&yum)

    一.rpm包管理器 rpm是一个功能强大的包管理工具,可用于构建,安装,查询,验证,更新和卸载软件包. 用法: rpm [OPTION...] 配置文件: /var/lib/rpm/ 已安装rpm包的 ...

  8. LINUX文件及目录管理命令基础

    Linux命令行组成结构 Linux命令结构 在Linux中一切皆文件,一切皆命令! 命令提示符: [root@tt ~]# [xiaohui@tt ~]$ Linux命令行常用快捷键 ctrl + ...

  9. Linux系列教程(七)——Linux帮助和用户管理命令

    上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...

  10. LINUX文件及目录管理命令基础(2)

    Linux文件类型 文件作为Linux操作系统中最常见的对象,在系统中被分为了多种类型 如下: - 普通文件 d 目录 l 链接 b 块设备 c 字符设备 p 管道设备 s 套接字文件 Linux目录 ...

随机推荐

  1. yii2 生成PDF格式的文件

    1 .先把mpdf-development.zip解压的类文件夹放到vendor目录里面,重命名为mpdf 2 .在vendor/composer/autoload_namespaces.php里面添 ...

  2. 数位dp-POJ-3252-Round Numbers

    最近一直在看书和博客,即使做出几道题来也是看别人题解写的,感觉没自己的东西,所以很久没更新博客 看了很多数位dp的题和题解,发现数位dp题是有固定的模版的,并且终于自己做出来一道. 我觉得用记忆化搜索 ...

  3. jQuery Transit

    http://code.ciaoca.com/jquery/transit/ jQuery Transit 事件监听 https://developer.mozilla.org/en-US/docs/ ...

  4. 如何用JS获取ASP.net中的textbox的值 js获不到text值

    <tr>                        <td class="table_body" style="width: 10%" a ...

  5. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  6. explicit用法

    explicit用来防止由构造函数定义的隐式转换. 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换. 例如: class things { ...

  7. linux服务器并发与tcmalloc

    前一天使用pmap查看服务器中自己开发的游戏服务的内存使用情况,发现其中数据存储服务的内存占用率非常高,截图如下. 从截图中可以看出来,分配了大量的64MB左右的内存空间,因为对自己的服务比较了解,知 ...

  8. Shell字符串截取

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  9. PAT (Basic Level) Practise:1013. 数素数

    [题目连接] 令Pi表示第i个素数.现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到 ...

  10. int integer string间的转换

    1.int-->Integer new Integer(i); 2.Integer-->int Integer i = new Integer(1); int k = i.intValue ...