Linux的包管理工具介紹-創(chuàng)新互聯(lián)

 概述:

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、通許網(wǎng)絡(luò)推廣、小程序開發(fā)、通許網(wǎng)絡(luò)營(yíng)銷、通許企業(yè)策劃、通許品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供通許建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:muchs.cn

   本章內(nèi)容:軟件的運(yùn)行環(huán)境,軟件包基礎(chǔ),rpm包管理,yum管理,定制yum倉庫,編譯安裝

一、軟件運(yùn)行環(huán)境

 1.API:Application Programming Interface (應(yīng)用程序開發(fā)接口)    POSIX:Portable OS(國(guó)際標(biāo)準(zhǔn))    程序源代碼–> 預(yù)處理–> 編譯–> 匯編–> 鏈接        靜態(tài)編譯:        共享編譯:.so    ABI:Application Binary Interface(應(yīng)用二進(jìn)制程序接口)         Windows與Linux不兼容         linux:文件格式:ELF(Executable and Linkable Format)         win:文件格式:exe,msl PE(Portable Executable)    庫級(jí)別的虛擬化:         Linux: WINE(提供模擬windows的庫,運(yùn)行win環(huán)境)         Windows: Cywin(提供linux的運(yùn)行環(huán)境)          2.開發(fā)語言    系統(tǒng)級(jí)開發(fā)         C/C++(依賴于c庫)         httpd,nginx,vsftpd,go    應(yīng)用級(jí)開發(fā)         java(依賴于jvm虛擬機(jī))         Python(openstack云站),php,perl(依賴于per解釋器),ruby          3.程序格式:         c/c++         源代碼:文本格式的程序代碼;         編譯開發(fā)環(huán)境:編譯器,頭文件,開發(fā)庫         二進(jìn)制格式:文本格式的程序代碼–>編譯器–>二進(jìn)制格式(二進(jìn)制程序、庫文件、配置文件、幫助文件)     java/Python         源代碼:編譯能夠在其虛擬機(jī)(jvm/pvm)運(yùn)行的格式;         開發(fā)環(huán)境:編譯器、開發(fā)庫         二進(jìn)制     項(xiàng)目構(gòu)建工具         c/c++:make      jave:maven

二、包管理

1.二進(jìn)制應(yīng)用程序的組成部分:         二進(jìn)制文件、庫文件、配置文件、幫助文件          2.程序包管理:         源代碼–>目標(biāo)二進(jìn)制格式(二進(jìn)制程序、庫文件、配置文件、幫助文件)–>組織成為一個(gè)或有限幾個(gè)“包文件”(安裝,升級(jí),卸載,查詢,校驗(yàn))     程序包管理器:         deblan: dpt,dpkg  以".deb"后綴         redhat: rpm (redhat package manager) 以 ".rpm"后綴          S.u.S.E:rpm, ".rpm"命令          3.包命令格式     源代碼:          name-VERSION.tar.gz|bz2|xz          VERSION: major(主版本號(hào)).minor(次版本號(hào)).release(發(fā)行號(hào))     rpm包命名格式:          name-VERSION-release.arch.rpm          VERSION: major.minor.release(rpm包發(fā)行號(hào))          changelog文檔(內(nèi)容修復(fù)改進(jìn)的相關(guān)文檔)          例:bash-4.2.46-19.el7.x86_64.rpm          release:release.OS     常見的arch:          x86: i386, i486, i586, i686          x86_64: x64, x86_64, amd64powerpc: ppc          跟平臺(tái)無關(guān):noarch (適用于所有平臺(tái))           4.包:分類和拆包          Application-VERSION-ARCH.rpm: 主包          Application-devel-VERSION-ARCH.rpm  開發(fā)子包          Application-utils-VERSION-ARHC.rpm  其它子包          Application-libs-VERSION-ARHC.rpm   其它子包      包之間:可能存在依賴關(guān)系,甚至循環(huán)依賴      自動(dòng)解決依賴包管理前端工具:          yum:rpm包管理器的前端工具          apt-get:deb包管理器前端工具          zypper: suse上的rpm前端管理工具          dnf: Fedora 18+ rpm包管理器前端管理工具           5.庫文件      查看二進(jìn)制程序所依賴的庫文件:          ldd /PATH/TO/BINARY_FILE      管理及查看本機(jī)裝載的庫文件:          ldconfig          /sbin/ldconfig-p: 顯示本機(jī)已經(jīng)緩存的所有可用庫文件名及文件路徑映射關(guān)系          配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf          緩存文件:/etc/ld.so.cache           6.包管理器      程序包管理器:          功能:將編譯好的應(yīng)用程序的各組成文件打包一個(gè)或幾個(gè)程序包文件,從而方便快捷地實(shí)現(xiàn)程序包的安裝、卸載、查詢、升級(jí)和校驗(yàn)等管理操作      程序包的組成清單(每個(gè)程序包單獨(dú)實(shí)現(xiàn))          RPM包內(nèi)的文件清單          RPM的元數(shù)據(jù),如名稱,版本,依賴性,描述等          安裝或卸載時(shí)運(yùn)行的腳本      數(shù)據(jù)庫(公共)  路徑:/var/lib/rpm           程序包名稱及版本          依賴關(guān)系          功能說明          包安裝后生成的各文件路徑及校驗(yàn)碼信息               7. 獲取程的來源                       1)系統(tǒng)發(fā)版的光盤或官方的服務(wù)器; CentOS鏡像:           http://mirrors.aliyun.com           http://mirrors.sohu.com           http://mirrors.163.com 2) 項(xiàng)目官方站點(diǎn) 3) 第三方組織:       Fedora-EPEL       搜索引擎:           http://pkgs.org           http://rpmfind.net           ttp://rpm.pbone.net 4) 自己制作

三、CentOS系統(tǒng)上rpm命令管理程序包:

功能:安裝、卸載、升級(jí)、查詢、校驗(yàn)、數(shù)據(jù)庫維護(hù)

1.安裝

格式:rpm -i[option] PACKAGE_FILE 選項(xiàng):      -i:表示install安裝      -v -vv:表示顯示安裝過程,后者顯示更加詳細(xì);      -h:以#號(hào)顯示進(jìn)度條格式;      -nodeps:忽略依賴關(guān)系      -force:強(qiáng)制動(dòng)作,注意安裝成功后可能不能運(yùn)行;      -test:測(cè)試安裝,作為測(cè)試檢查      -nosignature:不檢查簽名就是來源合法性;      -nodigest:不檢查包完整性;MD5頭;      -noscipts:不執(zhí)行程序包腳本片斷                 注意:rpm自帶四類腳本                           %pre:安裝前腳本;   -nopre                           %post:安裝后腳本;  -nopost                           %preun:卸載前腳本; -nopreun                           %postun:卸載后腳本;-nopostun  使用:        rpm -ivh  PACKAGE_FILE

2.升級(jí)

格式: rpm -U|F[optIon] PACAGE_FILE   選項(xiàng):      -U:表示不管軟件事先是否存在都要升級(jí),存在就升級(jí),不存在就安裝;      -F:表示軟件軟件存在就升級(jí),如何不存在,就放棄升級(jí);      -oldpackage:降級(jí),如果升級(jí)之后發(fā)現(xiàn)有Bug或者兼容性問題,可以使用此選項(xiàng)回滾到升級(jí)前的版本;      -force:強(qiáng)制動(dòng)作,注意安裝成功后可能不能運(yùn)行;      -replacepkgs:注意不能替換配置文件;      注意:         (1)不要對(duì)kernel做升級(jí)操作;支持多kernel并存;可以直接安裝;         (2)修改過的配置升級(jí)不會(huì)覆蓋,升級(jí)同新文件,會(huì)重命名為file.rpmnew

3.查詢:

格式:rpm -q[option] [PACKAGE-NAME|PACKAGE_FILE] 選項(xiàng):      -qa:查詢系統(tǒng)所有已安裝的程序包;      -qf /path/to/file:查詢文件是由那個(gè)程序包生成;      -ql:查詢程序生成的文件:      -qi:查詢程序?qū)傩孕畔ⅲ?     -qc:查詢程序配置文件;      -qd:查詢程序提供的文檔      -q -whatprovides CAPABILITY(功能):查詢這種CAPABILITY由那個(gè)程序提供;      -q -whatrequires CAPABILITY:查詢這種CAPABILITY被哪些程序包依賴;      -q -scripts:查詢程序包生成的腳本;      -q -changelog:查詢軟件歷史      查詢未安裝的軟件包信息,需要加-p選項(xiàng)跟上面的選項(xiàng)結(jié)合使用,后面的參數(shù)必須是PACKAGE_FILE;      列如:          -qpi:查詢指定PACKAGE_FILE的程序?qū)傩孕畔ⅲ?/pre>

4.卸載

格式:rpm -e[option] PACKAGE-NAME 選項(xiàng):      -vh:顯示過程      -nodeps:忽略依賴      -noscripts:忽略腳本      -allmatches:卸載所有匹配指定名稱的程序包,也就是說卸載軟件名稱中包含此名稱的所有包;      -test:測(cè)試檢查卸載,不是真卸載  注意:      卸載會(huì)檢查依賴關(guān)系,如果卸載的軟件被其他程序依賴,請(qǐng)謹(jǐn)慎卸載,否則導(dǎo)致其依賴程序無法運(yùn)行;       使用:        rpm -e  PACKAGE_FILE

5.校驗(yàn)

工作原理:校驗(yàn)檢查的是軟件包來源的合法性和完整性,要想對(duì)它們校驗(yàn)檢查,必須要有校驗(yàn)機(jī)制,這種機(jī)制是根據(jù)簽名和加密實(shí)現(xiàn)的,通常發(fā)行版的光盤中會(huì)有一個(gè)包含所有軟件特征碼的文件,特征碼是根據(jù)軟件包特征提取的,通過單項(xiàng)加密實(shí)現(xiàn)的用來校驗(yàn)軟件包的完整性,如果軟件包在獲取途中被修改,在系統(tǒng)中再次提取軟件包特征碼,跟系統(tǒng)已有的特征碼文件比對(duì),不同則判斷被攥該,修改過的軟件包,根據(jù)相同的加密算法提取的特征肯定不同;來源合法性是根據(jù)簽名實(shí)現(xiàn)的;特征碼文件被稱為公鑰;校驗(yàn)是由校驗(yàn)程序完成的,默認(rèn)rpm命令安裝時(shí)會(huì)調(diào)用; 公鑰獲?。?      官方網(wǎng)站       系統(tǒng)光盤       系統(tǒng)配置文件中,這是系統(tǒng)在安裝時(shí)從安裝光盤復(fù)制進(jìn)去的         系統(tǒng)公鑰位置:/etc/pik/rpm-gpg/RPM-GPG-KEY-CentOS-7 導(dǎo)入公鑰:          rpm -import /path/to/pub.key 校驗(yàn)軟件:          rpm -V PACKAGE-NAME:校驗(yàn)安裝文件自安裝后是否被修改過,根據(jù)PMS記錄信息判斷;          rpm -K PACKAGE_FILE:對(duì)指定未安裝的軟件包進(jìn)行手工校驗(yàn);

6.數(shù)據(jù)庫重建

默認(rèn)數(shù)據(jù)庫目錄位置:/var/lib/rpm 語法格式:        rpm -initdb     :初始化數(shù)據(jù)庫        rpm -rebuilddb  :重新構(gòu)建        -dbpath=/path/  :指定數(shù)據(jù)庫創(chuàng)建位置;

四、CentOS系統(tǒng)上yum命令管理程序包:

1.yum配置文件

yum repository:yum repo(yum倉庫),存儲(chǔ)了眾多rpm 包及包的相關(guān)的元數(shù)據(jù)文件(放置于特定目錄repodata) 文件服務(wù)器:       ftp://       http://       file:/// yum 客戶端配置文件:      /etc/yum.conf :為所有倉庫提供公共配置,一般不做更改      /etc/yum.repos.d/*.repo :為倉庫的指向提供配置 倉庫指向的定義:      [repositoryID]       name=Some name for this repository,yum倉庫描述       baseurl=url://path/to/repository/,yum倉庫路徑,支持上述三種路徑       enabled={1|0},0表示禁用,1表示啟用,可以不寫表示啟用,但是寫錯(cuò)enabled會(huì)造成禁用       gpgcheck={1|0},此行不寫要檢測(cè),0是不檢測(cè)包,1是檢查包       pgkey=URL 此外假如系統(tǒng)上已經(jīng)裝有檢查文本文件/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7,相當(dāng)于以上兩項(xiàng)       enablegroups={1|0},包組       failovermethod={roundrobin|priority},優(yōu)先級(jí)-(默認(rèn)為:roundrobin,意為隨機(jī)挑選; cost=默認(rèn)為1000)

2.yum 命令的用法

格式:yum [options] [command] [package …] 1)顯示倉庫列表:     yum repolist [all|enabled|disabled] 2)顯示程序包:     yum list 3)安裝程序包(centos7上yum支持補(bǔ)全,因?yàn)槠鋌ash版本更高):     yum install package1 [package2] […]        yum reinstall package1 [package2] […] (重新安裝) 4)升級(jí)程序包:     yum update [package1] [package2] […]        yum downgrade package1 [package2] […] (降級(jí)) 5)檢查可用升級(jí):     yum check-update 6)卸載程序包:     yum remove | erase package1 [package2] […]  ) 7)查看程序包信息information:     yum info […] 8)查看指定的特性( 可以是某文件)是由哪個(gè)程序包所提供:     yum provides | whatprovides feature1 [feature2] […],類似于rpm的-qf選項(xiàng) 9)清理本地緩存(yum緩存在主配置文件中有說明即是#cat /etc/yum.conf有相關(guān)說明): 安裝程序包時(shí),下載的包文件存放于cachedir=/var/cache/yum/$basearch/$releasever中,其中$basearch是硬件架構(gòu),$releasever是操作系統(tǒng)版本號(hào)     yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ] . 10) 構(gòu)建緩存:     yum makecache 11) 搜索:     yum search string1 [string2] […],以指定的關(guān)鍵字搜索程序包名及summary信息 12) 查看指定包所依賴的capabilities:     yum deplist package1 [package2] […] 13) 查看yum 事務(wù)歷史:         yum歷史日志文件:/var/log/yum.log     #cat /var/log/yum.log也可以查看yum事務(wù)歷史     yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats] 14) 包組管理的相關(guān)命令: 單個(gè)包的功能有限,為了實(shí)現(xiàn)復(fù)雜的功能,需要許多包組成包組     yum groupinstall group1 [group2] […] ,安裝包組     yum groupupdate group1 [group2] […] ,升級(jí)包組     yum grouplist [hidden] [groupwildcard] […] ,查看包組列表     yum groupremove group1 [group2] […] ,卸載包組     yum groupinfo group1 […] ,查看包組信息

3. 如何使用光盤當(dāng)作本地yum 倉庫

1) 掛載光盤至某目錄,例如/mnt/cdrom [root@localhost ~]# mkdir /mnt/cdrom [root@localhost ~]# mount /dev/cdrom /mnt/cdrom  2) 創(chuàng)建配置文件 [root@localhost ~]# vim /etc/yum.repos.d/yum.repo [cdrom] name=yum test baseurl=file:///mnt/cdrom或者file:///misc/cd gpgcheck=0 gpgkey= enabled=1

4. yum 的命令行選項(xiàng)

-nogpgcheck:禁止進(jìn)行g(shù)pgcheck檢查 -y:自動(dòng)回答為“yes” -q:靜默模式 -disablerepo=repoidglob:臨時(shí)禁用此處指定的repo -enablerepo=repoidglob:臨時(shí)啟用此處指定的repo -noplugins:禁用所有插件

