第六周

1、每12小時(shí)備份并壓縮/etc/目錄至/backup目錄中,保存文件名稱格式為,"etc-年-月-日-時(shí)-分.tar.gz"

? * /12 * * * root /etc -cvjf /backup -$(etc+%Y-%m-%d-%H-%M).tar.gz

2、rpm包管理功能總結(jié)以及實(shí)例應(yīng)用演示。

? RPM包管理與YUM的使用總結(jié)

一碴倾、rpm包管理

簡(jiǎn)介:

在GNU/Linux操作系統(tǒng)中,RPM和DPKG為最常見的兩類軟件包管理工具,他們分別應(yīng)用于基于RPM軟件包的Linux發(fā)行版本和DEB軟件包的Linux發(fā)行版本跌榔。軟件包管理工具的作用是提供在操作系統(tǒng)中安裝异雁,升級(jí),卸載需要的軟件的方法僧须,并提供對(duì)系統(tǒng)中所有軟件狀態(tài)信息的查詢纲刀。

? ? RPM (The RPM PackageManager),是由Red Hat公司開發(fā)的一個(gè)Linux軟件包安裝與管理程序担平,是以一種數(shù)據(jù)庫(kù)記錄的方式來(lái)將所需要的軟件安裝到你的Linux系統(tǒng)的一套管理機(jī)制示绊。用戶可以方便地在Linux系統(tǒng)中安裝、升級(jí)和刪除軟件暂论,以及在一個(gè)統(tǒng)一的界面中對(duì)所有的RPM軟件包進(jìn)行管理面褐。

RPM軟件包分為二進(jìn)制包(Binary)、源代碼包(Source)和Delta包三種取胎。二進(jìn)制包(.rpm)可以直接安裝在計(jì)算機(jī)中展哭,而源代碼包將會(huì)由RPM自動(dòng)編譯、安裝闻蛀。源代碼包經(jīng)常以src.rpm作為后綴名匪傍。

特點(diǎn):

將你要安裝的軟件先編譯過(guò),并且打包成為RPM機(jī)制的包裝檔案循榆,透過(guò)包裝好的軟件里頭默認(rèn)的數(shù)據(jù)庫(kù)記錄析恢,記錄這個(gè)軟件要安裝的時(shí)候必須具備的相依屬性軟件墨坚,當(dāng)安裝在你的Linux主機(jī)時(shí)秧饮,RPM會(huì)先依照軟件里面的數(shù)據(jù)查詢Linux主機(jī)的相依屬性軟件是否滿足,若滿足則予以安裝泽篮,若不滿足產(chǎn)則不予安裝盗尸。那么安裝的時(shí)候就將該軟件的信息整個(gè)寫入RPM的數(shù)據(jù)庫(kù)中,以便未來(lái)的查詢帽撑、驗(yàn)證與反安裝泼各。

rpm包的命令格式

? ? ? ? ? ? ? Name-Version-Relase.Arch.rpm

? ? ? ? ? ? ? ? ? ? eg:bash-4.1.2-15.el6_4.x86_64

Name:軟件的名稱,bash

Version: 版本信息亏拉。同源代碼(4.1.2)?

源代碼的version:major.minor.release

Release: rpm自身釋放的發(fā)行號(hào)(次數(shù))扣蜻,通常是編譯的次數(shù)。與程序源碼的發(fā)行號(hào)無(wú)關(guān)及塘,僅用于標(biāo)識(shí)對(duì)rpm包不同制作的修訂莽使;同時(shí),release還包含此包適用的OS

Arch:硬件平臺(tái)笙僚,

? ? ? x86: i386, i486, i586, i686等芳肌;

? ? ? x86_64: 針對(duì)64位的CPU進(jìn)行優(yōu)化編譯設(shè)定

? ? ? powerpc: ppc

? ? ? noarch: 依賴于虛擬機(jī),沒有任何硬件等級(jí)上的限制。

例如:bash-4.2.3-3.centos5.x86_64.rpm

獲取rpm包的途徑:

? ? ? 1亿笤、發(fā)行的光盤或站點(diǎn)服務(wù)器

? ? ? ? ? 鏡像:

? ? ? ? ? ? http://mirrors.163.com

? ? ? ? ? ? http://mirrors.sohu.com

? ? ? ? ? ? http://centos.ustc.edu.cn/centos/

? ? ? 2翎迁、項(xiàng)目的官網(wǎng)

? ? ? ? ? ? 源代碼

? ? ? ? ? ? rpm包

? ? ? 3、很多第三方機(jī)構(gòu)或個(gè)人制作并公開發(fā)布許多rpm包

? ? ? ? ? ? http://rpmfind.net

? ? ? ? ? ? http://rpm.pbone.net

? ? ? 4净薛、可靠的途徑:EPEL

? ? ? ? EPEL是Extra Packages forEnterprise Linux的縮寫汪榔,企業(yè)版 Linux 附加軟件包眉厨。https://fedoraproject.org/wiki/EPEL/zh-cn

rpm包的合法性驗(yàn)證:

包制作者制作完成之后會(huì)附加數(shù)字簽名于包上骤公;

來(lái)源合法性

包的完整性

包的制作者使用單向加密提取原始數(shù)據(jù)的特征碼酸些,而后使用自己的私鑰加密這段特性碼砰识,附加原始數(shù)據(jù)后面黍聂。

驗(yàn)證過(guò)程:

