1. 程式人生 > >RHEL7(124)安裝和更新軟體包

RHEL7(124)安裝和更新軟體包

安裝和升級軟體包


rpm 第一個選項決定功能
-q 查詢 -qa 查詢系統中安裝了哪些軟體包 rpm -qa |grep lrzsz
        -ql 包名(不包括字尾.rpm) 檢視此包安裝到哪裡去了
        -qc 包名  檢視此軟體包的配置檔案在哪
        -qd 包名 檢視幫助文件
        -qi 包名 檢視軟體包的資訊
安裝會產生很多個檔案,分佈在不同的目錄裡,
        -qf file 檢視此檔案是由哪個包安裝得來的


以上都是檢視已經安裝過的包名  加-p 就可以檢視未安裝的安裝包的資訊


        -qpi  安裝包(包括.rpm字尾) 檢視未安裝的安裝包的資訊。
         


rpm -e vsftpd 解除安裝


rpm -ivh vsftpd-3.0.xx.x.rpm




-e 是解除安裝    -i 是安裝
-Uvh xxx.rpm U是更新軟體


對於普通的軟體包來說,不能多版本共存
若想安裝新版本,需要先解除安裝舊版本,再安裝新版本。
或者直接用 -Uvh 更新軟體包。其實更新也是先解除安裝,再安裝的過程


核心除外。核心是可以多版本共存的。
核心不建議使用 -Uvh 更新, 要使用-ivh 


uname -r 檢視當前核心版本


作業:自己練習 rpm -Uvh kernel


rpm -K xxx.rpm 對軟體包驗證是否是紅帽提供


這裡用到了數字簽名  私鑰加密,公鑰解密
雜湊函式: 輸入一個不定長的值,總能得到一個定長的值
A 先使用雜湊函式(例如用md5),對傳輸資料取得雜湊值 ,然後用A 的私鑰對雜湊值加密
A把原始檔(源傳輸資料)和加密後的雜湊值傳遞給B
B使用A的公鑰對加密後的雜湊值解密。然後用和A同樣的雜湊函式對原始檔取雜湊值
然後對比自己雜湊出來的值 和 用A公鑰解密出來的雜湊值是否一樣
若一樣,則成功。


先匯入紅帽公鑰才能驗證


rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


rpm -qa |grep gpg-pubkey 查詢是否有公鑰匯入
 
rpm -V xxx  檢視此軟體安裝後生成的安裝檔案是否有被修改過


若有修改,則顯示出來。當刪除此軟體的時候,被修改的檔案會被儲存起來,而不會被刪除


--force  強制安裝
--nodeps 不驗證軟體依賴
不建議使用 --nodeps 裝了也不能用,自欺欺人




yum 


配置YUM 伺服器端


setenforce 0      SElinux 關閉 
iptables -F       關閉防火牆


ftp/http/nfs 都可以


rpm -ivh vsftpd-xxx.rpm


systemctl start vsftpd 


cd /var/ftp/    
mkdir cdrom  建立一個資料夾cdrom
cp -rf /iso/* cdrom/ 把光盤裡的東西都cp進來。 光碟事先掛載在/iso 下了
伺服器需要記錄每一個軟體包的源資料,記載了軟體對的依賴關係等


光盤裡有個repodata 目錄,記錄了光盤裡的所有RPM包的資訊,這個目錄解決了同級目錄下的RPM包的依賴關係


createrepo -v /var/ftp/ 這個命令會讀取ftp資料夾下所有的rpm包,然後將資訊記錄下來,生成一個repodata目錄. 關盤裡那個repodata目錄也是這麼生成的




客戶端配置


cd /etc/yum.repos.d/ 此目錄預設是空的。
在此目錄裡建立一個xx.repo的檔案
vim xx.repo
[aa] 此名字為yum源名字,隨便起
name=aaa   註釋資訊。也隨便
baseurl=ftp://xxx.xxx.xx.x/cdrom              repodata所在的目錄
enabled=1   表示此源管用, 0 表示不管用
gpgcheck=0   表示不對源做驗證
[bb]  
xxx
xx      可以繼續往下寫第二個源
 


  ####ftp://xxx.xxx.xx.x/  表示的是/var/ftp 這是ftp服務的根目錄


yum clean all 清除快取
yum repolist 檢視可用的yum源






   #######3載入外掛是放在 pluginconf.d/rhnplugin.conf 裡的  把enable=1改為=0就把外掛都關了




客戶端使用yum 


1  安裝某個包之前先查詢是否安裝過了
yum search vsftpd  在yum源裡查詢是否有此包  有不代表一定能安
yum list vsftpd  檢視是否有可安裝的包
--disablerepo=xx 禁用xx源     --enablerepo=aa 啟用aa源
yum install vsftpd  安裝


yum remove vsftpd  解除安裝


yum update  更新


-y 選項:不用互動,不用在安裝過程中回答 yes 或no  直接預設安裝


yum info vsftpd 檢視包資訊




yum install vsftpd --downloadonly --downloaddir=/aa  只下載不安裝。下載到/aa中


原本安裝的時候是預設把包下載到快取中,安裝後包是會被刪除的




yum whatprovides */smbpasswd    在源中查詢那個包安裝後能生成smbpasswd


yum grouplist 虛擬化* 找虛擬化包組


yum groupinstall 虛擬化包組    安裝包組


作業   安裝好系統後,會經常提示你註冊系統服務什麼的。解除安裝掉它!!
yum list subscript\*   
解除安裝上述命令列出的包       




/etc/yum.repos.d/ 這個目錄中有的時候會生成一個xxxx.repo的檔案
紅帽自帶的源不能用,這是紅帽的源。。這時候你自己配的源也不能用了。
把除了自己寫的.repo源刪除


chattr +i /etc/yum.repos.d/ 或者把這個目錄設定為不能再增加內容


fedora 社群提供了一個epel 源


下載epelxxx.rpm包。安裝這個包
這時候yum源目錄裡就會多出epel 源配置      這時候就聯網能安裝這個源裡的包


pkgs.org 
如果epel裡也沒有  可以去這個網站下載。這也是國外的站
或者去centos 源裡安裝或者網際網路上的其他源