日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux对包管理阐述

發(fā)布時(shí)間:2023/12/13 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux对包管理阐述 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

前端管理工具,自動(dòng)解決依賴關(guān)系。

01、rpm包命名格式

二進(jìn)制格式  name-VERSION.tar.gz

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

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

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

eg:

主版本號(hào)為3,次版本號(hào)為0,發(fā)行號(hào)為2,編譯次數(shù)為1,系統(tǒng)為centos7,平臺(tái)為x64的rpm包?

redis-3.0.2-1.centos7.x64.rpm

02、版本類型

fc ? ? ? final candidate ?最終版

alpha 內(nèi)測版

beta 公測版

rc ? ? 發(fā)布候選版

release 正式版


程序包管理器:

源代碼---> 目標(biāo)二進(jìn)制格式----> 組織成為一個(gè)或有限幾個(gè)“包”文件,實(shí)現(xiàn)軟件的安裝,升級,卸載,查詢,校驗(yàn)

后端管理工具:?

debian:dpt,dpkg,".deb"

redhat: rpm,".rpm" ? yum

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

Ubantu:是debian的分支,包管理機(jī)制一樣

Gentoo;parts

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


yum:rhel系列系統(tǒng)上的rpm包管理器的前端工具

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

zypper:suse的rpm包管理工具

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

?03、常見的Mirrors

程序包組成包管理器的功能,將編譯好的應(yīng)用程序的各組成文件打包成一個(gè)或幾個(gè)程序包文件

?

1.系統(tǒng)發(fā)行版的光盤或官方的文件服務(wù)器(或鏡像站點(diǎn))

http://mirrors.aliyun.com

http://mirrors.sohu.com

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

2.對rpm單個(gè)包下載

http://pkgs.org

http://rpm.pbone.net

http://rpmfind.net

04、RPM參數(shù)含義

CentOS系統(tǒng)上的rpm命令管理程序包,安裝,升級,卸載,查詢和校驗(yàn),數(shù)據(jù)庫維護(hù)

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

安裝: -i,--install

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

卸載:-e,--erase

查詢:-q,--query

校驗(yàn): -V,--verify

數(shù)據(jù)庫維護(hù):--builddb,--initdb

1.安裝


rpm -ivh PACKAGE_FILE

通用選項(xiàng):

?-v:verbose 顯示詳細(xì)信息,

?-vv:更詳細(xì)的輸出

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

?[install-options]:

-h:hash marks 輸出進(jìn)度條,每個(gè)#表示2%的進(jìn)度

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

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

--force ? ? ? ?強(qiáng)制安裝 ? ??

--replacepkgs;重新安裝

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

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

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

?

注意: rpm可以自帶腳本;

四類:--noscripts,不執(zhí)行任何腳本

preinstall:安裝過程開始之前運(yùn)行的腳本,%pre

postinstall:安裝過程完成之后運(yùn)行的腳本,%post?

peruninstall:卸載過程真正開始執(zhí)行之前運(yùn)行的腳本,

postuninstall:卸載過程完成之后運(yùn)行的腳本

?

2.升級:


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

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

?

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

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

--oldpackage:降級;

--force:強(qiáng)制升級

常見用法:

rpm ?-Uvh PACKAGE_FILE....

rpm ?-Fvh ?PACKAGE_FILE

?注意:

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

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

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

?

3.卸載:

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

?

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

--nodeps: 忽略依賴關(guān)系,即使該文件被依賴,也會(huì)卸載

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

?

4.查詢:

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

?

[select-options]:

-a,-all:查詢所有已經(jīng)安裝的包

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

-p,--package PACKAGE_FILE:用于實(shí)現(xiàn)對未安裝的程序包執(zhí)行查詢操作

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

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

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

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

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

[query-options]

--changlog;查詢r(jià)pm包的changlog;

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

-i,--info:程序包相關(guān)的信息,版本號(hào),大小,所屬的包組等

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

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

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

-R,--requires:查詢指定包的依賴關(guān)系

--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)‘ 這個(gè)能力是誰提供的

bash-4.1.2-40.el6.x86_64

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

bash-4.1.2-40.el6.x86_64

05、RPM常見用法

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

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

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

? 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 ?:已經(jīng)安裝的所有包

?

不安裝包直接查看:

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

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

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

06、RPM效驗(yàn)

校驗(yàn)務(wù)必保證公鑰是安全的,合法的 ?

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 ? 這里對應(yīng)的就是上面的信息,.表示沒有變化

包來源合法性驗(yàn)證和完整性驗(yàn)證:

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

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

? [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

查看導(dǎo)入的秘鑰文件

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

?gpg-pubkey-c105b9de-4e0fd3a3

刪除導(dǎo)入的文件:

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

數(shù)據(jù)庫的重建:?

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

?--initdb:初始化數(shù)據(jù)庫,當(dāng)前無任何數(shù)據(jù)庫可實(shí)驗(yàn)化創(chuàng)建一個(gè)新的;當(dāng)前有時(shí)不執(zhí)行任何操作,不要輕易操作

--rebuilddb:重新構(gòu)建,讀取當(dāng)前系統(tǒng)上所有已經(jīng)安裝過的程序包進(jìn)行重新創(chuàng)建

--depath:指定數(shù)據(jù)庫的路徑

?--root:指定根的路徑

?

轉(zhuǎn)載于:https://www.cnblogs.com/xiaochina/p/5915192.html

總結(jié)

以上是生活随笔為你收集整理的Linux对包管理阐述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。