前提:必須有可靠機(jī)制獲取到包制作者的公鑰望侈;

1琳彩、使用制作者的公鑰解密加密的特征碼秀菱,能解密則意味著來(lái)源合法柿菩;

2戚嗅、使用與制作者同樣的意向加密算法提取原始數(shù)據(jù)的特征碼,并與解密出來(lái)的特征作比對(duì)枢舶,相同懦胞,則意味著完整性沒問(wèn)題;

rpm命令使用方法:

RPM軟件包的安裝凉泄、刪除躏尉、升級(jí)、查看和驗(yàn)證等所有的操作都由rpm這一命令來(lái)進(jìn)行的后众。rpm命令有12種模式胀糜,不同模式有不同的命令模式,能完成不同的管理功能蒂誉。常用的模式的有:

安裝模式:rpm? {-i |--install}? [install-options]? PACKAGE_File …

升級(jí)模式:rpm? {-U|--upgrade}? [install-options]? PACKAGE_File …

卸載(刪除)模式:rpm {-e|--erase} [erase-options]PACKAGE_Name …

查詢模式:rpm? {-q |--query }? [select-options]? [query-options]

驗(yàn)證模式:rpm? {-V |--verify}? [select-options]? [verify-options]

一般選項(xiàng):可以用于rpm命令的所有模式教藻。

? ? ? -h :用#顯示完成的進(jìn)度。

? ? ? --version:顯示當(dāng)前使用的RPM版本右锨。

選擇選項(xiàng):select-options括堤,用于查詢和驗(yàn)證模式。

? ? ? -a:查詢所安裝的軟件包绍移。

? ? ? -f悄窃,--file FILE :查詢擁有<文件>的軟件包,即是哪一個(gè)軟件包安裝的<解文件>蹂窖。

查詢選項(xiàng):query-options轧抗,可用于查詢和驗(yàn)證模式。

? ? ? -i恼策,--info:顯示軟件包的信息鸦致,包括名稱潮剪、版本、描述信息分唾。

? ? ? -l抗碰,--list:列出這個(gè)軟件包內(nèi)所包含的文件。

? ? ? --provides:顯示這個(gè)軟件包所提供的功能绽乔。

? ? ? -R弧蝇,--requires:查詢安裝該軟件包所需要的其他軟件包。

? ? ? -s折砸,--state:列出軟件包中所有文件的狀態(tài)看疗。

驗(yàn)證選項(xiàng):verify-options,只能用于驗(yàn)證模式睦授。

? ? ? --nodeps:不驗(yàn)證依賴的軟件包两芳。

? ? ? --nofiles:不驗(yàn)證軟件包文件的屬性。

安裝選項(xiàng):install-options去枷,用于安裝模式和升級(jí)模式怖辆。

? ? ? --force:同--replacepkgs,--replacefiles一樣,就算要安裝的軟件版本已經(jīng)安裝在系統(tǒng)上删顶,或者是系統(tǒng)上現(xiàn)在的版本比要安裝的版本高竖螃,依然強(qiáng)制覆蓋安裝。

? ? ? --nodeps:使用RPM安裝前逗余,RPM會(huì)檢查該軟件包的依賴關(guān)系特咆,即正確運(yùn)行該軟件包所需的其他軟件是否已經(jīng)安裝。使用該選項(xiàng)將忽略軟件包所依賴的其他軟件強(qiáng)制安裝录粱。但不推薦這種做法腻格,因?yàn)檫@樣安裝的軟件大部是不能運(yùn)行的。

? ? ? --test:模擬安裝关摇,軟件包并不會(huì)實(shí)際安裝到系統(tǒng)中荒叶,只是檢查并顯示可能存在的沖突碾阁。

刪除選項(xiàng):erase-options输虱,只能用于刪除模式。

? ? ? --nodeps:忽略其他依賴該軟件包的軟件脂凶,強(qiáng)制刪除該軟件包宪睹。正常情況下不建議這樣做,因?yàn)閯h除軟件包后蚕钦,其他相關(guān)的軟件就不能運(yùn)行了亭病。

? ? ? --test:不真正刪除,只是模擬嘶居。

rpm包管理器的常見使用場(chǎng)景

安裝軟件包:-i 罪帖,--install

軟件包的安裝分為兩個(gè)階段促煮,首先是安裝準(zhǔn)備階段,在準(zhǔn)備階段會(huì)檢查磁盤空間整袁、軟件是否已安裝菠齿、依賴軟件包是否已安裝等,準(zhǔn)備階段完成后才會(huì)進(jìn)行軟件包的安裝坐昙。

? ? ? -i绳匀,--install 安裝新軟件包≌停可用于內(nèi)核的升級(jí)和安裝疾棵,可以同時(shí)保留老內(nèi)核版本和新版本兩個(gè)內(nèi)核。

-h痹仙,--hash 用#(hash)符顯示rpm安裝過(guò)程

-v是尔,--verbose詳述安裝過(guò)程

-vv ,顯示調(diào)試信息

常用組合選項(xiàng):-ivh

--test:安裝準(zhǔn)備階段开仰,模擬安裝嗜历,檢查為了檢查一個(gè)軟件包的安裝是否會(huì)有沖突,可以事先使用--test選項(xiàng)進(jìn)行模擬安裝抖所,例如

[root@stu19 Packages]# rpm-ivh --test zsh-4.3.10-7.el6.x86_64.rpm

Preparing...? ? ? ? ? ? ? ? ###########################################[100%]

