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

2022-06-24 23:30:17 字數 4060 閱讀 4002

場景:

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=

六、清除快取

[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 repolist  列出所有/已啟用/已禁用的yum源

yum list 列出所有/已安裝/可安裝的軟體包

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 列出所有/已安裝/可安裝的軟體包組 --用的不多,了解一下即可

yum groupinfo 顯示某個軟體包組的資訊

yum groupinstall 安裝某個軟體包組

yum groupremove 刪除某個軟體包組

yum history 檢視yum使用的歷史

yum clean 清除所有/軟體包/元資料

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 --在快取中查詢包,速度更快

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

#自動搜尋最快映象外掛程式並安裝(yum多個mirror自動選擇速度最快的mirror,yum-fastestmirror外掛程式,它會自動選擇最快的mirror)

#首先,請配置好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=

#baseurl=

gpgcheck=1

gpgkey=

enabled=1

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

createrepo  --update

yum解決rpm依賴

配置yum更新源 1.首先掛載cdrom到本地目錄 1mount dev cdrom mnt 2.開始配置centos原始檔 centos5.x預設的yum更新配置檔案在 etc yum.repos.d 目錄下,有兩個倉庫配置檔案 centos base.repo 用於設定遠端倉庫 centos m...

rpm 安裝 忽略依賴 解決RPM包依賴的幾種方法

前言 常用rpm的朋友們都知道,rpm簡單易用,但是它的依賴關係是最頭疼的!有時候比方說a包需要b包,b包需要c包,c包需要a包,好了。這就是最常見的死鎖了 類似資料庫有木有?這個時候有以下幾種方式可以解決 a 強制安裝 暴力型 使用rpm i force nodeps 強制安裝。忽略依賴關係。這種...

解決rpm包相互依賴問題

在安裝rpm包時,如果遇到迴圈依賴的問題時,可以通過下面的方法來安裝 用 號萬用字元匹配此套件的所有rpm,並將所有相依賴的rpm包一起安裝,同時加上 aid的引數。下面這條命令安裝了libx11 devel,xorg x11 proto devel,mesa libgl devel,libxdmc...