1. 程式人生 > >五周第一次課

五周第一次課

rpm yum

7.1 安裝軟件包的三種方法

rpm

rpm(Redhat Package Manager)RPM軟件包管理器,是以一種數據庫記錄的方式來將我們所需要的套件安裝到Linux主機的一套管理程序。rpm包是預先在Linux機器上編譯好並打包好的文件,安裝起來非常快捷。但是有一個缺點:安裝環境必須與編譯時的一致或相當;包與包之間存在著相互依賴的情況,安裝或卸載包時需要先把依賴的包安裝/卸載,如果依賴的包時系統所必須的,那就不能卸載這個包

yum

yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

源碼包

Linux軟件的源代碼分發是指提供了該軟件所有程序源代碼的發布形式,需要用戶自己編譯成可執行的二進制碼並進行安裝。其優點是配置靈活,可以隨意去掉或保留某些功能/模塊,適應多種硬件/操作系統平臺及編譯環境;缺點是難度較大。

7.2 rpm包介紹

RPM是 “Redhat Package Manager” 的縮寫,是Redhat公司開發出來的。RPM 是以一種數據庫記錄的方式來將您所需要的套件安裝到您的Linux 主機的一套管理程序。也就是說,您的linux系統中存在著一個關於RPM的數據庫,它記錄了安裝的包以及包與包之間依賴相關性。RPM包是預先在linux機器上編譯好並打包好的文件,安裝起來非常快捷。但是也有一些缺點,比如安裝的環境必須與編譯時的環境一致或者相當;包與包之間存在著相互依賴的情況;卸載包時需要先把依賴的包卸載掉,如果依賴的包是系統所必須的,那就不能卸載這個包,否則會造成系統崩潰。

如果您的光驅中還有系統安裝盤的話,我們可以通過 mount /dev/cdrom /mnt 命令把光驅掛載到/mnt目錄下,那麽您會在/mnt/Packages目錄下看到很多.rpm的文件,這就是RPM包了。

mount /dev/cdrom /mnt/ 

技術分享圖片

每一個rpm包的名稱都由 - 和 . 分成了若幹部分。
就拿 “abrt-addon-pstoreoops-2.1.11-45.el7.centos.x86_64.rpm” 這個包來解釋一下, “abrt-addon-pstoreoops” 為包名,
“2.1.11” 則為版本信息,
“45.el7.centos” 為發布版本號,
“x86_64.rpm” 為運行平臺。其中運行平臺常見的有i386, i586, i686, x86_64 ,需要您註意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平臺,x86_64則代表為64位的平臺。另外有些rpm包並沒有寫具體的平臺而是noarch,這代表這個rpm包沒有硬件平臺限制。

7.3 rpm工具用法

rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm 安裝
rpm -Uvh zsh-5.0.2-25.el7.x86_64.rpm 升級
rpm -e 包 卸載
rpm -qa 查詢安裝的包
rpm -q zsh 查詢指定的包是否安裝
rpm -qi zsh 查詢指定包信息
rpm -qf which ls | sed -n 2,2p 查看一個文件是由哪個包安裝的
rpm -qf which ls | sed -n 2p 查看一個文件是由哪個包安裝的
rpm -ql 包名 列出包安裝的文件
技術分享圖片

7.4 yum工具用法

yum install -y 包名 --downloadonly

只下載不安裝

ll /var/cache/yum/x86_64/7/updates/packages/

下載後的默認路徑

yum install -y 包名 --downloadonly --downloaddir=路徑

只下載不安裝,指定路徑,針對沒有安裝過

yum reinstall -y 包名 --downloadonly --downloaddir=路徑

只下載不安裝,指定路徑,針對有安裝過

yum install yum-plugin-fastestmirror

最優方式選擇YUM源

yum check-update # 檢查軟件是否有更新
yum update -y # 更新所有 rpm 包
yum provides xhost # 查詢哪個 rpm 包提供了 xhost 命令
yum search telnet # 以名稱查找 rpm 包
yum deplist nginx # 查看 nginx 包依賴
yum clean all # 清除 dbcache headers packages metadata

##重建 yum 緩存
yum clean all
yum makecache
yum makecache fast # 建立 fast_mirrors 緩存

技術分享圖片

技術分享圖片

技術分享圖片

7.5 yum搭建本地倉庫

sudo yum install createrepo -y
sudo mkdir /media/CentOS7-LocalSource
sudo mount -t iso9660 -o loop /image/CentOS-7.0-1406-x86_64-Everything.iso /media/CentOS7-LocalSource

vim /etc/fstab

/image/CentOS-7.0-1406-x86_64-Everything.iso /media/CentOS7-LocalSource defaults,ro,loop 0 0
sudo mkdir /media/CentOS7-LocalServer
cd /media/
sudo createrepo -v CentOS7-LocalServer
vim /etc/yum.repos.d/CentOS7-LocalServer.repo

[CentOS7-LocalServer]
name=LocalServer
baseurl=file:///media/CentOS7-LocalServer
enable=1
gpgcheck=0

五周第一次課