[root@stu19 Packages]# rpm-ivh zsh-4.3.10-7.el6.x86_64.rpm

warning:zsh-4.3.10-7.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de:NOKEY

Preparing...? ? ? ? ? ? ? ? ###########################################[100%]

? 1:zsh? ? ? ? ? ? ? ? ? ###########################################[100%]

RPM軟件包有可能會(huì)依賴于其他軟件包梨州,也就是說(shuō)在安裝了特定的軟件包之后才可以安裝該軟件包。如果軟件依賴于其它包則:

1田轧、解決依賴關(guān)系

如果多個(gè)包之間相互依賴暴匠,可以同時(shí)使用rpm命令安裝多個(gè)包,或者使用yum進(jìn)行安裝傻粘。

有依賴關(guān)系包的會(huì)報(bào)錯(cuò)每窖,error: Faileddependencies:。根據(jù)提示安裝所依賴包弦悉,其中一些>=窒典、<=符號(hào)。

>=:表示必須要大于或等于某個(gè)版本稽莉。

<=:表示要小于或等于某個(gè)版本瀑志。

2、忽略依賴關(guān)系

--nodeps污秆,強(qiáng)制安裝軟件包劈猪,但有可能無(wú)法運(yùn)行;一般不建議良拼。

[root@stu19Packages]# rpm -ivh --test libgnomecanvas-devel-2.26.0-4.el6.x86_64.rpm

error: Faileddependencies:

? ? ? ? gtk-doc is needed bylibgnomecanvas-devel-2.26.0-4.el6.x86_64

? ? ? ? gtk2-devel >= 2.1.2 is needed bylibgnomecanvas-devel-2.26.0-4.el6.x86_64

? ? ? ? libart_lgpl-devel >= 2.3.8 is neededby libgnomecanvas-devel-2.26.0-4.el6.x86_64

? ? ? ? libglade2-devel >= 2.6.3-2 is neededby libgnomecanvas-devel-2.26.0-4.el6.x86_64

? ? ? ? pkgconfig(gail) is needed bylibgnomecanvas-devel-2.26.0-4.el6.x86_64

? ? ? ? pkgconfig(gtk+-2.0) is needed bylibgnomecanvas-devel-2.26.0-4.el6.x86_64

[root@stu19Packages]# rpm -ivh --nodeps libgnomecanvas-devel-2.26.0-4.el6.x86_64.rpm

Preparing...? ? ? ? ? ? ? ########################################### [100%]

? 1:libgnomecanvas-devel? ###########################################[100%]


--force:同 --replacepkgs,--replacefiles一樣战得,就算要安裝的軟件版本已經(jīng)安裝在系統(tǒng)上,或者是系統(tǒng)上現(xiàn)在的版本比要安裝的版本高庸推,依然強(qiáng)制覆蓋安裝常侦。


卸載程序包:-e浇冰,-- erase

rpm [option] package_name

-e: erase 刪除軟件包

--test模擬刪除,可以先檢查被刪除軟件包是否有依賴軟件包

--nodeps聋亡,強(qiáng)制刪除井厌,忽略依賴關(guān)系垢袱,但依賴于此包程序包可能會(huì)運(yùn)行不正常爽锥;同安裝的選項(xiàng)類似臣樱。? ?

注意:在卸載時(shí)棚放,如果原有配置文件作了修改孝冒,系統(tǒng)提示警告信息穴店,并將安裝生成的配置文件重命名為以 .rpmsave結(jié)尾球凰。

[root@stu19 Packages]# rpm -e --test libgnome

error: Failed dependencies:

? ? ? ? libgnome-2.so.0()(64bit)is needed by (installed) libbonoboui-2.24.2-3.el6.x86_64

? ? ? ? libgnome-2.so.0()(64bit)is needed by (installed) gnome-power-manager-2.28.3-7.el6_4.x86_64

? ? ? ? libgnome-2.so.0()(64bit)is needed by (installed) gnote-0.6.3-3.el6.x86_64

? ? ? ? libgnome-2.so.0()(64bit)is needed by (installed) mousetweaks-2.28.2-1.el6.x86_64

? ? ? ? libgnome >= 2.8.0 isneeded by (installed) gnome-python2-gnome-2.28.0-3.el6.x86_64

? ? ? ? libgnome is needed by(installed) gnome-terminal-2.31.3-8.el6.x86_64

[root@stu19 Packages]# rpm -e --nodeps libgnome

查詢軟件包:-q,--query

? ? 使用rpm命令可以查看指定軟件包的詳細(xì)信息、安裝的文件清單汁尺、依賴的軟件包清單苞也、某個(gè)軟件包是否已經(jīng)安裝此再、系統(tǒng)中所有已安裝軟件包的清單等信息逛裤。

? ? 常用組合選項(xiàng):

? ? -q,--query查詢某軟件包是否安裝薪介,如果有則表示軟件全名道偷。

? ? 格式:rpm -qpackage_name...

? ? # rpm -q bash

? ? bash-4.1.2-15.el6_4.x86_64

? ? -aq? ? ? ,--all查詢系統(tǒng)中所有已經(jīng)安裝的軟件包列表

? ? 按條件過(guò)濾:rpm -qa | grep 'PATTERN'等同于選項(xiàng)-qi


? ? -iq记劈,--info查詢軟件包的詳細(xì)描述信息勺鸦。輸出中包括軟件名稱(name)、版本(Version)目木、修正版(Release)换途、軟件包的安裝時(shí)間(Install Date)、安裝軟件包的文件名稱(Source RPM)刽射、程序的占用空間(Size)?


