壓縮:指經過某些算法,將文件尺寸進行相應的縮小,同時不損失文件的內容。 php
打包:指將多個文件(或目錄)合併成一個文件,方便傳遞或部署。html
壓縮文件或打包文件常見的擴展名:*.tar、*.tar.gz、*.gz、*.bz2 、*.tar.bz二、*.Z(僅作知識擴展);linux系統通常文件的擴展名用途不大,可是壓縮或打包文件的擴展名是必須的,由於linux支持的壓縮命令較多,不一樣的壓縮技術使用的壓縮算法區別較大,根據擴展名可以使用對應的解壓算法。java
*.gz:gzip程序壓縮的文件。linux
*.bz2:bzip2程序壓縮的文件。git
*.Z:compress(舊的加密算法,目前基本不用) 程序壓縮的文件。web
*.tar:tar命令打包的數據,並無壓縮過。面試
*.tar.gz:tar程序打包的文件,而且通過gzip的壓縮。算法
*.tar.bz2:tar程序打包的文件,而且通過bzip2的壓縮。shell
gzip比bzip2性能好,但bzip2能夠得到更高壓縮比。 tar能夠將不少文件打包成爲一個文件。數據庫
gzip命令(應用普遍):能夠解開compress、zip與gzip等軟件所壓縮的文件。
命令格式:
gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字符串>][-<壓縮效率>][--best/fast][文件...] gzip [-acdfhlLnNqrtvV][-S <壓縮字尾字符串>][-<壓縮效率>][--best/fast][目錄]
選項與參數:
-c:將壓縮的數據輸出到標準輸出(stdout)上。
-d:解壓縮。
-t:能夠用來檢驗一個壓縮文件的一致性,看看文件有無錯誤。
-v:能夠顯示出原文件/壓縮文件的壓縮比等信息。
-(1,2,...,9):壓縮等級,1最快,可是壓縮比最差;9最慢,可是壓縮比最好,默認是6。
-l:查看壓縮文件的壓縮比:gzip -l *.gz
示例1:
用gzip壓縮。
[root@localhost ~]# cd /tmp [root@localhost tmp]# cp /root/install.log . #「.」當前目錄 [root@localhost tmp]#gzip –v install.log (若是不加-v的話就是直接壓縮) install.log: 76.8% -- replaced with install.log.gz
注意:源文件被壓縮後,自動在源文件名後追加」.gz」,源文件將再也不存在。
解壓gz的壓縮文件。
[root@xinghan tmp]#gzip –d install.log.gz
注意:源文件被解壓後,自動將源文件名後的」.gz」刪掉,源文件將再也不存在。
示例2:
1.在/tmp文件夾下建立/part1/gzip
2.將/root/anaconda-ks.cfg文件拷貝到/tmp/part1/gzip
3.將拷貝後的文件進行gzip壓縮,並顯示壓縮信息。
4.將壓縮後文件的名稱改成mygzip01.gz
[root@xinghan tmp]# gzip -c install.log >install.log.gz [root@xinghan tmp]# ll |grep install -rw-r--r--. 1 root root 41364 Nov 28 05:10 install.log -rw-r--r--. 1 root root 9626 Nov 28 05:27 install.log.gz
zcat查看壓縮文件內容
[root@xinghan tmp]# zcat *.gz #查看所有內容 [root@xinghan tmp]# zcat *.gz |head -n #查看前n行
cat能夠讀取純文本文件,那麼zcat則能夠讀取純文本文件被壓縮後的壓縮文件。
gzip是爲了取代compress並提供更好的壓縮比,那麼bzip2則是爲了取代gzip並提供更佳的壓縮比而來的。
選項與參數
同gzip用法很相似,選項與參數以下:
-c:將壓縮的過程產生的數據輸出到標準輸出(stdout)。
-d:解壓縮的參數。
-k:保留源文件,而不會刪除原始的文件。
-f:強制壓縮。
-z:壓縮的參數(有無都可)。
-v:能夠顯示出原文件/壓縮文件案的壓縮比等信息。
-(1,2,...,9):與gzip一樣的,都是在計算壓縮比的參數,-9最佳,-1最快。
示例:
壓縮:
[root@xinghan tmp]# bzip2 -z install.log #刪除源文件 [root@xinghan tmp]# ls install* install.log.bz2 [root@xinghan tmp]# bzip2 -zk install.log#保留源文件
解壓:
[root@xinghan tmp]# bzip2 -d install.log.bz2 #刪除源文件 [root@xinghan tmp]# bzip2 -dk install.log.bz2 #不刪源文件
用bzip2最佳壓縮比壓縮install.log,顯示壓縮信息,並保留源文件。
[root@xinghan tmp]#bzip2 -9cv install.log > install9c.log.bz2 install.log: 5.084:1, 1.574 bits/byte, 80.33% saved, 41364 in, 8136 out [root@xinghan tmp]#bzip2 -9zvk install.log
compress壓縮效率低下,壓縮比也較差,幾乎已經再也不使用。
compress、uncompress(僅作了解,目前已不用,當前系統內核已不提供該命令),選項與參數:
-r :能夠連同目錄下的文件也同時給予壓縮。
-c :將壓縮數據輸出成爲standard output。
-v :能夠列出壓縮後的文件信息以及壓縮過程當中的一些文件名變化。
tar命令,爲經常使用的打包壓縮命令。
選項與參數
-c:創建打包文件。
-t:查看打包文件的內容含有哪些文件。
-x:解打包或解壓縮的功能,能夠搭配-C(大寫)將壓縮包解壓到指定目錄。
-j:經過bzip2的支持進行壓縮/解壓縮,此時文件最好以*.tar.bz2爲後綴。
-z:經過gzip的支持進行壓縮/解壓縮,此時文件最好以*.tar.gz爲後綴。
-v:在壓縮/解壓縮的過程當中,將正在處理的文件名顯示出來。
-f filename:-f後面跟處理後文件的全名稱(路徑+文件名+後綴名)。
-C 目錄:這個選項只能用在解壓縮,將壓縮包解壓到指定的目錄下。
-p:保留備份數據的原有權限與屬性,經常使用於備份(-c)重要的配置文件。
--exclude=FILE:在壓縮的過程當中,指定不打包的文件。
注意-c、-t、-x不可同時出如今一串指令列中。即這三個命令不能同時使用。
tar經常使用的指令組
1)打包與壓縮
tar -zcv -f [/路徑/]filename.tar.gz 被壓縮的文件或目錄。
tar -jcv -f [/路徑/] filename.tar.bz2 被壓縮的文件或目錄。
示例:
tar -zcvf /tmp/part1/tar/etc01.tar.gz /etc tar -jcvf /tmp/part1/tar/etc02tar.bz2 /etc
2)查詢
tar -ztv -f [/路徑/] filename.tar.gz
tar -jtv -f [/路徑/] filename.tar.bz2
3)備份
tar -zpcv -f [/路徑/]filename.tar.gz 被備份文件或目錄
tar -jpcv -f [/路徑/]filename.tar.bz2 被備份文件或目錄
4)解壓到當前目錄
tar -jxv -f [/路徑/] filename.tar.bz2
tar -zxv -f [/路徑/] filename.tar.gz
5)解壓到指定目錄
tar -jxv -f [/路徑/] filename.tar.bz2 -C 指定目錄
tar -zxv -f [/路徑/] filename.tar.gz -C 指定目錄
注意:filename前帶路徑表示此路徑下的filename文件,若是沒有表示當前目錄下filename文件。
該路徑表示的就是咱們寫入的路徑,若是不寫路徑的話表示在當前路徑下。
示例1:
tar -zxvf /home/software/filename.tar.gz
上述中的例子,表示咱們要解壓的文件在/home/software/路徑下。(使用了絕對路徑)
舉例2:
tar -zxvf filename.tar.gz
上述中的例子,表示咱們要解壓的文件在當前所處的目中。(使用了相對路徑)
示例:
#1.將/etc壓縮到/tmp/下etc01.tar.gz #方式一:filename.tar.gz前不帶路徑 [root@hadoop1 ~]# cd /tmp/ [root@hadoop1 tmp]# tar -zcvf etc01.tar.gz /etc/ #方式二:filename.tar.gz前帶路徑,推薦新手使用。 [root@hadoop1 ~]# tar -zcvf /tmp/etc01.tar.gz /etc #2.將/tmp/下etc01.tar.gz解壓到/tmp/目錄下 [root@hadoop1 ~]# cd /tmp/ #首先進入對應目錄 [root@hadoop1 tmp]# tar -zxvf etc01.tar.gz #3.將/tmp/下etc01.tar.gz解壓到/usr/目錄下 [root@hadoop1 tmp]# tar -zxvf etc01.tar.gz -C /usr #或者 [root@hadoop1 tmp]# tar -zxvC /usr -f etc01.tar.gz
6)解壓單獨文件
僅解壓壓縮包中的某一個文件,如解壓包中shells文件。
一、查詢shells文件在壓縮包中是否存在。
tar -ztv -f [/路徑/]filename.tar.gz|grep ‘shells’
[root@xinghan ~]# tar -ztv -f /tmp/etc01.tar.gz |grep 'shells’ #或 [root@xinghan tmp]# tar -ztv -f etc01.tar.gz |grep 'shells'
二、僅解壓出shells文件。
[root@xinghan tmp]# tar -zxv -f etc01.tar.gz etc/shells
解壓後在/tmp下生產一個etc文件夾,etc下有shells文件。
三、僅解壓出etc/yum目錄:也能夠解壓壓縮包中的某一個子目錄。
RPM(RedHat Package Manager)安裝管理。
這個機制最先是由Red Hat開發出來,後來實在很好用,所以不少distributions(發行版)就使用這個機制來做爲軟件安裝的管理方式。包括Fedora、CentOS、SuSE等等知名的開發商。
例如:CDH(Cloudera Distributed Hadoop,Cloudera公司的Hadoop發行版)提供rpm包(省略部分詳細版本號),使得在Linux上安裝Hadoop這樣的分佈式系統變得更加簡單:
hadoop-mapreduce-2.5.0xx.rpm
hadoop-mapreduce-historyserver-2.5.0xx.rpm
hadoop-yarn-2.5.0xx.rpm
RPM內含已經編譯過的程序與配置文件等數據,可讓用戶免除從新編譯的困擾。
RPM在被安裝以前,會先檢查系統的硬盤容量、操做系統版本等,可避免文件被錯誤安裝。
RPM文件自己提供軟件版本信息、相依屬性軟件名稱、軟件用途說明、軟件所含文件等信息,便於瞭解軟件。
RPM管理的方式使用數據庫記錄RPM文件的相關參數,便於升級、移除、查詢與驗證。
/etc 一些配置文件放置的目錄。例如/etc/crontab。
/usr/bin 一些可執行文件。
/usr/lib 一些程序使用的動態連接庫。
/usr/share/doc 一些基本的軟件使用手冊與說明文件。
/usr/share/man 一些man page(Linux命令的隨機幫助說明)文件。
rpm -ivh package_name
-i:install的意思,安裝。
-v:察看更細部的安裝信息畫面。俗稱「囉嗦模式」。
-h:顯示指令執行過程。即進度條。
示例:
#安裝單個rpm包。 rpm -ivh package_name #安裝多個rpm包。每一個包之間以空格隔開。 rpm -ivh a.i386.rpm b.i386.rpm *.rpm #安裝網上某個位置rpm包。 rpm -ivh http://website.name/path/pkgname.rpm
將jdk-8u111-linux-x64.rpm從本機拷貝到虛擬機中。
rz:從本機到虛擬機;sz從linux虛擬機到本機。
[root@xinghan ~]# rz -bash: rz: command not found
這是由於當前虛擬機沒有安裝lrzsz程序,因此咱們須要先安裝該程序纔可以使用rz和sz命令。首先使用可視化界面用root登陸進入,瀏覽器訪問http://rpmfind.net/linux/rpm2html/search.php?query=lrzsz,下載lrzsz-0.12.21-15.x86_64.rpm
或者經過wget進行下載: http://rpmfind.net/linux/Mandriva/official/2011/x86_64/media/main/release/lrzsz-0.12.21-15-mdv2011.0.x86_64.rpm
[root@xinghan ~]# mkdir /usr/soft #之後安裝軟件都放在該目錄下 [root@xinghan ~]# cp /root/下載/lrzsz-0.12.20-22.1.x86_64.rpm /usr/soft/ [root@xinghan ~]# ls /usr/soft/ lrzsz-0.12.20-22.1.x86_64.rpm [root@xinghan ~]# rpm -ivh /usr/soft/lrzsz-0.12.20-22.1.x86_64.rpm [root@xinghan soft]#rz #彈出窗口,選擇jdk-*-x64.rpm,默認放到當前目錄下
安裝jdk-8u111-linux-x64.rpm。
[root@xinghan soft]# rpm -ivh jdk-8u111-linux-x64.rpm
備份系統環境變量文件
[root@xinghan ~]# cp /etc/profile /home/
編輯系統環境變量
rpm -qa |grep jdk rpm -ql jdk1.8.0_111-1.8.0_111-fcs.x86 vim /etc/profile
加入內容以下:
export JAVA_HOME=/usr/java/jdk1.8.0_111 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH #檢查安裝是否成功 [root@xinghan ~]# source /etc/profile [root@xinghan ~]# java -version java version 「1.8.0_111」
rpm -Uvh <package_name>
rpm -Fvh <pacakge_name>
-Uvh後面接的軟件若是沒有安裝過,系統會直接安裝,若後面接的軟件安裝過,但版本較舊,則更新至新版。
[root@xinghan soft]# rpm -Uvh jdk-8u111-linux-x64.rpm Preparing... ########################################### [100%] package jdk1.8.0_111-2000:1.8.0_111-fcs.x86_64 is already installed
-Fvh若是後面接的軟件並未安裝到Linux系統上,則該軟件不會被安裝,只有已安裝的軟件纔會被升級。
簡單原理:rpm在查詢的時候,其實查詢的地方是在/var/lib/rpm/ 這個目錄下的數據庫文件。以下:
[root@xinghan ~]# ll /var/lib/rpm/ total 58272 -rw-r--r--. 1 root root 5500928 Mar 8 20:27 Basenames -rw-r--r--. 1 root root 12288 Mar 4 23:06 Conflictname -rw-r--r-- 1 root root 24576 Mar 8 20:42 __db.001 -rw-r--r-- 1 root root 229376 Mar 8 20:42 __db.002
查詢某個RPM文件內含有的信息:
rpm -qp[icdlR] 應用名稱
查詢rpm包中的信息。
注意-qp後面接的全部參數與上面的說明一致。但用途僅在於找出某個RPM文件內的信息,而非已安裝的軟件信息。
rpm查詢已安裝軟件,選項與參數:
-q:僅查詢後面接的軟件名稱是否已安裝。
-qa:列出全部已經安裝在本機Linux系統上面的軟件名稱!!!
-qi:列出該軟件的詳細信息,包含開發商、版本和說明等!
-ql:列出該軟件全部的文件與目錄所在完整文件名!!
-qc:列出該軟件的全部配置文件!
-qd:列出該軟件的全部說明文件。
-qR:列出該軟件所依賴的軟件所含的文件。
-qf:由後面接的文件名,找出該文件屬於哪個已安裝的軟件。
①查找是否安裝jdk
[root@xinghan ~]# rpm -qa |grep jdk jdk1.8.0_111-1.8.0_111-fcs.x86_64
②查找全部系統已經安裝的包,並只查看前3個
[root@xinghan ~]# rpm -qa |head -n 3 gvfs-gphoto2-1.4.3-15.el6.x86_64 hicolor-icon-theme-0.11-1.1.el6.noarch libopenraw-gnome-0.0.5-4.1.el6.x86_64
③查詢lrzsz所包含的文件及目錄
[root@xinghan ~]# rpm -ql lrzsz /usr/bin/rb /usr/bin/rx /usr/bin/rz /usr/bin/sb /usr/bin/sx /usr/bin/sz /usr/share/locale/de/LC_MESSAGES/lrzsz.mo /usr/share/man/man1/rz.1.gz /usr/share/man/man1/sz.1.gz
④查看apr所包含的文件及目錄
[root@xinghan ~]# rpm -ql apr /usr/lib64/libapr-1.so.0 /usr/lib64/libapr-1.so.0.3.9 /usr/share/doc/apr-1.3.9 /usr/share/doc/apr-1.3.9/CHANGES /usr/share/doc/apr-1.3.9/LICENSE /usr/share/doc/apr-1.3.9/NOTICE
⑤查看lrzsz包的相關說明
[root@xinghan ~]# rpm -qi lrzsz Name : lrzsz Relocations: (not relocatable) Version : 0.12.20 Vendor: CentOS Release : 22.1 Build Date: 2007年01月06日 星期六 21時04分33秒 Install Date: 2016年11月29日 星期二 07時56分17秒 Build Host: builder
如何查詢剛剛安裝jdk的相關信息?
[root@xinghan soft]# rpm -qa |grep jdk jdk1.8.0_111-1.8.0_111-fcs.x86_64 [root@xinghan soft]# rpm -qi jdk1.8.0_111-1.8.0_111-fcs.x86_64
⑥查看apr包的相關說明
列出jdk1.8.0_111的配置文件(無顯示說明不須要配置文件)
[root@localhost ~]# rpm -qc jdk1.8.0_111 [root@localhost ~]# rpm –qc apr #不須要配置
列出iptables的配置文件
[root@localhost ~]# rpm -qc iptables /etc/sysconfig/iptables-config
列出apr的說明文件
[root@localhost ~]# rpm -qd apr /usr/share/doc/apr-1.3.9/CHANGES /usr/share/doc/apr-1.3.9/LICENSE /usr/share/doc/apr-1.3.9/NOTICE.
⑦查看apr須要的依賴
[root@xinghan ~]# rpm -qR apr /sbin/ldconfig /sbin/ldconfig libapr-1.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.10)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit)
rpm [參數] [應用名稱]
-V:後面加軟件名稱,若該軟件安裝以後被改動過,會列出被修改過的文件!!
-Va:列出目前系統上面rpm安裝的全部包中被修改過的文件!
-Vp:後面加的是rpm文件名,列出rpm包中的文件在當前系統中是否修改。
-Vf:列出某個文件(直接列出軟件包安裝以後的文件名)是否被改動過!!
示例:
列出lrzsz這個軟件被改動過的文件。
[root@xinghan ~]# rpm -V lrzsz
沒有被修改的文件顯示,說明該軟件沒有文件被改動過
查詢/etc/crontab是否被改動過。
[root@xinghan ~]# rpm -Vf /etc/crontab
沒有信息顯示說明沒有被改動過,若是被改動過,會顯示被改動的信息。
-e:卸載軟件。
找出與apr有關的軟件名稱,並嘗試移除apr這個軟件。
[root@xinghan ~]# rpm -qa | grep apr apr-1.3.9-5.el6_2.x86_64 [root@xinghan ~]# rpm -e apr [root@xinghan ~]# rpm -qa | grep apr
rpm頭疼的依賴關係(例如安裝某個遊戲時)。當安裝一個rpm包時,發現它依賴於其它的rpm包,只能先去下載及安裝這個依賴包。當這樣的依賴關係很是複雜時,一個個rpm安裝對於大數據工程師來講,安裝這件事演變成一個災難。
卸載,也同樣!刪除某個rpm包時,若是有其它的rpm依賴於它,也得先刪掉他們。若是有一個集中的地方管理多如牛毛的rpm,簡化「下載+解決依賴問題+安裝」這樣的繁瑣步驟,該多好啊?
yum是經過分析RPM的標頭資料後,根據各軟件的相關性製做出屬性相依時的解決方案,而後能夠自動處理軟件的依賴問題,以解決軟件安裝、移除、升級中遇到的繁瑣操做的問題。
search:查詢某個軟件名稱或者是描述的關鍵字。
list:列出目前yum所管理的全部的軟件名稱與版本,有點相似rpm -qa。
info:同上,格式不太同樣,不過有點相似rpm -qai的執行結果。
示例:
查找jdk相關軟件包 [root@xinghan yum.repos.d]# yum search jdk 查看beakerlib軟件包功能 [root@xinghan yum.repos.d]# yum info beakerlib 列出 yum 服務器上面提供的全部軟件的詳細信息(20條) [root@xinghan yum.repos.d]# yum info | head -20 列出 yum 服務器上面提供的全部軟件名稱(100條) [root@xinghan yum.repos.d]# yum list |head -100 列出目前服務器上可供本機進行升級的軟件有哪些 [root@xinghan yum.repos.d]# yum list updates !!! 列出目前服務器上xz.x86_64可更新版本 [root@xinghan yum.repos.d]# yum list updates|grep xz.x86_64
yum [install | update | remove] 軟件名
install:後面接要安裝的軟件。
update:後面接要升級的軟件,若要整個系統都升級,就直接update便可。
remove:刪除某個軟件時,依賴於該軟件並已經安裝到系統中的其它軟件或者包,會被一併刪除(rpm方式刪除某個包時,若是依賴於該包的其它包以前也被安裝到系統中,刪除
不會成功,須要先手動刪除那些包)。
示例:
安裝common-lisp-controller.noarch
[root@xinghan ~]# yum install common-lisp-controller.noarch Dependencies Resolved ============================================== Package Arch Version Repository Size ============================================== Installing: common-lisp-controller noarch 7.4-2.el6 epel 20 k Installing for dependencies: cl-asdf noarch 20101028-1.el6 epel 88 k Transaction Summary ============================================== Install 2 Package(s) Total download size: 108 k Installed size: 427 k Is this ok [y/N]:y Downloading Packages: (1/2): cl-asdf-20101028-1.el6.noarch.rpm | 88 kB 00:00 (2/2): common-lisp-controller-7.4-2.el6.noarch.rpm | 20 kB 00:00 Installed: common-lisp-controller.noarch 0:7.4-2.el6 Dependency Installed: cl-asdf.noarch 0:20101028-1.el6 Complete!
刪除cl-asdf
[root@xinghan ~]# yum remove cl-asdf Dependencies Resolved ============================================================== Package Arch Version Repository Size ============================================================== Removing: cl-asdf noarch 20101028-1.el6 @epel 401 k Removing for dependencies: common-lisp-controller noarch 7.4-2.el6 @epel 26 k Transaction Summary ============================================================= Remove 2 Package(s) Installed size: 427 k Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing:common-lisp-controller-7.4-2.el6.noarch 1/2 Erasing:cl-asdf-20101028-1.el6.noarch 2/2 Verifying:cl-asdf-20101028-1.el6.noarch 1/2 Verifying:common-lisp-controller-7.4-2.el6.noarch 2/2 Removed: cl-asdf.noarch 0:20101028-1.el6 Dependency Removed:common-lisp-controller.noarch 0:7.4-2.el6 Complete!
升級xz.x86_64
[root@xinghan ~]# yum update xz.x86_64 Dependencies Resolved ===================================================================== Package Arch Version Repository Size =====================================================================Updating: xz x86_64 4.999.9-0.5.beta.20091007git.el6 base 137 k Updating for dependencies: xz-libs x86_64 4.999.9-0.5.beta.20091007git.el6 base 89 k xz-lzma-compat x86_64 4.999.9-0.5.beta.20091007git.el6 base 16 k Transaction Summary =====================================================================Upgrade 3 Package(s) Total download size: 242 k Is this ok [y/N]: y Downloading Packages: (1/3): xz-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm | 137 kB 00:00 (2/3): xz-libs-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm | 89 kB 00:00 (3/3): xz-lzma-compat-4.999.9-0.5.beta.20091007git.el6.x86_64.rpm | 16 kB 00:00 ------------------------------------------------------------------------------------------------------- Total 423 kB/s | 242 kB 00:00 Updated: xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 Dependency Updated: xz-libs.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 Complete!
yum服務器與客戶端架構圖:
客戶端每次使用yum調用 install或者search的時候,都會去解析/etc/yum.repos.d/下面全部以.repo結尾的文件,這些配置文件指定了yum服務器的地址。
yum須要按期去「更新」yum服務器上的rpm「清單」,而後把「清單」下載保存到yum本身的cache裏面,根據/etc/yum.conf裏配置(默認是在/var/cache/yum/$basearch/$releasever下、即/var/cache/yum/x86_64/6),每次調用yum安裝包的時候都會去這個cache目錄下去找「清單」,根據「清單」裏的rpm包描述從而來肯定安裝包的名字,版本號,所須要的依賴包等,若是rpm包的cache不存在,就去yum服務器下載rpm包安裝。
[root@xinghan soft]# cd /etc/yum.repos.d [root@xinghan yum.repos.d]# cat CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[base]:表明容器的名字,中括號是必須帶的,裏面名字能夠自定義,但不能有兩個相同的名字,不然yum找不到相關的軟件列表
name:只是描述容器。
mirrorlist:「#」註釋掉。
baseurl:容器的固定地址。
gpgcheck:gpg驗證是否開啓,1是開啓,0是不開啓;「開啓」會讓yum檢查每一個下載的RPM的GnuPG簽名。這麼作是由於你須要適當的GnuPG key註冊到您的RPM數據庫。能夠防止被欺騙,如:非法入侵發行版網站,木馬導入軟件包,使不知情用戶下載。
gpgkey:數字證書公鑰文件所在位置。
如何讓yum支持hadoop分佈式軟件安裝?(僅做了解,建議手動配置,第一是學習,第二是未來的面試會有人問集羣的搭建步驟和集羣的配置文件。)
一、查看當前系統中yum支持的全部軟件包中是否存在hadoop。
[root@xinghan yum.repos.d]# yum list|grep hadoop #發現沒有
二、若是想要當前系統的yum支持hadoop軟件包,須要本地/etc/yum.repos.d下建立cloudera-cdh5.repo文件,保存hadoop對應的repo配置,而具體的配置信息可以使用:http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
三、再次查看。
[root@xinghan yum.repos.d]# yum list|grep hadoop #發現顯示不少hadoop相關的包
注:http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5/RPMS/
noarch: 這個版本對系統沒有要求。
x86_64/:須要64位操做系統。點擊進入x86_64/能夠看到不少與hadoop相關的rpm包。
全部要發行的rpm包都放在yum服務器上以提供別人來下載,rpm包根據kernel的版本號,cpu的版本號分別編譯發佈。yum服務器只要提供簡單的下載就能夠了,ftp或者httpd的形式均可以。yum服務器有一個最重要的環節就是整理出每一個rpm包的基本信息,包括rpm包對應的版本號,conf文件,binary信息,以及很關鍵的依賴信息。在yum服務器上提供了createrepo工具,用於把rpm包的基本概要信息作成一張"清單",這張"清單"就是描述每一個rpm包的spec文件中信息。
上一篇:Linux基礎之vim
下一篇: