Linux對包管理闡述

?  Centos/Redhat/Fedora的軟件包,都是rpm后綴的文件。包管理器rpm(Redhat packages manager)

  ?linux的哲學思想是簡單命令解決復雜任務,因此每個軟件的功能較單一,所以各種包之間有著復雜的依賴關系,為了解決這種可以使用前端工具:

前端管理工具,自動解決依賴關系。

01、rpm包命名格式

二進制格式  name-VERSION.tar.gz

VERSION的格式: major.minor.release.os.arch ?

arch:i386,x64(amd64),ppc(power pc),noarch(java編寫的,可以跨平臺)

os:e17(紅帽七) os:el6(紅帽6)

eg:

主版本號為3,次版本號為0,發行號為2,編譯次數為1,系統為centos7,平臺為x64的rpm包?

redis-3.0.2-1.centos7.x64.rpm

02、版本類型

fc ? ? ? final candidate ?最終版

alpha 內測版

beta 公測版

rc ? ? 發布候選版

release 正式版


程序包管理器:

源代碼---> 目標二進制格式----> 組織成為一個或有限幾個“包”文件,實現軟件的安裝,升級,卸載,查詢,校驗

后端管理工具:?

debian:dpt,dpkg,".deb"

redhat: rpm,".rpm" ? yum

S.u.S.E:rpm ,".rpm" 源于rpm但是組織結構不同,并不能和redhat兼容

Ubantu:是debian的分支,包管理機制一樣

Gentoo;parts

Archlinux:linux界的新貴(極簡哲學思想)


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

apt-get:.deb包管理器的前端工具

zypper:suse的rpm包管理工具

dnf:Fedora20+系統上的rpm包管理器的前端工具,功能更強大,未來centos中也可能使用

?03、常見的Mirrors

程序包組成包管理器的功能,將編譯好的應用程序的各組成文件打包成一個或幾個程序包文件

?

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

http://mirrors.aliyun.com

http://mirrors.sohu.com

EPEL(較為可靠的組織):阿里云等中的epel目錄

2.對rpm單個包下載

http://pkgs.org

http://rpm.pbone.net

http://rpmfind.net

04、RPM參數含義

CentOS系統上的rpm命令管理程序包,安裝,升級,卸載,查詢和校驗,數據庫維護

rpm命令: rpm [OPTIONS] ?[PACKAGE_FILE]

安裝: -i,--install

升級:-U,--updata,-F,freshen

卸載:-e,--erase

查詢:-q,--query

校驗: -V,--verify

數據庫維護:--builddb,--initdb

1.安裝


rpm -ivh PACKAGE_FILE

通用選項:

?-v:verbose 顯示詳細信息,

?-vv:更詳細的輸出

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

?[install-options]:

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

--test:僅是測試,并不真的安裝

--nodeps:忽略依賴關系,可以讓你安裝,但是不一定可以用。你建議使用

--force ? ? ? ?強制安裝 ? ??

--replacepkgs;重新安裝

如果自己不小心錯誤修改了某些配置文件,想要安裝的初始文件,可以通過這個命令但是要把改變過的文件刪除,否則重新安裝不會替換它

--nodigest:不檢查程序包的完整性

--nosignature:不檢查包簽名信息,不檢查來源合法性

?

注意: rpm可以自帶腳本;

四類:--noscripts,不執行任何腳本

preinstall:安裝過程開始之前運行的腳本,%pre

postinstall:安裝過程完成之后運行的腳本,%post?

peruninstall:卸載過程真正開始執行之前運行的腳本,

postuninstall:卸載過程完成之后運行的腳本

?

2.升級:


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

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

?

-U:升級或安裝,有則升級,無則安裝

-F : ?升級,如果事先沒有也不會安裝

--oldpackage:降級;

--force:強制升級

常見用法:

rpm ?-Uvh PACKAGE_FILE....

rpm ?-Fvh ?PACKAGE_FILE

