rpm依賴自動解決,yum批量安裝,本地源


場景:

rpm包安裝時都是有依賴的,手動一個個都安裝,費時費力。

思路:將一堆docker的rpm包放到一個目錄下,做成本地yum源,讓yum自動檢測安裝。

 

一、開啟本地源

CentOS7 開啟本地源CentOS-Media.repo文件。將文件中enabled=0改成enabled=1      

       /media/cdrom/ 路徑下是ISO的系統鏡像文件。

       /media/CentOS/ 下放我們自定義docker的rpm包和相關依賴包。

 vi  /etc/yum.repos.d/CentOS-Media.repo
[c7-media]
name=CentOS-$releasever - Media
baseurl= file:///media/CentOS/
         file:///media/cdrom/
         file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

priority=1

[c7-media-CentOS]
name=CentOS-$releasever - Media
baseurl= file:///media/CentOS/

gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

priority=1

  注意:在新的[c7-media-CentOS]項的baseurl路徑下不要添加其他項有的重復路徑,尤其是掛載centos系統鏡像的ISO路徑,否則有包都會提示“ 沒有可用軟件包 docker。錯誤:無須任何處理 ”。

二、創建存放rpm包的目錄,這個里放到 /media/CentOS/,因為CentOS-Media.repo配置文件中baseurl就自帶這個目錄.

[root@CentOs7 ~]# mkdir -p /media/CentOS/
[root@CentOs7 ~]# mv *.rpm /media/CentOS/ 

 

三、創建repodata文件夾,將/media/CentOS/目錄制作成軟件倉庫

[root@CentOs7 ~]# yum install -y createrepo
[root@CentOs7 ~]# createrepo /media/CentOS/

 在/media/CentOS/就可以看到有個repodata文件夾,里面是相關配置文件,不要去改動。

    如果要增加或刪除了rpm包,重新執行createrepo --update命令來更新。

[root@CentOs7 ~]# createrepo  --update  /media/CentOS/

  

 四、查看倉庫列表

[root@CentOs7 ~]#  yum repolist

  

 五、網絡訪問倉庫

上面操作中只是在本地建立了一個YUM倉庫,這樣別人是無法使用的。所以通常會在計划任務中把公網YUM源同步到本地(推薦使用reposync),同步后再執行一次createrepo更新元數據,最后把倉庫目錄通過FTP或者Nginx、Apache、NFS服務等共享出來,然后客戶端的配置文件中修改如下:

[test]
name=test
enable=1
gpgcheck=0
baseurl=http://10.211.10.12

 

六、清除緩存

[root@CentOs7 ~]# yum clean all

  注意:如果自建的repo倉庫增加或刪除了文件,執行過createrepo后,就要執行 yum clean all 來清除之前的記錄。

                   如果是enabled=1開啟了一個倉庫,不需要執行yum makecache。執行yum install 時會自動執行yum makecache

 

 七、跳過不想安裝的源,比如安裝docker,先找到的是本地的docker,但是不想裝本地的,想裝網絡的。

方法一:enabled=0來關閉此項的倉庫路徑。

enabled=0

方法二:用 --disablerepo=c7-media_CentOS 參數來跳過本地源,搜索其他源。[c7-media_CentOS]是在CentOS-Media.repo文件里的項名稱(要改成你的項名稱)

yum --disablerepo=c7-media_CentOS install docker

 --disablerepo=[repo]  禁用一個或多個軟件源(支持通配符)用,(逗號)分割多個參數。

yum --disablerepo=c7-media_CentOS,extras_163 install docker

  

 

yum常用命令

yum repolist {all|enabled|disabled} 列出所有/已啟用/已禁用的yum源
yum list {all|installed|avaliable} 列出所有/已安裝/可安裝的軟件包
yum info package 顯示某一個軟件包的信息 --建議使用rpm -qi package_name,yum顯示的比較慢,需要加載緩存
yum install package -y安裝軟件包
yum reinstall package 重新安裝軟件包
yum remove|earse package 卸載軟件包
yum whatprovides|provides files 查詢某個文件是哪個軟件包生成的,files通常指命令,比如可以寫nginx--這個命令比較實用

yum grouplist {all|installed|avaliable} 列出所有/已安裝/可安裝的軟件包組  --用的不多,了解一下即可
yum groupinfo 顯示某個軟件包組的信息
yum groupinstall 安裝某個軟件包組
yum groupremove 刪除某個軟件包組

yum history 查看yum使用的歷史
yum clean {all|packages|metadata} 清除所有/軟件包/元數據
yum makecache 生成yum元數據
yum --nogpgcheck 不校驗公鑰文件
yum -y 自動進行操作
yum update 升級所有包,以及升級軟件和系統內核,這就是一鍵升級  --
yum update package 更新指定程序包package --一般不要使用這條命令

yum --disablerepo=repo  --臨時禁用某個repo源
yum  install nginx --disablerepo=nginx-stable  --臨時禁用指定的repo,在其他的repo安裝nginx包,這條命令比較實用
yum --enablerepo=
yum -C list nginx  --在緩存中查找包,速度更快

  

yum-fastestmirror

[root@node-2 ~]# yum install yum-fastestmirror -y  

#自動搜索最快鏡像插件並安裝(yum多個mirror自動選擇速度最快的mirror,yum-fastestmirror插件,它會自動選擇最快的mirror) #我們都知道,使用yum可以簡化系統軟件更新的工作。為了保證更新的持續進行,通常都會提供多個mirror(鏡像)地址供下載使用,但由於存在地域問題,
# 從不同的鏡像下載速度差異很大。選擇從適合的鏡像下載軟件包,會極大的影響更新速度。以CentOS為例,可使用一個叫fastestmirror的插件,
# 讓yum在更新時先根據ping值進行判斷,然后從最快響應的地址下載。 #首先,請配置好yum環境,然后,確認配置文件中,以及允許使用插件: cat /etc/yum.conf |grep plugins plugins=1 沒有的該參數的,請加入該設定。此外,要使用fastestmirror插件,在.repo配置文件中必須使用鏡像方式,也就是mirrorlist設定,而不是baseurl方式,例如: # cat CentOS-Base.repo |grep -A3 addons [addons] name=CentOS-4 - Addons mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4 enabled=1

  

  

 

 

 

參照:

學神MK 第一章 4-8-2-部署docker容器虛擬化平台.mp4

http://blog.csdn.net/qq_34556414/article/details/105425688

http://wiki.centos.org/PackageManagement/Yum/Priorities

http://cnblogs.com/earendil/p/7244091.html

       
createrepo  --update


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM