rpm、yum的相關內容及其應用

 一、rpm的相關內容  

1、rpm命名

  1. 包:組成部分  

  2.     主包:  

  3.      bind-9.7.1-1.i586.e15.rpm  

  4.     子包:  

  5.      bind-libs-9.7.1-1.i586.e15.rpm  

  6.      bind-utils-9.7.1-1.e15.i586.rpm  

  7. 包名格式:  

  8. name-version-release.arch.rpm  

  9.     bind-major.minor.release-reldase.arch.rpm  

  10. 主版本號:重大改進  

  11. 次版本號:某個子功能發生重大改變  

  12. 發行號:修正了部分bug,調整了一點功能  

2、rpm包 

  1.   二進制格式:安裝簡單  

  2.     rpm包作者下載源程序,編譯配置完成後,製作成rpm包  

  3.     bind-9.7.1-1.i686  

  4.     bind-9.7.1-1.ppc.rpm  

  5. uname -a :顯示版本號  

3、rpm命令  

3.1、 安裝

  1.   rpm -i /PATH/TO/PACKAGE_FILE  

  2.       -h: 以#顯示進度,每個#表示2%  

  3.       -v: 顯示詳細過程  

  4.       -vv: 顯示更詳細的過程  

  5.   rpm -ivh /PATH/TO/PACKAGE_FILE  

  6.        eg:rpm -ivh zsh-4.2.6-6.e15.i368.rpm  

  7. --nodeps:忽略依賴關係 

  8. --replacepkgs:重新安裝,替換原有安裝 

  9. --force:強行安裝,可以實現重裝或降級 

  10.     eg:rpm -ivh --replacepkgs zsh4.2.6-6.e15.i386.rpm 

  11.     eg:rpm -ivvh --replacepkgs zsh4.2.6-6.e15.i386.rpm 

3.2、查詢 

  1.   rpm -q PACKAGE_NAME:查詢指定的包是否已經安裝  

  2.      eg:rpm -q zsh  

  3.   rpm -qa :查詢已安裝的所有的包  

  4.      eg:rpm -qa | grep "z"

  5.   rpm -qi PACKAGE_NAME:查詢指定包的說明信息  

  6.   rpm -ql PACKAGE_NAME:查詢指定包安裝後生成的文件列表  

  7.   rpm -qc PACKAGE_NAME:查詢指定包安裝的配置文件  

  8.   rpm -qd PACKAGE_NAME;查詢指定包安裝的幫助文件  

  9.      eg:rpm -ql zsh | less  

  10.   rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本 

  11.   rpm -qf /path/to/somefile:查詢指定的文件是由哪個rpm包生成的  

  12.      eg: rpm -qf   

  13. 如果某rpm包尚未安裝,我們需查詢其說明信息、安裝以後會生成的文件  

  14.   rpm -qpi /PATH/TO/PACKAGE_FILE   (i指軟件包)  

  15.   rpm -qpl  /PATH/TO/PACKAGE_FILE   (l指列表)  

  16. eg:rpm -qpi httpd-devel-2.2.3-63.e15.i386.rpm  

3.3、升級 

  1. rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級,否則,則安裝  

  2. rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級,否則,退出  

  3. --oldpackage:降級 

3.4、卸載  

  1. rpm -e PACKAGE_NAME   

  2. --nodeps  

  3. eg:rpm -e zsh  

3.5、校驗 

  1.   rpm -V PACKAGE_NAME :校驗文件是否被非法改變過  

  2.   rpm -ql   

3.6、重建數據庫 

  1.    rpm  

  2. --rebuilddb:重建數據庫,一定會重建數據庫 

  3. --initab:初始化數據庫,沒有才建立,有就不用建立,無法重建數據庫 

3.7、檢驗來源合法性,及軟件包完整性  

  1. 加密類型  

  2.    對稱:加密解密使用同一個密鑰  

  3.    公鑰:一對兒密鑰,公鑰,私鑰;公鑰隱含於私鑰中,可以提取出來,並公開出去;  

  4.          公鑰用於加密,私鑰用於驗證身份  

  5.    單向:  

  6.    # ls /etc/pki/rpm-gpg/  

  7.        RPM-GPG-KEY-redhat-release  

  8.      rpm -K   

  9.        dsa,gpg:驗證源合法性,也即驗證簽名;可以使用--nosignature,略過此項 

  10.        sha1,md5:驗證軟件包完整性;可以使用--nodigest,略過此項     

  11.      rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入密鑰文件 

3.8、rpm的應用  

  1. RPM安裝:  

  2.     二進制格式:  

  3.     源程序-->編譯-->二進制格式 

  4.         有些特性是編譯選定的,如果編譯未選定此特性,將無法使用;  

  5.         rpm包的版本會落後於源碼包,甚至會落後很多:bind-9.8.7,bind-9.7.2  

  6.       make:C或C++程序的項目管理工具,將多個不同文件做成一個項目,並且把這個項目編譯過程通過一個配置文件( makefile)來完成  

  7.         makefile:定義了make(gcc,g++)按何種次序去編譯這些源程序文件中的源程序  

 1.下載rpm文件

 

 2.把rpm文件下載到本地

3.查詢軟件包安裝時的路徑

 4.查詢指定的文件是由哪個軟件包安裝所生成的文件

 5.查詢指定包安裝的配置文件

