在上一篇博客http://www.cnblogs.com/dengtr/p/5543820.html#3634582 中介紹瞭如何定製Centos系統鏡像,但其中有個問題,就是服務所依賴的安裝包不在原Centos系統鏡像中,而是須要聯網去epel等源那下載,對於一個不能聯網的環境而言會很麻煩。html
全部,咱們須要能夠在定製系統前,找出全部不在Centos鏡像中的rpm包,封裝到定製鏡像中便可。本博客就給你們介紹若是獲取咱們須要的rpm包python
一、首先,針對Centos6如下的版本,咱們須要安裝一個插件yum-plugin-downloadonlyvim
1 [root@192 ~]# yum install yum-plugin-downloadonly ui
安裝完後,若是你機器上的python是2.7以上版本的話,就須要修改下yum配置,由於Centos6如下的系統版本須要使用python2.6,全部須要修改/usr/bin/yum文件,將頭部的「#!/usr/bin/python」 修改成「#!/usr/bin/python2.6」。(注:須要你本機上有/usr/bin/python2.6這個版本)this
1 [root@192 ~]# vim /usr/bin/yum 2 #!/usr/bin/python2.6 3 import sys 4 try: 5 import yum 6 except ImportError: 7 print >> sys.stderr, """\ 8 There was a problem importing one of the Python modules 9 required to run yum. The error leading to this problem was: 10 11 %s
二、這時候你就可使用--downloadonly命令來yum下載本身須要的rpm了,該命令的做用就是下載rpm包及全部的依賴關係包,可是都不會被安裝。spa
1 [root@192 ~]# yum install --downloadonly epel* 2 Loaded plugins: fastestmirror 3 Setting up Install Process 4 Loading mirror speeds from cached hostfile 5 * base: mirrors.aliyun.com 6 * extras: mirrors.aliyun.com 7 * updates: mirrors.aliyun.com 8 Resolving Dependencies 9 --> Running transaction check 10 ---> Package epel-release.noarch 0:6-8 will be installed 11 --> Finished Dependency Resolution 12 13 Dependencies Resolved 14 15 ============================================================================================================================================================================================= 16 Package Arch Version Repository Size 17 ============================================================================================================================================================================================= 18 Installing: 19 epel-release noarch 6-8 extras 14 k 20 21 Transaction Summary 22 ============================================================================================================================================================================================= 23 Install 1 Package(s) 24 25 Total download size: 14 k 26 Installed size: 22 k 27 Is this ok [y/N]: y 28 Downloading Packages: 29 epel-release-6-8.noarch.rpm | 14 kB 00:00 30 exiting because --downloadonly specified
能夠看到yum只下載了epel包,可是並無進行安裝,通常下載的rpm存放在/var/cache/yum/x86_64/6/[repository]/packages/目錄下,標紅的[repository]表示下載包的來源倉庫的名稱(例如:base、extras、epel)。如剛纔下載的epel-release包就存放在系統下面的目錄下插件
1 /var/cache/yum/x86_64/6/extras/packages/epel-release-6-8.noarch.rpm code
三、以後你就能夠視本身的需求將下載的rpm封裝到定製鏡像裏,之後不再擔憂部署環境沒外網了,固然要是客戶死活不用你的定製鏡像,你能夠參考下一篇移動鏡像源的製做方法。恩,若是博主有時間寫的話。。。。。htm