Linux基礎之軟件包管理

一.概述

在redhat系列的發行版中,采用rpm軟件包管理器,rpm原名是Red Hat Package Manager,后來當其他發行版也采用這種軟件包管理機制以后,重新命名,改為RPM Package Manager,它所能提供的功能是將編譯好的應用程序文件打包成一個或幾個程序文件,從而使得用戶能夠方便的安裝,升級,卸載軟件,而yum則是rpm包管理器的前端工具。

二.rpm包的命名格式以及基本使用

1.rpm命名格式,rpm包分為核心包和功能包

對于核心包,命名格式為:

name-version-release.arch.rpm,其中version指明了程序源碼的版本信息,組成是:major.minor.release

例如:GeoIP-1.5.0-9.el7.x86_64.rpm

對于功能包,命名格式為:

name-function-version-release.arch.rpm 其中version指明了程序源碼的版本信息,組成是:major.minor.release

例如:GeoIP-devel-1.5.0-9.el7.x86_64.rpm

2.rpm命令的基本使用

rpm的功能包括:安裝,卸載,升級,查詢,軟件包校驗,數據庫維護等功能。

rpm的使用方式:rpm [option] [package_name]

(1)軟件的安裝

 rpm  <-i,–install> [option] package_name

常用選項:

-v,-vv:詳細顯示軟件包的安裝過程,v的個數表示信息的詳細程度
-h:安裝過程中以#顯示安裝進度條,每個#代表2%的進度
–test:測試安裝,檢查并報告依賴關系
–nodeps:忽略軟件的依賴關系,強制安裝,不過最好別這么做
–replacepkgs:重新安裝

(2)軟件的卸載

rpm <-e,–erease> [option] package_name

常用選項:

–allmatch:卸載跟包名匹配到的所有軟件包
–nodeps:忽略所有依賴關系,強制進行卸載,最好不要這么做
–test:只是測試卸載,并不是真正卸載

(3)軟件的升級

rpm <-q,–query> [option] package_name

常用選項:

-a,-all:查看已經安裝的軟件信息
-f <file> : 查看指定的文件是由哪個軟件包安裝之后生成的
-l,–list:查看軟件安裝生成了哪些文件
-i,–info:查看跟指定軟件包相關的信息
-c,–configfiles:查看軟件的配置文件信息
-d,–docfiles:查看指定軟件包安裝生成的文檔文件
-R,–require:查看指定軟件的依賴關系
–provides:查看指定軟件包提供的內容
–scripts:查看安裝指定軟件包所生成的腳本

(4)軟件的校驗

 rpm <-V,–verify> [option] package_name

常用選項:

-a:查看軟件包的完整性

有時候還需要檢驗軟件包的來源合法性:

a.獲取并導入軟件包制作者的密鑰:

 rpm –import /etc/pki/rpm-pgp/RPM-GPG-KEY-CentOS-6

b.手動驗證:

rpm -k package_name

(5)軟件的升級

rpm <-F,-U> [option] package_name

常用選項:

-U:升級或安裝
-F:升級軟件
–force:強制升級

(6)軟件包信息數據庫的管理

之所以能使用rpm對軟件包進行管理,是因為rpm根據其所維護的軟件包信息數據庫進行,而此數據庫位于/var/lib/rpm中

 –initdb:初始化數據庫
 –rebuilddb:重建數據庫

三.yum的使用

yum全稱:Yellowdog Update Modifer,是rpm包管理器的前端工具,根據yum的配置文件中定義的yum倉庫的位置,在倉庫中找到合適的軟件包,然后進行安裝。

1.yum的配置文件

/etc/yum.conf:提供yum工具的公共配置信息

/etc/yum.repo/ :提供yum倉庫的配置信息

2.yum倉庫的定義

[base] #定義yum倉庫的ID

name=CentOS-$releasever – Base – 163.com #定義yum倉庫的名稱

#指明yum倉庫的位置,可以使用http,ftp等服務定義,也可以使用本地的文件路徑定義

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/  