5. yum 倉庫

1) yum 的repo配置文件中可用的變量:      $releasever: 當(dāng)前OS的發(fā)行版的主版本號(hào)      $arch: 平臺(tái),i386,i486,i586,x86_64等等      $basearch:當(dāng)前基礎(chǔ)平臺(tái)架構(gòu) 實(shí)例:      baseurl=http://server/centos/$releasever/$basearch/      http://server/centos/7/x86_64      http://server/centos/6/i384 2) 創(chuàng)建自定義yum倉庫:      createrepo [options] <directory>      其中yum需要的一些依靠性、校驗(yàn)信息等等都存放在repodata目錄中,所以要自定義建立yum源不僅需要rpm包,也是離不開repodata目錄,repodata目錄文件可以由createrepo命令生成

五、源碼安裝

  1. C代碼編譯安裝三步驟-在源代碼目錄下操作

C代碼編譯安裝三步驟:    1) ./configure:         (1) 通過選項(xiàng)傳遞參數(shù),指定啟用特性、安裝路徑等;執(zhí)行時(shí)會(huì)參考用戶的指定以及Makefile.in文件生成makefile;      (2) 檢查依賴到的外部環(huán)境;    2) make:      根據(jù)makefile文件,構(gòu)建應(yīng)用程序;    3) make install 開發(fā)工具:      autoconf: 生成configure腳本      automake:生成Makefile.in         建議:安裝前查看INSTALL,README 開源程序源代碼的獲?。?     官方自建站點(diǎn):          apache.org (ASF)          mariadb.org      ...      代碼托管:             SourceForge          Github.com          code.google.com c/c++: gcc (GNU C Complier) 編譯C源代碼:     前提:提供開發(fā)工具及開發(fā)環(huán)境     開發(fā)工具:make, gcc等     開發(fā)環(huán)境:開發(fā)庫,頭文件     glibc:標(biāo)準(zhǔn)庫 通過“包組”提供開發(fā)組件     CentOS 6: "Development Tools", "Server Platform Development", 第一步:configure腳本     選項(xiàng):指定安裝位置、指定啟用的特性         --help: 獲取其支持使用的選項(xiàng)     選項(xiàng)分類:         裝路徑設(shè)定:       --prefix=/PATH/TO/SOMEWHERE: 指定默認(rèn)安裝位置;默認(rèn)為/usr/local/       --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;     system types:         Optional Features: 可選特性      --disable-FEATURE      --enable-FEATURE[=ARG]         Optional Packages: 可選包      --with-PACKAGE[=ARG]      --without-PACKAGE 第二步:make 第三步:make install

2. 安裝后的配置:(以httpd為例子)

1) 將編譯安裝后的二進(jìn)制程序目錄導(dǎo)入至PATH 環(huán)境變量中,就可以直接使用命令而不再用寫絕對(duì)路徑或相對(duì)路徑; 編輯文件/etc/profile.d/NAME.sh #vim /etc/profile.d/http2.sh PATH=$PATH:/usr/local/http2/bin 2) 導(dǎo)入庫文件路徑 編輯/etc/ld.so.conf.d/NAME.conf 添加新的庫文件所在目錄至此文件中#vim /etc/ld.so.conf.d/http2.sh /usr/local/http2/lib 然后讓系統(tǒng)重新生成緩存#ldconfig [-v] 3) 導(dǎo)入頭文件,頭文件的默認(rèn)位置是/usr/include 基于鏈接的方式實(shí)現(xiàn):ln -sv [root@localhost htdocs]# cd /usr/include [root@localhost include]# ln -s /usr/local/http2/include http2 4) 導(dǎo)入幫助手冊(cè) 編輯/etc/man.config|man_db.conf文件 添加一個(gè)MANPATH /usr/local/http2/man

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站標(biāo)題:Linux的包管理工具介紹-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article44/degsee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站改版、用戶體驗(yàn)品牌網(wǎng)站建設(shè)、搜索引擎優(yōu)化、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司