背景 YUM(Yellow dog Updater, Modified)爲多個Linux發行版的前端軟件包管理器,例如 Redhat RHEL, CentOS & Fedora. YUM經過調用RPM的軟件包信息讓用戶更方便地進行軟件安裝,升級,卸載等軟件包管理操做。
yum客戶端採用python編寫,採用sqlite存儲
rpm客戶端採用c編寫,採用bdb存儲
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.
https://trac.edgewall.org/about
Trac是基於web的軟件項目管理和缺陷/事務追蹤系統. 強調使用方便, 而不是其外在形式. 它提供了集成Wiki/版本控制系統界面, 以及更多方便的項目管理渠道, 來掌控項目的事件和變化.
http://refspecs.linuxfoundation.org/lsb.shtm
相關包及文件centos7
[root@my yum.repos.d]# rpm -qa|grep yum yum-metadata-parser-1.1.4-10.el7.x86_64 yum-plugin-fastestmirror-1.1.31-29.el7.noarch yum-3.4.3-125.el7.centos.noarch
[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 fastestmirror配置文件:(通常不用動) /etc/yum/pluginconf.d/fastestmirror.conf 你的yum鏡像的速度測試記錄文件: /var/cache/yum/timedhosts.txt
[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
[root@localhost ~]# cat /etc/yum.conf
[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
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
name,是對repository的描述,支持像$releasever $basearch這樣的變量;
$releasever,發行版的版本,從[main]部分的distroverpkg獲取,若是沒有,則根據redhat-release包進行判斷。
$arch,cpu體系,如i686,athlon等
$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。
[fedora] #方括號裏面的是軟件源的名稱,將被yum取得並識別
name=Fedora $releasever - $basearch #這裏也定義了軟件倉庫的名稱,一般是爲了方便閱讀配置文件,通常沒什麼做用,$releasever變量定義了發行版本,一般是8,9,10等數字,$basearch變量定義了系統的架構,能夠是i38六、x86_6四、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,在瀏覽器中打開,咱們就能看到一長串鏡可用的鏡像服務器地址列表。
http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-7&arch=x86_64
http://mirrors.fedoraproject.org/mirrorlist?repo=rhel-6&arch=x86_64
http://mirror.symnds.com/distributions/CentOS/6.5/os/x86_64/repodata/
http://mirror.symnds.com/distributions/CentOS/$releasever/os/$basearch/
yum命令 怎麼使用YUM命令升級全部RPM軟件包? yum update 怎麼使用YUM命令升級單個RPM軟件包 yum update 軟件名稱 使用YUM安裝RPM軟件包 yum install 軟件名稱 使用YUM升級所有軟件時怎麼排除個別軟件,假如你想升級全部軟件包,但不想升級內核,就能夠用下面的命令: yum --exclude=package kernel* update 怎麼使用YUM來肯定某個軟件須要升級,下面的命令會檢測 Fedora/CentOS/RHEL上的全部軟件是否須要升級 check-update 使用YUM卸載軟件 yum remove 軟件名稱 或者 yum erase 軟件名稱 使用YUM查看軟件包相關信息 yum list可讓你獲取軟件包相關信息,後面不指定軟件包名的話,它會列出全部軟件包的信息。 yum list 軟件名稱 使用yum瞭解軟件的主要功能 好比你想知道httpd這個軟件是幹嘛的,能夠輸入下面的的命令: yum provides httpd 使用YUM查找軟件包 若是你不知道某個軟件包的全稱,這個命令就很是有用了,它會根據你提供的關鍵詞在RPM的軟件包數據庫裏搜索相適配的軟件包。比方說我想找 samba這個軟件的全稱,我只須要輸入下面的命令便可: yum search samba 使用YUM查看軟件包的基本信息 yum info samba 怎麼清除YUM緩存和下載包文件 每安裝一個軟件包,YUM都是先下載一個RPM軟件包而後再安裝,安裝完後並不會自動刪除。時間長了,這些文件佔不少空間的。因此,須要定時清理: yum clean all 怎麼使用YUM安裝本地RPM包 若是你想要本身建立一個RPM軟件包,你能夠用YUM來肯定存在哪些依賴關係: yum localinstall 軟件名稱.rpm 使用YUM升級本地RPM軟件包 若是你想升級一個本地RPM軟件包,能夠用下面的命令: yum localupdate update-package.rpm 肯定RPM包依賴哪些組件 若是你想本身源碼安裝軟件,瞭解安裝的軟件包依賴哪些軟件很是有必要的。deplist可讓你知道軟件包依賴哪些組件,這些組件的全稱是什麼。 yum deplist 軟件名稱 查看YUM的版本信息 yum -v 使用YUM安裝軟件包到chroot環境(chroot) 你可使用下面的命令把軟件安裝到chroot: yum --installroot=/path/to/chroot/ 使用YUM啓用已存在的軟件源 若是你安裝了第三方的軟件源,你須要先啓用該軟件源才能從其安裝軟件,輸入下面的命令啓用EPEL軟件源: yum --enablerepo=epel install rsnapshot 使用YUM禁用軟件源 若是你安裝了第三方軟件源但不想從其安裝軟件,能夠用下面的命令禁用: yum --disablerepo=epel install 軟件名稱 YUM軟件集合 YUM軟件集合是指多個共同協做的軟件統稱,好比「Development Tools」(開發工具)。 下面介紹下怎麼用yum groupinstall命令來查看/安裝/卸載yum軟件集合 安裝yum軟件集合 yum groupinstall 'Development Tools' 卸載yum軟件集合 yum groupremove 'Development Tools' 升級yum軟件集合 yum groupupdate 'Development Tools' 查看yum軟件集合信息 yum groupinfo 'Development Tools' 查看有哪些軟件集合 yum grouplist | more 使用YUM輸出已安裝軟件包列表 該命令適用全部使用YUM爲軟件管理器的linux版本,如CentOS, Fedora, RHEL: yum list installed
yum [options] COMMAND package_name
其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇所有爲"yes"),-q(不顯示安裝的過程)等等。[command]爲所要進行的操做,[package ...]是操做的對象。
安裝最快鏡像插件: yum install yum-fastestmirror
安裝yum圖形窗口插件: yum install yumex
顯示全部已經安裝和能夠安裝的程序包 yum list 藍色已安裝,白色未安裝
顯示庫 yum repolist
[root@localhost ~]# yum list installed|wc -l
276
[root@localhost ~]# rpm -qa|wc -l
220
這兩個的數量是有差別的
能夠在命令前加help查看具體的幫助,很是方便,意識到這一點是對yum的一次本質提高(20160412才意識到)
[root@localhost ~]# yum help list
Loaded plugins: fastestmirror
list [PACKAGE|all|installed|updates|extras|obsoletes|recent]
List a package or groups of packages
[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/*
[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
能夠用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
erroneously
adv. 錯誤地;不正確
下面這兩個輸出是不同的
[root@localhost base]# yum whatprovides *awk
[root@localhost base]# yum whatprovides */awk
[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
[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
[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
Name and summary matches only, use "search all" for everything.
必須選擇下面的基本模式:Query, Verify, Signature Check, Install/Upgrade/Freshen, Uninstall, Initialize Database, Rebuild Database, Resign, Add Signature, Set Owners/Groups, Show Querytags, and Show Configuration。
rpm通常選項:能夠用於全部的不一樣的模式中。
-vv
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 組包名
包查詢選擇:[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
rpm -qpl http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm安裝的通用命令以下:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
PACKAGE_FILE 形如oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm
PACKAGE_NAME 形如oracle-instantclient-sqlplus
yum源(軟件倉庫)
yum的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它能夠是http或ftp站點, 也能夠是本地軟件源(光盤,iso,自定義的rpm包等),但必須包含rpm的header,header包括了rpm包的各類信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成餘下的任務。
在執行yum update命令的時候,這一步就是yum會從服務器的header目錄下載rpm的header,放在本地的緩存中。
yum 的大體原理: yum會檢查 $baseurl/repodata/repomd.xml,這個索引文件,找不到的會失敗的。因此添加軟件庫的時候要注意一下,特別是第3方軟件庫.
注:當第一次使用yum或yum資源庫有更新時,yum會自動下載全部所需的headers放置於/var/cache/yum目錄下,所需時間可能較長.
[root@localhost ~]# cd /var/cache/yum/x86_64/6/;ls
/etc/yum.repos.d/下面啓用的源,cache目錄下才會有相關的目錄。
yum就是根據存放在這裏的這些rpm的header來檢測系統中安裝的軟件(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]
yum的配置通常有兩種方式,一種是直接配置/etc目錄下的yum.conf文件,另一種是在/etc/yum.repos.d目錄下增長.repo文件。
http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html
1.構建本地yum源
本地軟件源(光盤,iso,自定義的rpm包等)
光盤
默認有這個文件,就不須要新建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*
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
自定義rpm
一、將全部的rpm包拷貝到一個目錄中,此處放在/mnt/local/下
二、安裝createrepo包
rpm -ivh createrepo-0.9.8-4.el6.noarch或者
yum install createrepo
三、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 包名
iso
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
與上相同
2.構建遠程yum源
架設本地,遠程(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目錄中
http源
# vim /etc/yum.repos.d/cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.2/
enabled=1
gpgcheck=0
因網絡慢問題,能夠先下載全部安裝包,而後建立本地源:
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
-c 斷點續傳
-nd 遞歸下載時不建立一層一層的目錄,把全部的文件下載到當前目錄
-A 指定分號分隔的被接受擴展名的列表
yum配置改成:
[cloudstack]
name=cloudstack
baseurl=http://<http_server_ip>/4.2 #修改爲本身服務器的IP地址
enabled=1
gpgcheck=0
3.第三方源
epel源
Extra Packages for Enterprise Linux(企業版 Linux 附加軟件包)(如下簡稱 EPEL)是一個由特別興趣小組建立、維護並管理的,針對紅帽企業版 Linux(RHEL)及其衍生髮行版(好比 CentOS、 Scientific Linux)的一個高質量附加軟件包項目。 EPEL 的軟件包一般不會與企業版Linux官方源中的軟件包發生衝突,或者互相替換文件。EPEL與Fedora項目基本一致,包含完整的構建系統、升級管理器、鏡像管理器等等。 EPEL 包含一個叫作epel-release的包,這個包包含了EPEL源的gpg密鑰和軟件源信息。您能夠經過yum安裝到您的企業版Linux發行版上。除了epel-release源,還有一個叫作epel-testing的源,這個源包含最新的測試軟件包,其版本很新可是安裝有風險,請自行斟酌。 注意: 有些第三方軟件源須要 EPEL 的'epel-testing'源來安裝依賴組件,請務必在系統設置中啓用本源。這裏有相關的開啓教程。(相關配置文件位於:/etc/yum.repos.d/epel-testing.repo)。 首先安裝epel包,下面兩種方法都可以 #yum install epel-release或者下面的 #rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm #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
導入key: # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 注意: 一、要安裝最新版本的EPEL,請前往 http://mirrors.ustc.edu.cn/fedora/epel/ 中查找最新版本的URL地址,這裏採用的是6.8版本 32位:http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm 64位:http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 二、若出現下面相似錯誤,則表示對應的URL已經不存在,須要從新找EPEL的版本,請前往 http://mirrors.ustc.edu.cn/fedora/epel/ 獲取須要的版本 以下報錯,安裝epel-release成功,但沒有提示導入key。 [root@localhost ~]# yum install epel-release [root@localhost ~]# yum install x2goserver x2goserver-xsession Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again 解決辦法是 處理很簡單,修改文件「/etc/yum.repos.d/epel.repo」, 將baseurl的註釋取消, mirrorlist註釋掉。便可。
163的yum源
1.導入CentOS-6的GPG證書
rpm –import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
http://mirrors.163.com/.help/centos.html
2.讓yum使用163的yum源:
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
先備份
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
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
安裝額外的軟件倉庫:
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
問題:
[root@name user]# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
緣由:
這是由於yum採用python做爲命令解釋器,這能夠從/usr/bin/yum文件中第一行#!/usr/bin/python發現。而python版本之間兼容性不太好,使得2.X版本與3.0版本之間存在語法不一致問題。而CentOS 5自帶的yum採用的是python2.4,當系統將python升級到2.6或3.0後,出現語法解釋錯誤。
解決辦法:
很簡單,一是升級yum,一是修改yum的解釋器爲舊版本python2.4(若是你沒有采用覆蓋升級的話)
升級yum的做法就不詳述了;
修改yum的解釋器爲舊版本python2.4:
vi /usr/bin/yum
將第一行"#!/usr/bin/python" 改成 "#!/usr/bin/python2.4"便可
當YUM時,注:如出現:Existing lock /var/run/yum.pid: another copy is running. Aborting.錯誤,
要運行: rm -f /var/run/yum.pid 將該文件刪除!
yum Existing lock 錯誤的解決辦法
若是系統啓動的時候, yum 出現Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.
能夠用下面的辦法解決:
能夠 /etc/init.d/yum-updatesd stop
也能夠 rm -f /var/run/yum.pid
主要緣由就是yum在自動更新,因此再運行yum就會報這個錯。
只要關掉正在執行的yum更新就能夠了就能夠了,中止正在運行的yum進程,或者禁用開機自動啓動yum進程。
1。rm -rf /var/run/yum.pid
2./etc/init.d/yum-updatesd stop
爲何會有一個yum進程在執行呢?
原來是yum自動更新機制自動激活了yum進程,用下面的命令中止自動更新:
若是咱們不須要自動更新服務,能夠直接刪除它。
#yum remove yum-updatesd
不過刪除該服務以後,之後的更新要用下面的命令手工來完成了。
#yum update