gpgcheck={1|0} #是否進行校驗

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 #要進行校驗時,要指明密鑰文件的位置 

enabled={1|0}:是否啟用此倉庫

a.掛載光盤(1)使用示例:將光盤作為本地的yum倉庫

mount -t iso9660 /dev/cdroom /media/cdroom

b.在/etc/yum.repo/目錄下創建一個以.repo結尾的文件,并添加如下內容即可                                                                                                                              

[my_yum_repo]

name=local repo

base=/media/Packages

gpgcheck=0

enabled=1   


3.yum的使用

使用格式:

yum [option] <command> [package]

其中常用的option:

-y:安裝過程中可能會安裝其他軟件包,此選項的意義是自動回答為yes,即都進行安裝
–noplugins:禁止安裝所有的插件
–nogpgcheck:安裝的時候不對軟件包的來源做驗證
–disablerepo=repo_name:臨時禁止使用指定的yum倉庫
–enablerepo=repo_name:臨時啟用指定的yum倉庫

常用的command:

install:安裝指定的軟件包
update:升級軟件包
remove:刪除指定的已經安裝的軟件包
list:列出yum倉庫中所有的rpm軟件包
info:查看指定的軟件包信息
clean {package,metadata,rpmdb,all}:清除指定的緩存信息
makecache:生成緩存信息
search:查找指定的軟件包
reinstall:重新安裝指定的軟件包
repolist:列出可用的yum倉庫
groupinstall:安裝指定的包組
groupinfo:查看指定包組的信息

原創文章,作者:zhangbao,如若轉載,請注明出處:http://www.www58058.com/59028

(0)
zhangbaozhangbao
上一篇 2016-11-15 23:53
下一篇 2016-11-16 20:08

相關推薦

  • Linux系統下的bonding設置

    bonding多個物理網卡聚合成一個虛擬網卡     Bonding,其原理是講多個物理網卡聚合成一個虛擬網卡,一張網卡正常工作,其余網卡作為備用,每隔一段時間(miimon=毫秒),向正常工作的網卡發一狀態詢問,若沒回復,則認為其運行失敗,然后就會啟用備用網卡,但是IP地址不會改變。   &nbs…

    Linux干貨 2016-09-07
  • Linux Services and Security–part1

    一、詳細描述一次加密通訊的過程,結合圖示最佳 以Bob和Alice安全通訊為例: Bob<———>Alice 1. Bob要和Alice安全通信首先要取得對方的公鑰,即對方的證書,并驗證證書的合法性。驗證過程和內容: 1)、用CA的公鑰(雙方已知)解密對方證書中CA的簽名;能解密說明證書來原可靠; 2)、用證書中標記的“簽名算法”來計算證書的相關…

    2017-10-17
  • Linux的任務計劃

    Linux的任務計劃         我們在使用系統的過程中,經常需要在以后的某個時間點執行一個任務,而我們又不在機器旁邊的時候,比如在半夜時服務器訪問的用戶很少,寬帶資源很充足的時候,要去鏡像軟件包、重啟服務器(雖然Linux很穩定)等,或者需要服務器在每天的特定時間去備份數據…

    2017-03-19
  • 馬哥教育網絡班19期+第九周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin),分別這兩類用戶的個數,通過字符串比較來實現。 #!/bin/bash for user_shell in `awk -F: '{print $7}'&nbsp…

    Linux干貨 2016-07-01
  • 第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 目錄管理類的命令: mkdir, rmdir mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限; 注意:路徑…

    Linux干貨 2018-01-17
  • MySQL流程函數

    MySQL流程函數 IF(value,x y) 如果value是真,返回x,否則返回y MariaDB [learn]> INSERT INTO salary(sal) VALUES (1000),(2000),(3000),(4000),(5000),(6000),(NULL); Query OK, 7 rows affected (0.06 sec…

    Linux干貨 2017-05-02
欧美性久久久久