軟件包管理

一、軟件管理程序rpm

簡介:RPM是通過預編譯并打包成為RPM文件格式后再加以安裝的一種方式,并且還能夠進行數據庫的記載。

1、優點:

    1、RPM內含已經編譯過的程序與設置文件等數據,可以讓用戶免除重新編譯的困擾;

    2、RPM在被安裝之前,會先檢查系統的硬盤容量、操作系統版本,可避免文件被錯誤安裝;

    3、RPM文件本身提供軟件版本信息、依賴屬性軟件名稱、軟件用途說明、軟件所含文件等信息,便于了解軟件;

    4、RPM管理的方式使用數據庫記錄RPM文件的相關參數,便于升級、刪除、查詢與驗證。

2、rpm包安裝

rpm {-i|–install} [install-options] PACKAGE_FILE…

    -i : install的意思

    -v: 詳細的安裝畫面。

    -h: 以#顯示程序包管理執行進度 。

rpm -ivh PACKAGE_FILE …

rpm包安裝 ?[install-options]

    –test: 測試安裝,但不真正執行安裝;dry run模式

    –nodeps:忽略依賴關系

    –replacepkgs | replacefiles

    –nosignature: 不檢查來源合法性

    –nodigest:不檢查包完整性

    –noscipts:不執行程序包腳本片斷

        %pre: 安裝前腳本; –nopre

        %post: 安裝后腳本; –nopost

        %preun: 卸載前腳本;–nopreun

        %postun: 卸載后腳本; –nopostun

測試一下以前安裝過的軟件:

blob.png

3、rpm包升級

升級:

    rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

    rpm {-F|–freshen} [install-options] PACKAGE_FILE…

    upgrade:安裝有舊版程序包,則“升級” 如果不存在舊版程序包,則“安裝”

    freshen:安裝有舊版程序包,則“升級” 如果不存在舊版程序包,則不執行升級操作

    rpm -Uvh PACKAGE_FILE …

    rpm -Fvh PACKAGE_FILE …

        –oldpackage:降級

        –force: 強行升級

    升級注意項

    注意:

        (1) 不要對內核做升級操作;Linux支持多內核版本并存,因此 ,對直接安裝新版本內核

        (2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本 的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而 把新版本的文件重命名(FILENAME.rpmnew)后保留

包查詢

rpm {-q|–query} [select-options] [query-options]

[select-options]

    -a: 所有包

    -f: 查看指定的文件由哪個程序包安裝生成

    -p rpmfile:針對尚未安裝的程序包文件做查詢操作;

    –whatprovides CAPABILITY:查詢指定的CAPABILITY 由哪個包所提供

    –whatrequires CAPABILITY:查詢指定的CAPABILITY被 哪個包所依賴

rpm2cpio 包文件|cpio –itv 預覽包內文件

rpm2cpio 包文件|cpio –id  “*.conf” 釋放包內文件

[query-options]

    –changelog:查詢rpm包的changelog

    -c: 查詢程序的配置文件

    -d: 查詢程序的文檔

    -i: information

    -l: 查看指定的程序包安裝后生成的所有文件;

    –scripts:程序包自帶的腳本片斷

    -R: 查詢指定的程序包所依賴的CAPABILITY;

    –provides: 列出指定程序包所提供的CAPABILITY;

查詢用法:

    -q  :僅查詢,看后面跟的文件是否安裝。

    -qa:列出所有已經安裝在本機的所有軟件名稱。

    -qi :列出后面跟的軟件的詳細信息。

    -ql :列出該軟件相關的文件目錄所在完整文件名。

    -qc:列出該軟件件所有的設置文件。

    -qd:列出該軟件所有的幫助文件。

    -qR:列出該軟件有關的依賴軟件所含文件。

    -qp:該選項后面接的所有參數以上面的說明一致,但用途僅在于找出某個RPM文件內的信息,而非已安裝的軟件信息。

實例1,找出tree軟件,列出跟它有關的所有目錄與文件,列出tree的軟件信息,找出tree的幫助文件,找出他還需要什么軟件才能正常安裝,

blob.png

blob.png

卸載:

rpm {-e|–erase} [–allmatches] [–nodeps] [– noscripts] [–notriggers] [–test] PACKAGE_NAME …

包校驗

rpm {-V|–verify} [select-options] [verify-options]

    S file Size differs:文件容量大小是否被改變

    M Mode differs :文件的類型或文件的屬性(rwx是否被改變),如是否可執行等參數已被改變。

    5 formerly MD5 sum)MD5這一種的指紋罵的內容已經不同

    D Device major/minor number mismatch :設備的主/次代碼已經改變;

    L readLink(2) path mismatch :Link路徑已被改變;

    U User ownership differs :文件的所有者已經改變;

    G Group ownership differs :文件的所屬組已經改變;

    T mTime differs :文件的創建時間已經改變;

    P capabilities differ

包來源合法性驗正及完整性驗正:

完整性驗正:SHA256

來源合法性驗正:RSA

    公鑰加密:

    對稱加密:加密、解密使用同一密鑰;

    非對稱加密:密鑰是成對兒的

    public key: 公鑰,公開所有人

    secret key: 私鑰, 不能公開

導入所需要公鑰:

    rpm  -K|checksig rpmfile 檢查包的完整性和簽名

    rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

    CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7

    rpm -qa gpg-pubkey*

rpm數據庫

數據庫重建:

    /var/lib/rpm

    rpm {–initdb|–rebuilddb}

    initdb: 初始化如果事先不存在數據庫,則新建之否則,不執行任何操作

    rebuilddb:重建無論當前存在與否,直接重新創建數據庫

2、yum

簡介:

    Yellowdog Update Modifier,rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包, up2date的替代工具 yum repository: yum repo,存儲了眾多rpm包,以及 包的相關的元數據文件(放置于特定目錄repodata下)

    文件服務器: ftp:// http:// file:///

yum配置文件:

    yum客戶端配置文件:

        /etc/yum.conf:為所有倉庫提供公共配置

        /etc/yum.repos.d/*.repo:為倉庫的指向提供配置

倉庫指向的定義:

    [repositoryID] 容器的名字

    name:說明容器的意義

    baseurl=容器的實際網址

    enabled=1:啟動容器 0:關閉容器

    gpgcheck=是否需要查詢證書

    gpgkey=數字證書所在位置一般使用默認值

    enablegroups={1|0}

    failovermethod={roundrobin|priority} 默認為:roundrobin,意為隨機挑選;

    cost=n 默認為1000

yum命令的用法: yum [options] [command] [package …]

    yum-config-manager –disable “倉庫名"  禁用倉庫

    yum-config-manager –enable  “倉庫名” 啟用倉庫 yum-config-manager

顯示倉庫列表:

    repolist [all|enabled|disabled]

顯示程序包:list

    # yum list [all | glob_exp1] [glob_exp2] […]

    # yum list {available|installed|updates} [glob_exp1] […]

安裝程序包:

    install package1 [package2] […]

    reinstall package1 [package2] […]  (重新安裝)

升級程序包:

    update [package1] [package2] […]

    downgrade package1 [package2] […] (降級)

檢查可用升級:

     check-update

卸載程序包: 

    remove | erase package1 [package2] […]

查看程序包information: 

    info […]

查看指定的特性(可以是某文件)是由哪個程序包所提供: provides | whatprovides feature1 [feature2] […]

清理本地緩存:

     clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

構建緩存: 

    makecache

搜索:

    search string1 [string2] […]

以指定的關鍵字搜索程序包名及summary信息

查看指定包所依賴的capabilities: deplist package1 [package2] […]

查看yum事務歷史:

        history [info|list|packages-list|packages-info|

        summary|addon-info|redo|undo|

        rollback|new|sync|stats]

        yum history

        yum history info 6

        yum history undo 6

日志 :

    /var/log/yum.log

安裝及升級本地程序包:

    * localinstall rpmfile1 [rpmfile2] […] (用install替代)

    * localupdate rpmfile1 [rpmfile2] […] (用update替代)

包組管理的相關命令:

    groupinstall group1 [group2] […]

    groupupdate group1 [group2] […]

    grouplist [hidden] [groupwildcard] […]

    groupremove group1 [group2] […]

    groupinfo group1 […]

yum的命令行選項:

    –nogpgcheck:禁止進行gpg check

    -y: 自動回答為“yes”

    -q:靜默模式

    –disablerepo=repoidglob:臨時禁用此處指定的repo

    –enablerepo=repoidglob:臨時啟用此處指定的repo

    –noplugins:禁用所有插件

yum倉庫

yum的repo配置文件中可用的變量:

    $releasever: 當前OS的發行版的主版本號

    $arch: 平臺,i386,i486,i586,x86_64等

    $basearch:基礎平臺;i386

    $YUM0-$YUM9:自定義變量

創建yum倉庫: 

    createrepo [options] <directory>

實例:yum安裝tree軟件

blob.png

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

(0)
502795641502795641
上一篇 2016-08-24 10:25
下一篇 2016-08-24 10:25

相關推薦

  • 02葵花寶典之bash特性及文件入門

    文件管理 目錄 命令替換 命令執行狀態 元數據 時間戳

    2018-03-11
  • Net-25第5周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep -E "^[[:space:]]+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep&nbsp…

    Linux干貨 2017-01-03
  • N26第一周博客作業

    1.       計算機的組成及其功能 計算機由以下5部分組成: 控制器:控制器是計算機的中樞神經,功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各個部分工作及內存與外存的訪問等。 運算器:運算器功能主要是對數據進行各種算術和邏輯運算,即對數據進行加工處理?!?/p>

    Linux干貨 2016-12-28
  • parted使用說明

    一.為什么使用parted命令     傳統的MBR(Master Boot Record)分區方式,有一個局限:無法支持超過2TB的硬盤分區(單個分區超過2TB)。     GPT(GUID Partition Table)的分區表很好的解決了這個問題,但在Linux系統中,傳…

    Linux干貨 2015-04-13
  • 1. 什么是Linux

        如果以前從沒有接觸過linux, 你可能會對為什么會存在這么多不同的linux發行版有些困惑. 在看linux軟件包時, 你肯定聽過發行版, LiveCD和GNU之類的等等術語, 也肯定摸不著頭腦. 第一次接觸linux,想理解會有些困難.  我們就先了解下linux系統內部結構的一些信息. &nbs…

    Linux干貨 2016-10-26
  • 網絡25期第一周作業

    一、計算機硬件的組成及功能 1、控制器       控制器負責從存儲器中取出指令,并對指令進行譯碼。控制器主要是由指令寄存器、譯碼器程序計數器、操作控制器等組成。 2、運算器      運算器又稱算數邏輯單元,是計算機進行算術計算和邏輯計算的部件。 3、存儲器 &nbs…

    Linux干貨 2016-12-06
欧美性久久久久