概述:
創(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_FILE2.升級(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.rpmnew3.查詢:
格式: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_FILE5.校驗(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=14. 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命令生成五、源碼安裝
C代碼編譯安裝三步驟-在源代碼目錄下操作
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)
猜你還喜歡下面的內(nèi)容