Linux系統上安裝和管理軟體

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

推薦閱讀:

TAG:操作系統 | 管理軟體 | Linux |