Linux系統上安裝和管理軟體
來自專欄網路消防員
1、rpm包管理命令:rpm
RPM軟體包:一般命名格式:
RPM命令主要功能
- 查詢RPM軟體、包文件的相關信息
- 安裝、升級、卸載RPM軟體包
- 維護RPM資料庫信息
查詢已安裝的RPM軟體信息
格式:rpm -q[子選項] [軟體名]
用法:結合不同的子選項 完成不同查詢
- -qa:查看系統中已安裝的所有RPM軟體包列表
- -qi:查看指定軟體的詳細信息
- -ql:查詢指定軟體包所安裝的目錄、文件列表
- -qc:僅顯示指定軟體包安裝的配置文件
- -qd:僅顯示指定軟體包安裝的文檔文件
查詢文件/目錄屬於哪個RPM軟體
格式:rpm -qf 文件或目錄名
查詢未安裝的RPM包文件
格式:rpm -qp[子選項] RPM包文件
用法:結合不同的子選項 完成不同查詢
- -qpi:通過.rpm包文件查看該軟體的詳細信息
- -qpl:查看.rpm安裝包內所包含的目錄、文件列表
- -qpc:查看.rpm安裝包內包含的配置文件列表
- -qpd:查看.rpm安裝包內包含的文檔文件列表
安裝或升級RPM軟體
格式:rpm [選項] RPM包文件...
用法:不同選項適用於不同情況
- -i:安裝一個新的rpm軟體包
- -U:升級某個rpm軟體,若原本未裝,則進行安裝
- -F:更新某個rpm軟體,若原本未裝,則放棄安裝
卸載指定的RPM軟體
格式:rpm -e 軟體名
輔助選項
- --force:強制安裝所指定的rpm軟體包
- --nodeps:安裝、升級或卸載軟體時,忽略依賴關係
- -h:以「#」號顯示安裝的進度
- -v:顯示安裝過程中的詳細信息
當RPM資料庫損壞時,需要進行資料庫重建
格式:rpm --rebuilddb 或者 rpm --initdb
2、rpm包管理命令:YUM
本地YUM(光碟源)
以下是rhel_6.0-i386-DVD的目錄結構:
- HighAvailability 高可用相關軟體包,如rhcs等相關套件
- Server 常規軟體包,如mysql,httpd,開發工具,系統管理工具等
- LoadBalancer 負載均衡相關軟體包,如lvs,pirihan
- ResilientStorage
- Packages 真正存放所有軟體包的目錄
- images rhel安裝進程所需要的引導和驅動鏡像文件
- isolinux 鏡像文件引導時所需要的文件
搭建yum光碟源
先將RHEL6的光碟掛載到某一目錄下,如掛載到/mnt
#mount /dev/cdrom /mnt
在/etc/yum.repos.d目錄下創建一個以.repo結尾的文件:
#vi /etc/yum.repos.d/server.repo
配置內容如下:
[Server]name=Serverbaseurl=file:///mnt/Serverenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[LoadBalancer]name=LoadBalancerbaseurl=file:///mnt/LoadBalancerenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[HighAvailability]name=HighAvailabilitybaseurl=file:///mnt/HighAvailabilityenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ResilientStorage]name=ResilientStoragebaseurl=file:///mnt/ResilientStorageenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ScalableFileSystem]name=ScalableFileSystembaseurl=file:///mnt/ScalableFileSystemenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Yum命令格式
yum <options> <command> <package...>
參數說明:
- -y : 如果在工作過程中如要使用者響應,這個參數可以直接回答yes
- list : 列出在yum server 上面有的RPM套件
- install: 安裝
- update : 升級某個套件,如果update後面沒有接套件名稱,即更新目前主機所有已安裝的套件.
- info : 列出某個套件的詳細信息,相當於rpm -qi package內容
- clean : 將已下載到本機的packages或headers移除
- remove : 移除已經安裝在系統中的某個套件
- yum localinstall package 本地安裝軟體包
- yum update 全部更新
- yum update package 更新指定程序包package
- yum check-update 檢查可更新的程序
- yum info <package> 顯示安裝包信息
- yum list 顯示所有已經安裝和可以安裝的程序包
- yum list <package> 顯示指定程序包安裝情況
- yum search <keyword>查找軟體包
- yum remove | erase package1 刪除程序包
- yum clean headers 清除header
- yum clean packages 清除下載的rpm包
- yum clean all 清除header與rpm包
- yum grouplist ,列出所有組
- yum groupinstall 安裝某個軟體組如:yum groupinstall Virtualization 安裝虛擬化
常見問題解決方法
1、如果首次安裝軟體包之後,再次安裝別的軟體包的時候,很可能會發現報錯了,錯誤信息如下:
Error: Cannot retrieve repository metadata (repomd.xml) for repository:InstallMedia. Please verify its path and try again其實,在首次讀取改軟體倉庫之後,會把原本光碟根目錄下,也就是一同被你拷貝到軟體倉庫目錄的media.repo複製一份到/etc/yum.repos.d/,而該文件也就是導致本地yum源失效的罪魁禍首。
解決方法
刪除軟體倉庫中的media.repo# rm -f /share/rhel/media.repo或者在/etc/yum.conf增加以下選項skip_if_unavailable=True
2、如果安裝軟體包出現public key for …….rpm is not install
解決方法
導入完整性驗證的公鑰#mount /dev/sr0 /mnt#rpm –-import /mnt/RPM-GPG-KEY-redhat-release
本地YUM(硬碟源)
在本地創建一個存放YUM源的目錄,如mkdir /yum
將光碟中的所有內容拷貝到/yum中
#mount /dev/cdrom /media#cp -a /media/* /yum
在/etc/yum.repos.d目錄下創建一個以.repo結尾的文件:
配置內容參照光碟源的YUM,此處略過
修改yumRepo.py文件
vim /usr/lib/python2.6/site-packages/yum/yumRepo.py 把782行的 remote = url + 『/』 + relative 改成 remote = url + 『/yum』 + relative
清理YUM緩存
yum clean all
驗證本地YUM安裝包
網路YUM(通過FTP或HTTP協議方式實現網路YUM安裝RPM包)
在Linux主機中使用YUM客戶端工具在線升級、安裝軟體時,由於受到網路連接速度、網路帶寬的限制,往往給用戶安裝帶來不必要的麻煩。但是如果在區域網中構建一個基於本地的YUM源伺服器,則可以大大解決用戶安裝軟體速度較慢的問題
通過FTP方式:(方式1:硬碟源)
實現步驟:
安裝createrepo工具
createrepoa主要用於收集目錄中的rpm包文件的頭信息,以創建repodata軟體倉庫數據(經gzip壓縮的xml文件)。
mount /dev/cdrom /mnt //掛載光碟rpm –ivh /mnt/Packages/createrepo-0.9.8-4.el6.noarch.rpm注意:安裝createrepo包時要依賴以下兩個包:deltarpm和python-deltarpm,不能忽略這兩個包
安裝FTP伺服器:
rpm -ivh /mnt/Packages/vsftpd-2……..(按TAB鍵自動補齊)
配置軟體倉庫目錄
可參考安裝光碟的Server目錄mkdir /var/ftp/pub/Packagesmkdir /var/ftp/pub/repodata
從光碟把所有的RPM包複製到/var/ftp/pub/Packages目錄下(要確保硬碟有足夠的磁碟空間)
cp - a /mnt/Packages/* /var/ftp/pub/Packages/
創建軟體倉庫信息文件
cd /var/ftp/pub/createrepo --database ./[root@server pub]# ls repodata/filelists.sqlite.bz2 other.sqlite.bz2 primary.sqlite.bz2 repomd.xmlfilelists.xml.gz other.xml.gz primary.xml.gz
啟動vsftpd服務
service vsftpd startchkconfig vsftpd on
在另一台客戶端測試,首先創建repo文件指定YUM源位置
vi /etc/yum.repos.d/server.repo,注意文件的擴展名要以repo結尾,文件內容如下[rhel6] //軟體倉庫的名字name=rhel6 //軟體倉庫的描述baseurl=ftp://192.168.100.1/pub //軟體倉庫的位置(VSFTP匿名用戶訪問FTP時根目錄為/var/ftp)enabled=1 //是否起用軟體倉庫gpgcheck=1 //是否檢查GPG簽名(用來驗證要安裝的包是不是REDHAT官方的)gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //GPG簽名密鑰的位置
驗證
在客戶端上安裝RPM包,如samba
若YUM伺服器開啟了selinux功能,客戶端通過YUM安裝會失敗
方法:1、關閉selinux功能setenforce 0 方法2:setsebool allow_ftpd_full_access on
通過FTP方式(方式2:光碟源)
YUM伺服器端配置(IP:192.168.10.10)
先將系統光碟掛載到/var/ftp/pub目錄下
確保vsftpd服務啟動
YUM客戶端配置(IP:192.168.10.100)
在/etc/yum.repos/目錄下創建一個以.repo為後綴的文件,內容如下:
[Server]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.10.10/pub/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.10.10/pub/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.10.10/pub/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ResilientStorage]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.10.10/pub/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[ScalableFileSystem]
name=Red Hat Enterprise Linux base
baseurl=ftp://192.168.10.10/pub/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
通過HTTPD方式(與ftp方式類似)
實現步驟:
安裝createrepo工具
createrepoa主要用於收集目錄中的rpm包文件的頭信息,以創建repodata軟體倉庫數據(經gzip壓縮的xml文件)。
mount /dev/cdrom /mnt //掛載光碟rpm –ivh /mnt/Packages/createrepo-0.9.8-4.el6.noarch.rpm
安裝httpd伺服器
rpm -ivh /mnt/Packages/httpd-2……..(按TAB鍵自動補齊)
配置軟體倉庫目錄
可參考安裝光碟的Server目錄
mkdir /var/ftp/pub/Packagesmkdir /var/ftp/pub/repodata
從光碟把所有的RPM包複製到/var/ftp/pub/Packages目錄下(要確保硬碟有足夠的磁碟空間)
cp - a /mnt/Packages/* /var/ftp/pub/Packages/
創建軟體倉庫信息文件:
cd /var/ftp/pub/createrepo --database ./[root@server pub]# ls repodata/filelists.sqlite.bz2 other.sqlite.bz2 primary.sqlite.bz2 repomd.xmlfilelists.xml.gz other.xml.gz primary.xml.gz
啟動httpd服務
service httpd startchkconfig httpd on
配置apache服務的主配置文件httpd.conf,在httpd.conf文件中創建/var/ftp/pub目錄的虛擬目錄(虛擬目錄名稱任意例如:虛擬目錄名稱為yum),httpd.conf文件配置如下圖:
重啟httpd服務
在另一台客戶端測試,首先創建repo文件指定YUM源位置
vi /etc/yum.repos.d/server.repo,注意文件的擴展名要以repo結尾,文件內容如下[rhel6] //軟體倉庫的名字name=rhel6 //軟體倉庫的描述baseurl=http://192.168.100.1/yum //軟體倉庫的位置(yum為在httpd.conf文件中定義的虛擬目錄)enabled=1 //是否起用軟體倉庫gpgcheck=1 //是否檢查GPG簽名(用來驗證要安裝的包是不是REDHAT官方的)gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //GPG簽名密鑰的位置
- 微信公眾號ID:snmp161
推薦閱讀: