軟件包管理

一、軟件管理程序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
下一篇 2016-08-24

相關推薦

  • 文件管理命令及通配符練習

    1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例 按增刪改查的思路來 增: touch filename:這個命令本身不是用來新建文件的,它是用來修改文件的時間屬性,不過默認情況時當filename不存在時,它會默認建立一個空文件 mkdir: 常用參數 -p:相當于遞歸創建目錄 -v:顯示出創建過程中的信息 cp : 常用參數 -r:…

    Linux干貨 2016-11-06
  • N25-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@han ~]# cp /etc/rc.d/rc.sysinit /tmp [root@han ~]#&n…

    Linux干貨 2017-02-16
  • Linux第三周

    一.正則表達式和擴展正則表達式 1.首先有各種工具來對文本進行的查看,分析,統計   cat 命令:查看文本的工具    cat主要有三大功能:1.一次顯示整個文件。$ cat filename2.從鍵盤創建一個文件。$ cat > filename     只能創建新文件,不能編輯已有文件.…

    2017-06-04
  • centos7.3下配置LAMP實現WordPress博客

      在同一臺主機上搭建,首先需要安裝的軟件包Apache 、MariaDB 、PHP 一.安裝LAMP 這里我們采用yum的方式:yum install httpd mariadb-server php php-mysql -y 二.創建虛擬主機 1.虛擬主機配置文件: 2.創建所需的目錄: mkdir /var/www/wordpres…

    2017-08-07
  • RAID詳解

    測試機centos6.7 x86_64 一、RAID是什么     簡單描述:RAID(Redundant Array of indenpensive Disk)獨立磁盤冗余陣列:磁盤陣列是把多個磁盤組成一個陣列,當作單一磁盤使用,它將數據以分段或條帶(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁盤一起…

    2016-02-14
  • 第六周 N21 總有刁民想害朕

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;    %s/\(^[[:space:]]\)/#\1/ 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.…

    Linux干貨 2016-08-08
欧美性久久久久