[root@stu19 Packages]# rpm -qi bash

? ? Name? ? ? ? : bash? ? ? ? ? ? ? ? ? ? ? ? Relocations: (not relocatable)

? ? Version? ? : 4.1.2? ? ? ? ? ? ? ? ? ? ? ? ? ? Vendor: CentOS

? ? Release? ? : 15.el6_4? ? ? ? ? ? Build Date: Thu 18 Jul 201309:21:24 PM CST

? ? Install Date: Mon 30 Jun 2014 12:27:55 PM CST? ? ? Build Host: c6b10.bsys.dev.centos.org

? ? Group? ? ? : SystemEnvironment/Shells? ? Source RPM:bash-4.1.2-15.el6_4.src.rpm

? ? Size? ? ? ? : 3139291? ? ? ? ? ? ? ? ? ? ? ? ? License: GPLv3+

? ? Signature? : RSA/SHA1, Thu 18Jul 2013 09:46:10 PM CST, Key ID 0946fca2c105b9de

? ? Packager? ? : CentOS BuildSystem<http://bugs.centos.org>

? ? URL? ? ? ? :http://www.gnu.org/software/bash

? ? Summary? ? : The GNU BourneAgain shell

? ? Description :

? ? The GNU Bourne Again shell (Bash) is a shell or command language

? ? interpreter that is compatible with the Bourne shell (sh). Bash

? ? incorporates useful features from the Korn shell (ksh) and the C shell

? ? (csh). Most sh scripts can be run by bash without modification.


? ? -lq军拟,--list? 查詢系統(tǒng)中已安裝軟件包生成的文件列表。

? ? ? ? ? rpm -ql package_name

? ? [root@stu19 ~]# rpm -ql bash

? ? /bin/bash

? ? /bin/sh

? ? /etc/skel/.bash_logout

? ? /etc/skel/.bash_profile

? ? /etc/skel/.bashrc

? ? /usr/bin/bashbug-64

? ? /usr/share/doc/bash-4.1.2/COPYING

? ? … … … ….

? ? -cq,--configfiles查詢某包安裝生成了哪些配置文件

? ? #rpm -qc bash

? ? ? ? ? /etc/skel/.bash_logout

? ? /etc/skel/.bash_profile

? ? /etc/skel/.bashrc

? ? -dq,--docfiles查詢某包安裝生成了哪些幫助文件

? ? #rpm -qd bash

? ? --scripts查詢程序包的相關(guān)腳本

? ? #rpm -q --scripts bash

? ? 顯示的腳本有四類:

? ? ? ? ? ? preinstall:在安裝之前運(yùn)行腳本

? ? ? ? postinstall: 在安裝之后腳本

? ? ? ? ? ? ? preuninstall: 在卸載之前腳本

? ? ? ? ? ? ? postuninstall: 在卸載之后腳本


? ? -fq誓禁,--queryformat QUERYFMT查詢某文件是由哪個(gè)軟件包安裝生成的懈息。

? ? ? ? 格式:? rpm -qf /path/to/some_file

? ? # rpm -qf/bin/cat

? ? coreutils-8.4-31.el6.x86_64


? ? -p,--package PACKAGE_FILE:對(duì)尚未安裝的軟件執(zhí)行相關(guān)查詢

? ? ? ? 格式:? ? rpm [option] /path/to/package_file

? ? 可以結(jié)合選項(xiàng)-qpi、-qpl摹恰、-qpc辫继、-qpd使用,查看未安裝軟件包的相關(guān)信息俗慈。

? ? [root@stu19 Packages]# rpm -q zsh

? ? package zsh is not installed

? ? [root@stu19 Packages]# rpm -qpc zsh-4.3.10-7.el6.x86_64.rpm

? ? /etc/skel/.zshrc

? ? /etc/zlogin

? ? /etc/zlogout

? ? /etc/zprofile

? ? /etc/zshenv

? ? /etc/zshrc

? ? -Rq姑宽,--requires查看已安裝的某個(gè)軟件包所依賴的軟件包清單。格式:rpm –qR 軟件包名稱

[root@stu19 Packages]# rpm -qR vim-common

/bin/sh?

config(vim-common) = 2:7.2.411-1.8.el6

libc.so.6()(64bit)?

libc.so.6(GLIBC_2.2.5)(64bit)?

libc.so.6(GLIBC_2.3)(64bit)?

libc.so.6(GLIBC_2.3.4)(64bit)?

libc.so.6(GLIBC_2.4)(64bit)?

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(FileDigests) <= 4.6.0-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

rtld(GNU_HASH)?

rpmlib(PayloadIsXz) <= 5.2-1



升級(jí)程序包:

格式:rpm [option]/path/to/package_file

-U闺阱,--upgrade升級(jí)或安裝炮车。如果有老版本,則升級(jí)為新版本,否則安裝示血。

由于版本過(guò)低棋傍,希望升級(jí)到更高的版本救拉。新版的軟件包安裝文件覆蓋舊版本的文件难审。

用戶要注意的是:rpm會(huì)自動(dòng)反安裝相應(yīng)軟件包的老版本。如果老版本軟件的配置文件通新版本的不兼容亿絮,rpm會(huì)自動(dòng)將其保存為另外一個(gè)文件告喊,用戶會(huì)看到下面的信息:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

