程序包管理

程序包管理

Linux系統下有一系列系統管理程序包的工具。這些工具可以對程序包進行安裝,升級,卸載,校驗,查詢等等操作;來更方便我們在Linux下對程序包的管理,常用的就屬rpmyum了,下面就詳細介紹下者兩種工具。當然,除了這兩種,還有deb也是使用廣泛的一種工具。現在,就先說說rpm吧。

一、rpm

    rpmredhat公司牽頭開發的一款包管理工具,全稱redhat package managerrpm包是將程序源碼用rpmbuild命令加工打包成的,rpmbuild可以根據自己的需要只將自己需要的功能打包成rpm包。節省用源碼安裝方式每次都要編譯的過程,rpm包裏包含可執行的二進制文件。然後,利用rpm命令就可以安裝,卸載管理這個打好的rpm包了。

1rpm功用

打包,安裝,卸載,升級,查詢,校驗

2rpm分包機制

打包: rpmbuild specs文件

    分包機制:上面說到rpmbuild可以根據自己需要只將自己需要的功能打包成rpm包,這就是rpm的分包機制。

    例如:一個APP源碼包爲testapp-VERSION.tar.gz,這個源碼包中包含有這個APP提供的所有功能,但是我只需要他的主功能或者只需要這個app的開發模塊功能就OK。那就可以指定主功能打包成核心包testapp-VERSION.rpm和開發模塊功能打包成支包testapp-devel-VERSION.rpm這樣兩個包。這樣的例子有很多。

3rpm包的命名規則

name-VERSION-RELEASE.ARCH.rpm

name:包名

VERSION:版本號,指對應的源代碼版本號

    1.0.0  主版本號,次版本號,發佈版本號

RELEASErpm的修訂次數,發佈版本。與VERSION對應的源代碼版本號無關

ARCHrpm包所支持的硬件平臺。有x86_64,i386

4rpm包的獲取方式

a、系統光盤或鏡像中提供的程序包

bFedora-EPEL

c、程序項目的官方站點

d、搜索引擎

       http://rpmfind.net

       http://rpm.pbone.net

       http://pkgs.org

5rpm命令

a、安裝

  rpm {-i|--install} [install-options] PACKAGE_FILE ...

常用命令選項:rpm -ivh package

  -i or --install:安裝選項

  -v:顯示安裝過程;-vv-vvv 更詳細的安裝細節

  -h:顯示安裝進度

  --nodeps:忽略依賴關係安裝

  --replacepkgs:重裝程序包


b、升級

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

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

          兩個選項的區別:

  -U:如果有舊版程序包,則升級;如果沒有,則安裝。

  -F:如果有舊版程序包,則升級;如果沒有,不安裝。

  *其他一起使用的選項還有-v-h--nodeps 與安裝時代表的意義相同

  --oldpackage:降級,恢復舊版本

  --force:會對其他程序產生影響時,強制升級

c、卸載

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

d、查詢

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

  查詢選擇:

    -qa:查詢本機已經安裝的所有程序包

    -qf filename:查詢文件由那個程序包安裝生成

    -qc:查詢指定程序包安裝生成的配置文件

    -qd:查詢指定程序包安裝生成的文檔

    -qi:查詢指定程序的相關信息

    -ql:查詢指定程序安裝生成的所有文件列表

    -q --scripts:查詢程序相關的腳本

    preinstall:安裝前腳本

    postinstall:安裝後腳本

    preuninstall:卸載前腳本

    postuninstall:卸載後腳本

e、校驗

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

 導入祕鑰:

    rpm --import /path/to/key_file

 校驗:rpm -K /path/to/rpm_file

二、yum

    yum全稱Yellow dog updateryumpython開發寫成,是爲了提高rpm軟件包安裝性而開發的一種軟件包管理器。yum的宗旨是自動化的升級,安裝,移除rpm包收集rpm包的相關信息,檢測並幫助用戶自動解決rpm包依賴性。yum的理念是使用一箇中心倉庫管理程序包之間的關係,並根據計算的軟件依賴關係進行相關的升級,安裝,刪除等操作,減少用戶頭痛的依賴問題。

    yum的軟件倉庫,可以是httpftp站點,也可以是本地軟件池。但必須包含rpmheader信息,header包含了rpm的各種信息,包括描述,功能,提供的文件,依賴性等。正是因此,yum才能自動的完成許多工作。

軟件倉庫分類

    ftp://hostname/path/to/repo

    http://hostname/path/to/repo

    file:///path/to/repo

yum配置文件

/etc/yum.conf

定義全局配置:對所有倉庫都適用

/etc/yum.repos.d/*.repo

一個文件通常用於一個或一組功能相近或相關的倉庫

yum命令

yum [options] [command] [package ...]

command

安裝:install

卸載:remove,erase

升級:update

查詢:info

      list all/installed/availiable

      provides /path/to/file  查詢文件由那個包安裝生成

重新安裝:reinstall

降級:downgrade

清理緩存:clean packages/metadata/expire-cache/rpmdb/plugins/all

生成緩存:makecache


包組:

查詢列表:grouplist

查詢信息:groupinfo "grp_name"

安裝包組:groupinstall "grp_name"

卸載包組:groupmove "grp_name"


倉庫

查詢列表:repolist all/enabled/disabled

查詢信息:repoinfo all/enabled/disabled

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章