二、yum的相關內容  

  1. yum:Yellowdog Update Modifier(針對於紅帽的二次發行版)        

1、yum倉庫中的元數據文件 

  1. primary.xml.gz  

  2.    所有RPM包的列表:  

  3.    依賴關係:  

  4.    每個RPM安裝包生成的文件列表;     

  5. filelists.xml.gz  

  6.   當前倉庫中所有RPM包的所有文件列表:  

  7. other.xml.gz  

  8.    額外信息,RPM包的修改日誌     

  9. repomd.xml  

  10.    記錄的是上面三個文件的時間戳和校驗和  

2、如何爲yum定義repo文件,格式如下  

  1. [Repo_ID]  

  2. name=Description  

  3. baserurl=  

  4.     ftp://  

  5.     http://協議分隔符  

  6.     file:///根路徑   

  7. enabled={1|0}  

  8. gpgcheck={1|0}  

  9. gpgkey=  

3、yum的命令

  1. yum的格式:yum [options] [command] [package...]  

  2.           -y:自動回答爲yes  

  3. --nogpgchek 

  4. list:列表  

  5.     支持glob  

  6. all  默認  

  7.     available:可用的,倉庫中有但尚未安裝的  

  8.     installed:已經安裝的  

  9. update: 可用的升級  

  10. clean:清理緩存  

  11.   [package | headers | metadata | dbcache | all ]  

  12.  repolist:顯示repo列表及其簡要信息  

  13. all  所有  

  14.       enabled  默認  

  15.       disabled  

  16. install:安裝  

  17. yum install PACKAGE_NAME  

  18. update:升級  

  19. update_to:升級爲指定版本  

  20. remove|erase:卸載  

  21.   info近似於rpm-i :  

  22.   provides|whatprovides:查看指定的文件或特性是有哪個安裝包生成的  

4、yum的應用  

1.列出所有可更新的軟件清單

 2.安裝所有更新軟件

3.安裝指定文件

 4.獲取軟件包的詳細信息

 5.清除緩存

 6.將光盤放入光驅並掛載到/mnt下

 7.創建配置文件

 8.清除緩存,並列出所有文件

 9.顯示所有repo列表

 10.安裝yum文件

 

四、編譯安裝的三步驟:  

  1. 前提:準備開發環境(編譯環境)  

  2. 安裝”Development Tools"和“Development Libraries"

  3. #tar  

  4. #cd  

  5. #./configure  

  6. --help 

  7. --prefix=/path/to/somewhere (軟件安裝的位置) 

  8. --sysconfdir=/PATH/TO/CONFFILE_PATH 

  9.    功能:1、讓用戶選定編譯特性;2、檢查編譯環境  

  10. #make  

  11. #make inistall  

  12. #tar xf tengine-1.4.2.tar.gz  

  13. #cd tengnine-1.4.2  

  14. #./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf 

  15. # make  

  16. # make install  

  17. # /usr/local/tengine/sbin/nginx  

1.修改PATH環境變量,以能夠識別此程序的二進制文件路徑;  

  1.     修改/etc/profile文件  

  2.     在/etc/profile.d/目錄建立一個以.sh爲名稱後綴的文件,在裏面定義export PATH=$PATH:/path/to/somewhere  

2、默認情況下,系統搜索文件路徑/lib,/usr/lib;要增添額外搜尋路徑;  

  1.    在/etc/ld.so.conf.d/中創建以.conf爲後綴名的文件,而後把要添加的路徑直接寫至此文件中  

  2.    # ldconfig 通知系統重新搜索庫文件  

  3.       -v:顯示重新搜尋庫的過程  

3、頭文件:輸出給系統# include  

  1.   默認:/usr/include  

  2.   增添頭文件搜尋路徑,使用鏈接進行:  

  3.       /usr/local/tengine/include/  /usr/include  

  4.       兩種方式:  

  5.       ln -s /usr/local/tengine/include/* /usr/include/ 或  

  6.       ln -s /usr/local/tengine/include /usr/include/tengine  

4、man文件路徑:安裝在--prefix指定的目錄下的man目錄:/usr/share/man 

  1.    1、man -M /PATH/TO/MAN_DIR COMMAND  

  2.    2、在/etc/man.config中添加一條MANPATH  

  3.    eg:ftps -> cd Sources/ -> ls -> cd ->cd pub -> cd Sources/LANP/ -> get httpd-2.2.16.tqr.bz2  

  4.     -> cd -> bye -> tar xf httpd-2.2.16.tar.bz2 -> cd httpd-2.2.16 -> ./configure --help | less 

  5.     ./configure --prefigure --prefix=/usr/local/apache --sysconfdir=/etc/httpd -> rpm -q httpd 

  6.     -> ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd -> rpm -q httpd  

  7.     -> ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd  ->    

netstat命令:  

  1.      -r:顯示路由表  eg:netstat -r  

  2.      -n:以數字方式顯示 eg:netstat -rn  

  3.      -t:建立的tcp連接  

  4.      -u:顯示UDP連接  

  5.      -l:顯示監聽狀態的連接  

  6.        eg: netstat -ul 顯示打開狀態UDP的連接  

  7.        eg: netstat -tul 顯示遠程狀態的連接  

  8.      -p:顯示監聽指定套接字的進程號和進程名 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章