1. 程式人生 > >安裝命令(十九)

安裝命令(十九)

配置文件 軟件包 import 認證

安裝命令: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

安裝命令(十九)