這樣用戶就可以自己手工去更改相應(yīng)的配置文件。

另外如果用戶要安裝老版本的軟件派昧,用戶就會(huì)看到下面的出錯(cuò)信息:

-Uvh黔姜,如果有老版本,則升級(jí)為新版本蒂萎,否則安裝秆吵。

-F,--freshen純升級(jí)五慈,如果沒有老版本纳寂,則不升級(jí)。

組合選項(xiàng):-Uvh 泻拦、-Fvh

? ? ? 升級(jí)后的版本可能會(huì)有依賴關(guān)系的沖突等毙芜;

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

注意:內(nèi)核升級(jí)一般使用安裝-ivh,而不是升級(jí)-Uvh(直接升級(jí))争拐,系統(tǒng)允許多內(nèi)核并存腋粥。

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

? ? -V架曹,--verify用于檢查包安裝生成的文件屬性是否發(fā)生變化隘冲。

? ? 格式:rpm -V package_name

? ? 檢驗(yàn)項(xiàng)目共九項(xiàng),結(jié)果以下面8個(gè)字母來(lái)和一個(gè)可能的屬性標(biāo)記:

? ? S : 表示文件大小;

? ? M : 表示權(quán)限;

? ? 5 : 表示MD5檢查和;

? ? D : 表示主從設(shè)備號(hào);

? ? L : 表示符號(hào)連接;

? ? U : 表示屬主;

? ? G : 表示屬組;

? ? T : 表示最后修改時(shí)間根據(jù)文件類型的不同檢驗(yàn)的項(xiàng)目也不同

? ? P:caPabilities differ

? ? c %config? configuration file.

? ? d %doc? documentation file.

? ? l %license? license file.

? ? r %readme? readme file.

? ? 某屬性無(wú)變化绑雄,顯示為.

? ? 示例:

? ? [root@stu19 Packages]# vi /etc/zshrc

? ? [root@stu19 Packages]# rpm -V zsh

? ? S.5....T.? c /etc/zshrc

? ? 表示zsh包的配置文件/etc/zshrc文件大小展辞、MD5、修改時(shí)間發(fā)生改變绳慎。

rpm包來(lái)源合法性及完整性檢驗(yàn):

? ? 在安裝軟件的時(shí)候纵竖,會(huì)warning提示? NOKEY相關(guān)信息,說(shuō)明rpm包對(duì)來(lái)源合法性驗(yàn)證有警示信息杏愤。需要在當(dāng)前系統(tǒng)上導(dǎo)入包的制作者的公鑰

? ? [root@stu19 Packages]# rpm -vhizsh-4.3.10-7.el6.x86_64.rpm

? ? warning: zsh-4.3.10-7.el6.x86_64.rpm:Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

? ? Preparing...? ? ? ? ? ? ? ? ###########################################[100%]

? ? ? 1:zsh? ? ? ? ? ? ? ? ? ###########################################[100%]


? ? 導(dǎo)入格式:#rpm --import/path/to/key_file

? ? 導(dǎo)入光盤鏡像軟件包公鑰:

? ? #rpm --import/media/cdrom/RPM-GPG-KEY-CentOS-6

? ? # rpm -qa gpg-pubkey*? ? 顯示所有已經(jīng)導(dǎo)入的gpg格式的公鑰

? ? # rpm -qi gpg-pubkey-NAME? #顯示密鑰的詳細(xì)信息

? ? 示例:

? ? [root@stu19 Packages]# rpm -K zsh-4.3.10-7.el6.x86_64.rpm

? ? zsh-4.3.10-7.el6.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSINGKEYS: (MD5) PGP#c105b9de)

? ? [root@stu19 Packages]# rpm --checksig zsh-4.3.10-7.el6.x86_64.rpm

? ? zsh-4.3.10-7.el6.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSINGKEYS: (MD5) PGP#c105b9de)

? ? [root@stu19 Packages]# rpm --import ../RPM-GPG-KEY-CentOS-6

? ? [root@stu19 Packages]# rpm --checksig zsh-4.3.10-7.el6.x86_64.rpm

? ? zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

? ? [root@stu19 Packages]# rpm -K zsh-4.3.10-7.el6.x86_64.rpm

? ? zsh-4.3.10-7.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK


? ? 手動(dòng)檢查:

? ? #rpm -K/path/to/package_file

? ? #rpm --checksig/path/to/package_file


? ? 不檢查包完整性:

? ? #rpm -K --nodigest

? ? 不檢查來(lái)源合法性:

? ? #rpm -K --nosignature

數(shù)據(jù)庫(kù)重建:

? ? ? ? 通過(guò)rpm 命令查詢一個(gè)rpm 包是否安裝了靡砌,也是要通過(guò)rpm 數(shù)據(jù)庫(kù)來(lái)完成的;有時(shí)rpm 系統(tǒng)出了問(wèn)題珊楼,不能安裝和查詢通殃,可能會(huì)是數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題,可以使用下面命令重建;

? ? rpm包數(shù)據(jù)庫(kù)目錄:/var/lib/rpm

? ? #rpm --initdb:初始化數(shù)據(jù)庫(kù)

? ? ? ? ##如果事先沒有庫(kù)画舌,會(huì)新建一個(gè)堕担;如果有,則不新建曲聂;

? ? #rpm --rebuilddb: 重建數(shù)據(jù)庫(kù)

? ? ? ? ##直接重建霹购,覆蓋原有的數(shù)據(jù)庫(kù)

3、yum的配置和使用總結(jié)以及yum私有倉(cāng)庫(kù)的創(chuàng)建朋腋。

? yum (Yellowdog Update Modifier)? 程序包管理器的前端工具

? ? 是一個(gè)在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器齐疙。基於RPM包管理旭咽,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝贞奋,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包.

yum客戶端安裝軟件等操作實(shí)現(xiàn)原理:

? ? ? ? ? ? 1穷绵、配置文件:指定各可用的yum倉(cāng)庫(kù);

? ? ? ? ? ? 2轿塔、緩存元數(shù)據(jù):yum會(huì)到各可用yum倉(cāng)庫(kù)獲取元數(shù)據(jù),并緩存至本地;

? ? ? ? ? ? 3仲墨、分析元數(shù)據(jù):根據(jù)具體操作請(qǐng)求完成元數(shù)據(jù)分析, 可能包括檢查依賴關(guān)系勾缭、文件列表等信息;

? ? ? ? ? ? 4宗收、執(zhí)行具體操作:

客戶端配置文件指定對(duì)應(yīng)服務(wù)器訪問(wèn)方式如下幾種:

? ? ? ? ? ? ftp? ftp://server/path/to/repo

? ? ? ? ? ? http? http://server/path/to/repo

? ? ? ? ? ? nfs? nfs://server/nfs_path

? ? ? ? ? ? file? file:///path/to/repository

要使用yum管理應(yīng)用程序漫拭,首先得配置其可用的yum倉(cāng)庫(kù),保存在配置文件中:

? 主配置 /etc/yum.conf

? 倉(cāng)庫(kù)配置 /etc/yum.repos.d/*.repo

配置文件格式:由兩段組成混稽,類似windows的ini配置文件

? ? ? ? [main] :主配置段

? ? ? ? [repo] :倉(cāng)庫(kù)配置段

配置文件格式采驻,文件 存放于/etc/yum.repos.d/ 并以repo結(jié)尾的文件

? ? [repo_id]

? ? name=repo_name? 顯示的名稱,可以是任意的字符串

? ? baseurl=url? ? ? ? ? ? 軟件路徑可以是網(wǎng)絡(luò)上的匈勋,也可以是本地的

? ? gpgcheck={0|1}? ? ? 是否啟用包來(lái)源合法性驗(yàn)證

? ? enabled={0|1}? ? ? ? ? 是否啟用倉(cāng)庫(kù)

? ? gpgkey=公鑰文件(可以在本地礼旅,也可是服務(wù)器端路徑)

? ? cost=1000 倉(cāng)庫(kù)開銷,用來(lái)做優(yōu)先級(jí)洽洁,默認(rèn)不指定就是1000 數(shù)值越小痘系,優(yōu)先級(jí)越大

yum 命令使用:

格式:


yum的各命令:

? ? 安裝

? ? ? ? install package_name ...: 安裝指定的程序包

? ? ? ? reinstall package_name ...: 重新安裝指定的程序包? ?

? ? ? ? groupinstall "group_name":安裝指定的包組

? ? ? ? ? ? ? ? # yum install httpd

? 查找

? ? ? ? repolist [all|enabled|disabled]: 列出所有可用yum repo

? ? ? ? list [all|installed|available]: 列出rpm包

? ? ? ? info package_name: 列出包的描述信息

? ? ? ? grouplist: 列出所有包組

? ? ? ? groupinfo "package_group_name":顯示包組信息? ? ? ?

? ? 升級(jí)

? ? ? ? ? ? check-update: 檢查可升級(jí)的包

? ? ? ? ? ? update package_name ...: 升級(jí)指定的程序包

? ? ? ? ? ? ? ? 如現(xiàn)在的版本:x-1.2.1, x-1.2.2, x-1.2.3

? ? ? ? ? ? ? ? ? ? 要升級(jí)到指定版本需指定版本號(hào):yum update x-1.2.2?

? ? 降級(jí)? downgrade package_name:

? ? 刪除

? ? ? ? ? ? erase|remove? package_name ...:? 刪除己安裝的包,會(huì)連依賴的包一起刪除?

? ? ? ? ? ? groupremove "group_name": 卸載指定的包組

? ? 查詢

? ? ? ? ? ? whatprovides|provides /path/to/somefile: 查詢某文件是由哪個(gè)包安裝生成的?

? #? yum provides */ifcofnig? # 這樣可以查詢ifconfig這個(gè)命令由哪個(gè)包提供的

? ? 清除元倉(cāng)庫(kù)數(shù)據(jù)

? ? ? ? ? ? clean [all|packages|metadata|expire-cache|rpmdb|plugins]: 清理緩存

? ? 安裝本地包:(yum 安裝本地的rpm包依舊會(huì)檢查軟件來(lái)源合法性的饿自,無(wú)法通過(guò)的不予安裝汰翠。需要安裝則要禁止檢查。)

? ? ? ? install /path/to/package_file

? ? ? ? ? ? 手動(dòng)禁止檢查來(lái)源及完整性:--nogpgcheck

? ? ? ? ? ? ? ? yum install /tmp/zsh-2.3.1-2.el6.x86_64.rpm --nogpgcheck

以光盤為rpm源配置倉(cāng)庫(kù)

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

vim /etc/yum.repos.d/cdrom.repo

[base-cdrom]

name=cdrom_repo

baseurl=file:///mnt/cdrom/? ? ? ? ? ? ? ? ? ? ? # 一般為repodata所在的目錄昭雌,這里面有rpm包的元數(shù)據(jù)

gpgcheck=1

enabled=1

gpgkey=file://mnt/cdrom/RPM-GPG-KEY-CentOS-6

保存退出复唤,yum repolist 可以查看是否配置成功

搭建本地離線yum倉(cāng)庫(kù)

把rpm包及其相關(guān)依賴全部都下載到本地,保存好烛卧。

(yum install? --downloadonly --downloaddir=/aspack/ \

mysql-community-server

上述命令即可把mysql-community-server對(duì)應(yīng)的所有rpm包及其依賴下載到/aspack/目錄里佛纫,也就是說(shuō)yum本地安裝mysql需要的所有文件我們都準(zhǔn)備好了;如果需要其他包,則把mysql替換為其他包名字。

手動(dòng)在/etc/yum.repos.d/目錄下配置本地倉(cāng)庫(kù)信息呈宇。

# vim /etc/yum.repos.d/as4k.repo

[as4k]

name=as4k(倉(cāng)庫(kù)名好爬,隨便起,下面注意對(duì)應(yīng)甥啄,注意拼寫)

baseurl=file:///倉(cāng)庫(kù)路徑或網(wǎng)址

gpgcheck=0

enabled=1

可以看到.repo配置文件存炮,也是如此簡(jiǎn)單:

as4k是本地倉(cāng)庫(kù)名,可任意起名型豁,但是注意不能與已有的倉(cāng)庫(kù)名重復(fù)僵蛛。

name后面是注釋信息尚蝌,隨意書寫迎变。

baseurl這后面就是填寫本地倉(cāng)庫(kù)路徑了,file://表示使用本地文件協(xié)議飘言,后面的/aspack本地rpm包存放路徑衣形。

gpgcheck=0這是和驗(yàn)證包的安全信息的,最好設(shè)置成0姿鸿,表示關(guān)閉安全驗(yàn)證谆吴,否則還需要準(zhǔn)備安全驗(yàn)證文件,麻煩一堆一堆的苛预。

enabled=0句狼,表示啟用本倉(cāng)庫(kù),0關(guān)閉热某,1啟用

使用createrepo命令生成repodata信息腻菇。

此功能默認(rèn)沒有,需要手動(dòng)先安裝yum install createrepo -y

安裝完畢之后昔馋,直接使用:createrepo /倉(cāng)庫(kù)路徑/

使用yum repoinfo檢查確認(rèn)

yum repoinfo 倉(cāng)庫(kù)名

以上全部執(zhí)行完畢之后即可正常使用yum安裝

補(bǔ)充:

如何對(duì)本地倉(cāng)庫(kù)進(jìn)行更新

下載一個(gè)新的rpm軟件包到本地倉(cāng)庫(kù)筹吐,此時(shí)我們使用yum repoinfo as4k查看會(huì)發(fā)現(xiàn)軟件包的數(shù)量并沒有增加,我們安裝新增的軟件包也會(huì)提示秘遏,找不到次軟件包的現(xiàn)象丘薛,可以按照下述步驟,更新倉(cāng)庫(kù)信息邦危。

查看舊的軟件包總數(shù) yum repoinfo as4k | grep pkgs

更新本地倉(cāng)庫(kù) createrepo --update /aspack/

清除所有緩存 yum clean all

查看新的軟件包總數(shù) yum repoinfo as4k | grep pkgs

如果軟件包的數(shù)量增加洋侨,說(shuō)明倉(cāng)庫(kù)更新成功。

4倦蚪、寫一個(gè)腳本實(shí)現(xiàn)列出以下菜單給用戶:

(1)disk:show disk info信息

(2)mem: show memory info信息

(3)cpu: show cpu info信息

(*)quit

#!/bin/bash

echo -e "Please input a number for the following command.\n(1) disk:show disk info.\n(2) mem: show memory info.\n(3) cpu: show cpu info.\n(4) Quit"

echo -n "Please enter an integer -> "

read int

if [ -n $int ];then

? case $int in

? ? 1)

? ? echo"`df -h`"

? ? ;;

? ? 2)

? ? echo"`free`"

? ? ;;

? ? 3)

? ? echo"`cat /proc/cpuinfo`"

? ? ;;

? ? 4)

? ? echo"`exit 1`"

? ? ;;

esac

else

echo "please input a correct number"

fi

5希坚、sed用法總結(jié)并結(jié)合實(shí)例演示

? sed命令行格式為:

? ? ? ? sed [-nefri] ‘command’ 輸入文本

常用選項(xiàng):

? ? ? ? -n∶使用安靜(silent)模式。在一般 sed 的用法中审丘,所有來(lái)自 STDIN的資料一般都會(huì)被列出到螢?zāi)簧侠艄弧5绻由?-n 參數(shù)后,則只有經(jīng)過(guò)sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來(lái)。

? ? ? ? -e∶直接在指令列模式上進(jìn)行 sed 的動(dòng)作編輯锅知;

? ? ? ? -f∶直接將 sed 的動(dòng)作寫在一個(gè)檔案內(nèi)播急, -f filename 則可以執(zhí)行 filename 內(nèi)的sed 動(dòng)作;

? ? ? ? -r∶sed 的動(dòng)作支援的是延伸型正規(guī)表示法的語(yǔ)法售睹。(預(yù)設(shè)是基礎(chǔ)正規(guī)表示法語(yǔ)法)

? ? ? ? -i∶直接修改讀取的檔案內(nèi)容桩警,而不是由螢?zāi)惠敵觥? ? ?

常用命令:

? ? ? ? a? ∶新增, a 的后面可以接字串昌妹,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)~

? ? ? ? c? ∶取代捶枢, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行飞崖!

? ? ? ? d? ∶刪除烂叔,因?yàn)槭莿h除啊,所以 d 后面通常不接任何咚咚固歪;

? ? ? ? i? ∶插入蒜鸡, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行)牢裳;

? ? ? ? p? ∶列印逢防,亦即將某個(gè)選擇的資料印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)作~

? ? ? ? s? ∶取代蒲讯,可以直接進(jìn)行取代的工作哩忘朝!通常這個(gè) s 的動(dòng)作可以搭配正規(guī)表示法!例如 1,20s/old/new/g 就是啦判帮!

舉例:(假設(shè)我們有一文件名為ab)

? ? 刪除某行

? ? [root@localhost ruby] # sed '1d' ab? ? ? ? ? ? ? #刪除第一行

? ? [root@localhost ruby] # sed '$d' ab? ? ? ? ? ? ? #刪除最后一行

? ? [root@localhost ruby] # sed '1,2d' ab? ? ? ? ? #刪除第一行到第二行

? ? [root@localhost ruby] # sed '2,$d' ab? ? ? ? ? #刪除第二行到最后一行

  顯示某行

.? ? [root@localhost ruby] # sed -n '1p' ab? ? ? ? ? #顯示第一行

? ? [root@localhost ruby] # sed -n '$p' ab? ? ? ? ? #顯示最后一行

? ? [root@localhost ruby] # sed -n '1,2p' ab? ? ? ? #顯示第一行到第二行

? ? [root@localhost ruby] # sed -n '2,$p' ab? ? ? ? #顯示第二行到最后一行

  使用模式進(jìn)行查詢

? ? [root@localhost ruby] # sed -n '/ruby/p' ab? ? #查詢包括關(guān)鍵字ruby所在所有行

? ? [root@localhost ruby] # sed -n '/\$/p' ab? ? ? ? #查詢包括關(guān)鍵字$所在所有行局嘁,使用反斜線\屏蔽特殊含

6、用bash實(shí)現(xiàn)統(tǒng)計(jì)訪問(wèn)日志文件中狀態(tài)碼大于等于400的IP數(shù)量并排序

#!/bin/bash

#---test for sed and awk---

sed -n '/404/p' /usr/local/nginx/logs/access.log|awk -F":" '{print $1}'>ipnum.txt

echo "total 404 amount is `awk 'END{print NR}' ipnum.txt`"

cat ipnum.txt|sort -t ':' -k 3

7脊另、使用自制的yum源安裝ftp导狡、openssh、curl偎痛、wget旱捧、tcpdump等軟件包

? 創(chuàng)建倉(cāng)庫(kù)文件夾;

? 使用命令yum install? --downloadonly --downloaddir=/pk/curl/? \curl(以curl為例)下載完整包與依賴到對(duì)應(yīng)文件夾踩麦;

? 在/etc/yum.repos.d/文件夾下創(chuàng)建相應(yīng)的配置文件curl.repo;

? 編輯curl.repo內(nèi)容:

[pk]

name=pk(倉(cāng)庫(kù)名枚赡,隨便起,下面注意對(duì)應(yīng)谓谦,注意拼寫)

baseurl=file:///pk/curl

gpgcheck=0

enabled=1

? 使用命令createrepo /倉(cāng)庫(kù)路徑/生成對(duì)應(yīng)的repo信息

? 使用命令yum repoinfo 倉(cāng)庫(kù)名進(jìn)行檢查確認(rèn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贫橙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子反粥,更是在濱河造成了極大的恐慌卢肃,老刑警劉巖疲迂,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莫湘,居然都是意外死亡尤蒿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門幅垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)腰池,“玉大人,你說(shuō)我怎么就攤上這事忙芒∈竟” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵呵萨,是天一觀的道長(zhǎng)奏属。 經(jīng)常有香客問(wèn)我,道長(zhǎng)甘桑,這世上最難降的妖魔是什么拍皮? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮跑杭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咆耿。我一直安慰自己德谅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布萨螺。 她就那樣靜靜地躺著窄做,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慰技。 梳的紋絲不亂的頭發(fā)上椭盏,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音吻商,去河邊找鬼掏颊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛艾帐,可吹牛的內(nèi)容都是我干的乌叶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼柒爸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼准浴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起捎稚,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乐横,失蹤者是張志新(化名)和其女友劉穎求橄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葡公,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谈撒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匾南。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啃匿。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛆楞,靈堂內(nèi)的尸體忽然破棺而出溯乒,到底是詐尸還是另有隱情,我是刑警寧澤豹爹,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布裆悄,位于F島的核電站,受9級(jí)特大地震影響臂聋,放射性物質(zhì)發(fā)生泄漏光稼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一孩等、第九天 我趴在偏房一處隱蔽的房頂上張望艾君。 院中可真熱鬧,春花似錦肄方、人聲如沸冰垄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虹茶。三九已至,卻和暖如春隅要,著一層夾襖步出監(jiān)牢的瞬間蝴罪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工步清, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留要门,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓尼啡,卻偏偏與公主長(zhǎng)得像暂衡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崖瞭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容