?注意:

? 1.不要對內核做升級操作;linux支持多內核版本共存,因此,直接安裝新版本內核

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

(FILENAME.rpmnew)后提供(刪除舊的,新的自動生成)

?

3.卸載:

rpm {-e|--erase} [--allmatchs][--nodeps][--noscripts][--test]PACKAGE_NAME

?

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

--nodeps: 忽略依賴關系,即使該文件被依賴,也會卸載

--test: 僅是測試,并不真的卸載

?

4.查詢:

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

?

[select-options]:

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

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

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

? ? ? eg: ?rpm -qpi ? PACKAGE.NAME: 不安裝包查看包的具體信息

rpm ?-qlp ? PACKAGE.NAME:不安裝包直接查看生成的文件

?rpm ?-qcp ?PACKAGE.NAME:不安裝包查看包會生成的配置文件

--whatprovides CAPABILITY:查看指定的CAPABLITY由哪個程序包提供

--whatrequires CAPABLITY:查詢指定的CAPABLITY被哪個包所依賴

[query-options]

--changlog;查詢rpm包的changlog;

-l,--list:列出該安裝包生成的文件列表

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

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

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

--provides:列出指定的程序包提供的所有的CAPABLITY,提供了某個文件也是能力

-R,--requires:查詢指定包的依賴關系

--scripts:查看程序包自帶的腳本程序

?eg:

[root@localhost ~]# rpm -q --provides bash ? ? ? bash提供的能力

config(bash) = 4.1.2-40.el6

bash = 4.1.2-40.el6

bash(x86-64) = 4.1.2-40.el6

[root@localhost ~]# rpm -q --whatprovides ‘config(bash)‘ ? ? ?;‘config(bash)‘ 這個能力是誰提供的

bash-4.1.2-40.el6.x86_64

[root@localhost ~]# rpm -q --whatrequires ‘config(bash)‘ ? ? ? ;‘config(bash)‘ ? 這個能力被誰依賴

bash-4.1.2-40.el6.x86_64

05、RPM常見用法

rpm -qi ? PACKAGE.NAME: 查詢安裝包的具體信息

rpm ?-ql ? PACKAGE.NAME:列出安裝包生成的文件

rpm -qf ? FILE:查詢某個文件是由那個安裝包提供的

? eg:[root@localhost ~]# rpm -qf /usr/share/man/man1/wait.1.gz?

bash-4.1.2-40.el6.x86_64

rpm ?-qc ?PACKAGE.NAME:查看安裝包生成的配置文件

rpm ?-qa ?:已經安裝的所有包

?

不安裝包直接查看:

eg: ?rpm -qpi ? PACKAGE.NAME: 不安裝包查看包的具體信息

rpm ?-qlp ? PACKAGE.NAME:不安裝包直接查看生成的文件

rpm ?-qcp ?PACKAGE.NAME:不安裝包查看包會生成的配置文件

06、RPM效驗

校驗務必保證公鑰是安全的,合法的 ?

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

?eg: rpm -Va

? S file Size differs

