Linux包管理:rpm/yum/編譯安裝

rpm:安裝,查詢,升級,校驗,卸載

 

Topic:

程序包

rpm管理

yum管理

 

程序包:

 

什么是程序包管理器:

將編譯好的應用程序的各個組成文件打包成一個或幾個程序包文件,從而更方便地實現程序包的安裝、升級、卸載和查詢等管理操作

 

程序包的組成清單:

文件清單

安裝或卸載時運行的腳本

數據庫(公共)

程序包的名稱和版本

依賴關系

功能說明

安裝生成的個文件的文件路徑及校驗信息

 

獲取程序包的途徑

(1) 系統發行版的光盤或官方的文件服務器(或鏡像站點)

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

(2) 項目的官方站點

(3) 第三方組織

a. EPEL

b. rpm包搜索引擎

http://pkgs.org

http://rpmfind.net

http://rpm.pbone.net

(4) 自動動手制作rpm包

 

RPM管理:包括rpm包的安裝、查詢、升級、校驗、卸載

 

rpm包命名格式

name-version-release.arch.rpm

version: major.minor.release

release: rpm包的發行號

release os: 2.el7.i386.rpm

arch: 平臺。例如:i386, x86_64等

 

rpm命令:rpm [OPTIONS] [PACKAGE_FILE]

安裝:-i, –install,在當前系統安裝一個新的rpm軟件包

升級:-U, –update, 檢查并升級指定的軟件包,如果系統沒有此軟件包則執行安裝命令

-F, –freshen,檢查并升級指定的軟件包,如果系統沒有此軟件包不執行安裝命令

卸載:-e, –erase,刪除指定的軟件包

查詢:-q, –query,查詢軟件包的相關信息

校驗:-V, –verify,安裝后校驗指定的軟件包

數據庫維護:–builddb, –initdb

 

安裝功能:

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

常用選項:

rpm -ivh PACKAGE_FILE

-v:verbose,詳細信息

-vv:更詳細的輸出

 

[install-options]:

-h:hash marks,輸出進度條,每個#表示2%的進度

–test:測試安裝,并不是真正的安裝,檢查并報告依賴關系及沖突消息等。

–nodeps:忽略依賴關系,不建議使用

–replacepkgs:替代原來的包重新安裝

–nosigature:不檢查包簽名信息,不檢查包來源合法性

–nodigest:不檢查包完整性

 

升級功能:

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

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

 

注意:

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

(2) 如果某源程序包的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的覆蓋文件,而是把新版本的配置文件重命名后提供

 

卸載命令:

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

–allmatch:卸載所有匹配指定名稱的程序包的各版本

–nodeps:卸載時忽略依賴關系

–test:測試卸載,并不執行真正的卸載命令

 

查詢功能:

rpm {-q|–query} [selection-options] [query-options] PACKAGE_NAME

[selection-options]

PACKAGE_NAME:查詢指定的程序包是否已經安裝

-a, –all:查詢所有已經安裝過的包

-f FILE:查詢指定文件由那個程序包安裝生成

-p, –package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作

–whatprovides CAPABILITY:查詢指定的CAPABILITY由那個程序包提供

–whatrequires CAPABILITY:查詢指定的CAPABILITY被那個包以來

[query-options]

–changelog:查詢rpm包的changelog

-l,–list PACKAGE_NAME:查詢安裝生成文件列表

-i,–info PACKAGE_NAME:程序包相關信息,版本號、大小、所屬的包組等

-c,–configfiles:查詢指定的程序包提供的配置文件

-d,–docfiles:查詢指定的程序包提供的文檔

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

-R,–requires PACKAGE_NAME:查詢指定的程序包的依賴關系

–scripts PACKAGE_NAME:查詢程序包自帶的scripts都有哪些信息

 

常用語法格式:

rpm -qi PACKAGE_NAME

rpm -qf PACKAGE_FILE

rpm -qc PACKAGE_NAME

rpm -ql PACKAGE_NAME

rpm -qd PACKAGE_NAME

rpm -qpl PACKAGE_FILE

rpm -qpi PACKAGE_FILE

rpm -qpc PACKAGE_FILE

 

校驗功能:

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

S file Size differ

M Mode differs (including permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ

包來源合法性驗證和完整性驗證:

來源合法性驗證:

數字簽名:制作者提取加密程序包的特征碼,然后將自己的私鑰加到特征碼后面

完整性驗證:獲取并導入新人的包制作者的秘鑰

對于CentOS 7來說:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-7

驗證:

(1) 安裝此組織簽名的程序時,會自動執行驗證;

(2) 手動驗證:rpm -K PACKAGE_FILE

 

數據庫重建:

rpm管理器數據庫路徑:/var/lib/rpm

查詢操作:通過此處的數據庫進行

獲取幫助:

CentOS 6:man rmp

CentOS 7:man rpmdb

 

rpm {–initdb | –rebuilddb}

–initdb:初始化數據庫,當前無任何數據庫可初始化創建一個新的;當前有時不執行任何操作

–rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建

 

YUM管理:

 

什么是yum

yum的全稱是(Yellow Dog Modifier),是RHEL系列Linux發行版的包管理工具。主要幫助我們解決了安裝時包之間的依賴關系

 

yum repository:yum rempo

存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄下:repodata)

 

文件服務器的類型:

ftp://

http://

nfs://

file:///

 

yum客戶端

配置文件:

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

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

 

倉庫指向的定義:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository

enabled={1|0}

gpgcheck

gpgkey=url

enablegroup={1|0}

failovermethod={roundrobin|priority}

默認為:roundrobin,意為碎金挑選

const=

默認為1000

 

yum命令的用法:

yum [options] [command] [package]

 

* install package1 [package2] […]

* update [package1] [package2] […]

* update-to [package1] [package2] […]

* update-minimal [package1] [package2] […]

* check-update

upgrade [package1] [package2] […]

* upgrade-to [package1] [package2] […]

* distribution-synchronization [package1] [package2] […]

* remove | erase package1 [package2] […]

* autoremove [package1] […]

* list […]

* info […]

* provides | whatprovides feature1 [feature2] […]

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

* makecache [fast]

* groups […]

* search string1 [string2] […]

* shell [filename]

* resolvedep dep1 [dep2] […]

(maintained for legacy reasons only – use repoquery or yum provides)

* localinstall rpmfile1 [rpmfile2] […]

(maintained for legacy reasons only – use install)

* localupdate rpmfile1 [rpmfile2] […]

(maintained for legacy reasons only – use update)

* reinstall package1 [package2] […]

* downgrade package1 [package2] […]

* deplist package1 [package2] […]

* repolist [all|enabled|disabled]

* repoinfo [all|enabled|disabled]

* ?repository-packages ?<enabled-repoid> ?<install|remove|remove-or-reinstall|remove-or-distribu‐

tion-synchronization> [package2] […]

* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

* ? ? ?history ? ? [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll‐

back|new|sync|stats]

* load-transaction [txfile]

* updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-run‐

ning-kernel]

* fssnapshot [summary | list | have-space | create | delete]

* fs [filters | refilter | refilter-cleanup | du]

* check

* help [command]

 

顯示倉庫列表:

repolist [all|enabled|disabled]

 

顯示程序包

list

yum list [all | glob_exp1] [glob_ex2] […]

yum list availabel {available | installedupate} [glob_exp1] […]

 

安裝程序包:

yum install package1 [package2] […]

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

 

 

rpm的安裝包在安裝時可能會和其他程序要有依賴關系。

 

前端工具能自動解決:

yum:RHEL系列系統上rpm包管理器的前端工具

apt-get(apt-cache):Debian系統deb包管理器的前端工具

zypper:SUSE系統rpm包管理器的前端工具

 

 

 

-ivh:rpm包安裝

-Uvh:更新或安裝

-Fvh:

 

yum:

 

編譯:將程序源碼編譯后安裝

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

(2)
mxb93mxb93
上一篇 2017-09-14 15:16
下一篇 2017-09-14 16:04

相關推薦

  • 雖千萬人吾往矣

    哈佛有句名言 “當你覺得為時已晚的時候,恰恰是最早的時候”。這句話給了我雖千萬人吾往矣的勇氣。 之前那份工作懶散 安逸 。當我下定決心從那種環境中走出來的時候還是下了很大的決心。陌生的行業 陌生的環境 陌生的前途。我抱著對這份行業無限的憧憬來到了北京。   作為一個南方人的確有點不適合北方這黃沙漫漫的城市,剛來的一兩天不停的打噴嚏,可能這就是北京歡…

    Linux干貨 2018-03-26
  • linux 學習(2)

    1 linux 常見的文件管理命令都有哪些?其常用的使用方法。 ls 文件列出命令   常見選項  -l 顯示長文本信息          -d 顯示當前目錄信息          -a 顯示所有文件信息     &nb…

    Linux干貨 2016-10-09
  • N23-第一周博客作業

    一、計算機組成 由五大基本部件【運算器 + 控制器 + 儲存器 + 輸入設備 + 輸出設備】組成且遵循馮諾依曼體系,CPU包含運算器和控制器兩大部件。 CPU: 核心部件:運算器、控制器 其他部件:寄存器、緩存、等等 存儲器:內存,RAM(Random Access Memory)隨機訪問存儲器。 Input(輸入設備):下指令,提供數據等,如:硬盤、鍵盤、…

    Linux干貨 2016-09-15
  • 教你使用rpm、yum、編譯等方式安裝軟件

    一、什么是包管理器?     很多人都不知道包管理器的概念,首先我們要了解軟件是如何運行的,我們這里介紹C程序如何實現從代碼到執行程序的過程。         程序源代碼–> 預處理–> 編譯&#8211…

    Linux干貨 2016-03-09
  • 谷歌三大核心技術(三)Google BigTable中文版

    摘要 Bigtable是一個分布式的結構化數據存儲系統,它被設計用來處理海量數據:通常是分布在數千臺普通服務器上的PB級的數據。Google的很多項目使用Bigtable存儲數據,包括Web索引、Google Earth、Google Finance。這些應用對Bigtable提出的要求差異非常大,無論是在數據量上(從URL到網頁到衛星圖像)還是在響應速度上…

    Linux干貨 2015-04-13
  • Linux入門基礎知識

    1、計算機的組成及其功能。 ? ? ? ? 計算機系統主要分為硬件系統和軟件系統兩部分。 ? ? ? ? (1)硬件系統由五部分組成,其中包括: ? ? ? ? 控制器:調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問; ? ? ? ? 運算器:對數據進行加工處理; ? ? ? ? 存儲器:存儲程序、信號、命令,數據等信息,并在需要時提供這些信息…

    Linux干貨 2018-02-25
欧美性久久久久