安裝命令(十九)
安裝命令:yum,rpm
19.1.rpm
功能:rpm軟件包管理器
常用選項:
-ivh 安裝軟件包
-Uvh 升級軟件包,如果原來軟件包不存在則安裝
-Fvh 升級軟件包,如果原來的軟件包不存在則停止升級
-e 卸載軟件包
--nodeps 忽略依賴關系
註意:
安裝時,盡量不要忽略依賴關系;卸載時可以忽略依賴關系
-f 強制安裝
-q 查看軟件包是否安裝上
-aq |grep xxx
-ql 查看軟件所帶來的軟件列表
-qc 查看軟件所帶來的配置文件
-qd 查看軟件所帶來的幫助文檔
-qf filename 查看文件來自於哪個軟件包
rpm --import PUBKEY .. 導入軟件包的數字簽名認證
示例:
1)rpm包管理: # rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm warning: zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:zsh ########################################### [100%] --這是成功安裝 # rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm warning: zsh-4.3.10-5.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] package zsh-4.3.10-5.el6.x86_64 is already installed --這是已經安裝過了 關於上面的警告信息,其實就是在說操作系統沒有這個軟件包相關的簽名信息;你用rpm命令來安裝,有沒有此警告無所謂。但如果你用yum來安裝,yum裏一個參數為gpgcheck=0的話,則表示沒簽名沒問題,gpgcheck=1的話,則沒簽名就安裝不了。 解決這問題: # rpm --import RPM-GPG-KEY-redhat-release 2)依賴性的問題: # rpm -ivh mysql-5.1.61-4.el6.x86_64.rpm error: Failed dependencies: libmysqlclient.so.16()(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient_r.so.16()(64bit) is needed by mysql-5.1.61-4.el6.x86_64 libmysqlclient_r.so.16(libmysqlclient_16)(64bit) is needed by mysql-5.1.61-4.el6.x86_64 mysql-libs = 5.1.61-4.el6 is needed by mysql-5.1.61-4.el6.x86_64 --這些依賴性怎麽解決,如果你安裝的是rhel的iso裏的包,那麽它的依賴包也一定在iso裏(如果你是安裝一個第三方的包,那麽依賴性就不能保證全在iso裏) 解決的過程很艱辛,具體查找的過程就不寫了,下面這是安裝順序,並且最後一句比較特殊,它是A依賴B,B又同時依賴A,要兩個一起安裝的一個典型例子 # rpm -ivh mysql-libs-5.1.61-4.el6.x86_64.rpm # rpm -ivh keyutils-libs-devel-1.4-4.el6.x86_64.rpm # rpm -ivh libcom_err-devel-1.41.12-12.el6.x86_64.rpm # rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm # rpm -ivh libselinux-devel-2.0.94-5.3.el6.x86_64.rpm # rpm -ivh krb5-devel-1.9-33.el6.x86_64.rpm # rpm -ivh openssl-devel-1.0.0-20.el6_2.5.x86_64.rpm # rpm -ivh mysql-devel-5.1.61-4.el6.x86_64.rpm mysql-5.1.61-4.el6.x86_64.rpm 3)沖突: 報錯裏有conflict關鍵字的時候,就是沖突了,解決方法:一般來說要先幹掉沖突的包,再安裝新包 但是也有特殊情況,比如我已經安裝了A包,然後安裝B包時,報兩個包的其中一個文件沖突,怎麽解決? 方法一:把這個文件mv走,然後安裝 方法二: rpm -ivh --force xxxx.rpm 強制安裝,那麽這個沖突的文件會被覆蓋 方法三: rpm -ivh --nodocs xxxx.rpm 這個nodocs的參數表示不安裝它的文檔文件(如果你沖突的文件是一個文檔的話。如果不是文檔文件,則要用其它相關參數 rpm -ivh --nodeps 脫離依賴性 但是包不一定能用,因為你少了一些依賴包的功能 rpm -ivh --nomd5 不檢驗md5值 rpm -ivh --noscripts 不想啟用或者自動執行某些命令 rpm -ivh --replacefiles 某個文件已經安裝在系統上,或者沖突,可以用此參數覆蓋 註意:此操作無法復原 rpm -ivh --replacepkgs 重新安裝某個已經安裝過的包,比如說一個包你修改過,但不知道改在哪裏,可以這樣重新安裝 rpm -ivh --force 相當是強制安裝,是--replacefiles和--replacepkgs rpm -ivh --test 測試是否能安裝到此linux系統中 rpm -qa --查看你系統上已經安裝的rpm包(註意,只限於rpm包) # rpm -qa |grep mysql rpm -ql # rpm -ql mysql-5.1.61-4.el6.x86_64 --查看一個軟件包都安裝了哪些文件,從這裏也可以了解到linux安裝軟件是把文件按功能分散到各個目錄,後面的包名不用寫全 # rpm -qpl rpm -qpl mysql-5.1.61-4.el6.x86_64.rpm --如果你一個軟件包還沒有安裝,但你要查看一下安裝會產生哪些文件分布,可以加個p參數,但後面的包名要寫全 rpm -qi mysql-5.1.61-4.el6.x86_64 --查看軟件包有關信息和說明 # rpm -qf `which mount` --查看一個文件屬於哪個軟件包 util-linux-ng-2.17.2-12.7.el6.x86_64 # rpm -e mysql-5.1.61-4.el6.x86_64 --刪除一個rpm包的安裝,但是刪除也有依賴性.
19.2.yum
功能:rpm軟件包在線安裝工具
語法:
yum [options] [command] [package ...]
常用選項:
yum clean all 清空緩存
yum makecache 創建緩存
yum install xxx 安裝軟件
yum -y install xxx 取消交互
yum remove xxx 卸載軟件
yum update 更新本系統中已經安裝的所有軟件包(比倉庫裏版本低都更新)
yum update xxx 單獨更新某個軟件
yum list 列出倉庫裏所有的軟件包
yum list |grep xxx 過濾某個軟件包 @代表已經安裝,後面跟的是來自於-x哪個倉庫
yum list installed 查看當前操作系統中已經安裝的所有軟件包
yum list installed|grep tigervnc
yum localinstll xxx.rpm 安裝本地的rpm包
對應組的用法:
yum grouplist 查看包組
yum groupinstall -y "包組名" 安裝一個包組
yum grouplist
yum groupinstall 組名
yum groupinstall "組名1 組名2"
yum groupremove 組名
示例:
本地yum源
步驟:
1)本地需要有一個鏡像文件 2)掛在鏡像文件到操作系統的掛在點,並且開機自動掛載 mkdir /yum 創建一個掛在點 # mount /mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso /yum -o loop 手動掛載 vim /etc/fstab 開機自動掛在 /mnt/hgfs/soft/rhel-server-6.5-x86_64-dvd.iso /yum iso9660 defaults,ro,loop 0 0 3)配置yum源 # vim /etc/yum.conf --主配置文件,但一般不用它 /etc/yum.repos.d/xxx.repo --這個目錄下只要以.repo結尾的文件就是子配置文件 # rm /etc/yum.repos.d/* -rf --默認有兩文件,沒用,刪掉 # vim /etc/yum.repos.d/localyum.repo --新建一個以repo結尾的文件就可以 [server] --軟件倉庫名,自定義 name=server --標識名,自定義 baseurl=file:///yum/ --這一條最重要,它表示你的倉庫的地址。本地倉庫的寫法file:/// 要接三個/ enabled=1 --等於1表示打開倉庫,等於0表示不使用此倉庫 gpgcheck=0 --不驗證gpg簽名 上面這一段配置就包含了iso鏡像裏的大部分軟件,完整的配置如下:(這是redhat鏡像的詳細配置) [server] name=server baseurl=file:///yum/ enabled=1 gpgcheck=0 [HighAvailability] name=HighAvailability baseurl=file:///yum/HighAvailability/ enabled=1 gpgcheck=0 [LoadBalancer] name=LoadBalancer baseurl=file:///yum/LoadBalancer/ enabled=1 gpgcheck=0 [ResilientStorage] name=ResilientStorage baseurl=file:///yum/ResilientStorage/ enabled=1 gpgcheck=0 [ScalableFileSystem] name=server baseurl=file:///yum/ScalableFileSystem enabled=1 gpgcheck=0
本文出自 “爛筆頭” 博客,請務必保留此出處http://lanbitou.blog.51cto.com/9921494/1940199
安裝命令(十九)