? M Mode differs (includes 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

?eg:

?[root@localhost ~]# rpm -V zsh

S.5....T. ? ?/usr/share/zsh/4.3.11/scripts/newuser ? 這里對應的就是上面的信息,.表示沒有變化

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

合法性:一個包制作者利用單向加密數據,然后利用私鑰對數據的MD5加密,這樣大家獲得公鑰后就可以驗證這個包的來源了

完整性:自己利用單向加密方法計算數據的MD5,然后比對md5碼比對,如果一致,說明數據內容沒有被修改。

? [root@localhost ~]# rpm -K /media/cdrom/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

/media/cdrom/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

[root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-6

查看導入的秘鑰文件

[root@localhost ~]# rpm -qa gpg-pubkey*

?gpg-pubkey-c105b9de-4e0fd3a3

刪除導入的文件:

[root@localhost ~]# rpm -e gpg-pubkey-c105b9de-4e0fd3a3

數據庫的重建:?

rpm {--initdb|--rebuilddb}[--depath DIRECTORY][--root DIRECTORY]

?--initdb:初始化數據庫,當前無任何數據庫可實驗化創建一個新的;當前有時不執行任何操作,不要輕易操作

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

--depath:指定數據庫的路徑

?--root:指定根的路徑

?

轉載于:https://www.cnblogs.com/xiaochina/p/5915192.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253885.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253885.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253885.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨時鐘域電路設計——亞穩態及雙鎖存器

一、同步電路 定義:電路中所有受時鐘控制的單元,全部由一個統一的時鐘控制。 優點:在同步設計中,EDA工具可以保證電路系統的時序收斂,避免電路設計中的競爭冒險。 缺點:時鐘樹綜合需要加入大量延遲單元&…

linux setsockopt詳解

1.closesocket(一般不會立即關閉而經歷TIME_WAIT的過程)后想繼續重用該socket: BOOL bReuseaddrTRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 2. 如果要已經處于連接狀態的soket在調用closes…

[TOOLS] 移動端調試進行時 - whistle

1、本地安裝、啟動whistle 安裝實操請查看官方文檔不贅述 復制代碼 2、手機設置代理 實操請查看官方文檔 !!!注意:代理ip填寫whistle右上角online選項中的ip 復制代碼 3、whistle上設置對應rules、weinre whistle設置代理(!!!注意支持tunnel協議): rules…

函數動態參數實現format

變量賦值一種是字符串格式化,一種是通過format的方式 1.字符串格式化 s"i am %s,age %d"%(Jasper,23)print(s)打印輸出:i am Jasper,age 232.format格式化 s"i am {name},age {age}".format(namejasper,age23)print(s)或 s2"i …

跨時鐘域電路設計——單bit信號

前面提到了簡單的雙電平鎖存器,下面是一些單bit同步電路。 一、慢時鐘域向快時鐘域 邊沿檢測同步器 將慢時鐘域的脈沖搬移并縮小為快時鐘域的脈沖。 既可以檢測上升沿,也可以檢測下降沿。 如上圖,慢時鐘下一個有效脈沖的最短周期為慢時鐘的…

數據同步 rsync+notify架構

rsync 同步命令,非常好用 notify是監控本地文件的變化的 、安裝配置 1. 安裝rsync,inotify-tools sudo apt-get install rsync inotify-tools 2. 拷貝rsync配置文件 mkdir /etc/rsync cp /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsync/ 3. 服…

OC_KVC與KVO簡單介紹

KVC KVC概述 KVC 即 Key-value coding 鍵值編碼,是指iOS的開發中,可以允許開發者通過Key名直接訪問對象的屬性,或者給對象的屬性賦值。 KVC案例 interface Person : NSObjectproperty (nonatomic,assign) int age; property (nonatomic,copy)…

C語言100例01 PHP版(練習)

題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。 代碼: 1 for($i1;$i&l…

嵌入式根文件系統制作

1:文件系統分類: 基于flash的文件系統:flash有兩種,一種是NOR,另一種NAND。NOR型 FLASH主要用于存放程序。NAND型 FLASH主要用于存放數據。NOR的特點是可在芯片內執行。這樣應用程序可以直接在flash內存內運行,不必再把代碼讀到…

跨時鐘域電路設計——結繩法

信號從快時鐘域到慢時鐘域過渡時,慢時鐘可能無法對快時鐘變化太快的信號進行采樣。 之前的同步器法對兩個時鐘間的關系有要求,結繩法適用于任何時鐘域之間的過渡。 結繩法的原理是將快時鐘信號的脈沖周期延長,等到慢時鐘周期采樣后再“解繩”…

我之理解---計時器setTimeout 和clearTimeout

今天在寫個圖片切換的問題 有動畫滯后的問題,才動手去查setTimeout 和clearTimeout。之前寫的圖片播放器也有類似的問題,有自動start按鈕 和stop按鈕, 其他都正常,問題出在每次多次快速的點擊start按鈕時,圖片播放的速…

002服務提供者Eureka

1、POM配置 和普通Spring Boot工程相比&#xff0c;僅僅添加了Eureka、Spring Boot Starter Actuator依賴和Spring Cloud依賴管理 <dependencies><!--添加Eureka Server依賴--><dependency><groupId>org.springframework.cloud</groupId><art…

使用Busybox構造cramfs根文件系統

使用Busybox構造cramfs根文件系統 11.1、下載Busybox&#xff0c;如果系統中沒有mkcramfs工具則還要下載mkcramfs壓縮工具。本文件系統使用Busybox-1.10.1&#xff0c;cramfs-1.1。壓縮文件Busybox-1.10.1.tar.bz2&#xff0c;cramfs-1.1.tar.gz。 22.解壓文件&#xff1a; tar…

關于二維碼分塊上色(彩色二維碼)的算法研究

原文:關于二維碼分塊上色&#xff08;彩色二維碼&#xff09;的算法研究眾所周知&#xff0c;二維碼通常是黑白的&#xff0c;而且是由若干個長方形或正方形小塊平鋪而成。但從人們的審美角度來看&#xff0c;常見的黑白二維碼不免讓人審美疲勞。本文試著從分塊上色的角度對二維…

20145309信息安全系統設計基礎第12周學習總結后篇

指針與聲明 聲明 1、C語言中變量的聲明 類型&#xff08;type&#xff09; 聲明符&#xff08;declarator&#xff09; 2、最簡單的聲明是變量 3、指針數組 指針數組是一個數組數組里的元素都是指針例&#xff1a;int *daytab[13]4、數組指針 數組指針是一個指針指針指向一個類…

跨時鐘域電路設計——多bit信號FIFO

多個bit信號的跨時鐘域僅僅通過簡單的同步器同步時不安全的。 如下圖&#xff1a; 雖然信號都同步到目的時鐘域&#xff0c;可完成的功能卻與設計的初衷不相符。 解決方案之一為對信號進行格雷碼編碼&#xff0c;但此方案只適用于連續變化的信號。另一種方案為增加新的控制信號…

嵌入式linux系統中設備驅動程序

嵌入式linux系統中設備驅動程序是內核的一部分&#xff0c;完成對設備初始、讀寫操作和控制等功能。驅動程序隱藏了硬件設備的具體細節&#xff0c;對不同的設備提供一致的接口&#xff0c;這些接口通過file_Operation結構來定義&#xff0c;設計驅動程序的大部分工作就是根據硬…

WPF 打印實例

原文:WPF 打印實例在WPF 中可以通過PrintDialog 類方便的實現應用程序打印功能&#xff0c;本文將使用一個簡單實例進行演示。首先在VS中編輯一個圖形&#xff08;如下圖所示&#xff09;。 將需要打印的內容放入同一個<Canvas>中&#xff0c;并起名為“printArea”&…

mongodb 物理刪除數據

剛開始用mongodb的時候&#xff0c;感覺很好用&#xff0c;速度很快&#xff0c;不過后面就遇到一個問題&#xff0c;數據物理內存一直增加&#xff0c;刪除表也不管用。 然后網上找了各種辦法&#xff0c;最后發現一個辦法管用&#xff0c;就是物理刪除存儲數據。 操作如下&am…

計數排序、桶排序和基數排序

計數排序 當輸入的元素是 n 個 0 到 k 之間的整數時&#xff0c;它的運行時間是 Θ(n k)。計數排序不是比較排序&#xff0c;排序的速度快于任何比較排序算法。 由于用來計數的數組C的長度取決于待排序數組中數據的范圍&#xff08;等于待排序數組的最大值與最小值的差加上1&a…