一、軟件運行環(huán)境
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供郴州企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站設(shè)計、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為郴州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。API: Application Programming Interface
國際標準 POSIX: Portable OS
執(zhí)行流程: 程序源代碼 –> 預(yù)處理 –> 編譯 –> 匯編 –> 鏈接
靜態(tài)編譯:將編譯完成的程序代碼以及所依賴的庫文件一起打包使用
共享(動態(tài))編譯:使用獨立的外置的庫文件,與系統(tǒng)中的其他程序共享庫,linux 中以 .so結(jié)尾,譯為共享對象
ABI: Application Binary Interface 應(yīng)用程序二進制接口
(Windows與Linux的ABI不兼容)
linux: ELF(Executable and Linkable Format)
windows:PE( Portable Executable)
庫級別的虛擬化:
Linux: WINE
Windows: Cywin
二、C程序編譯過程
三、Java程序運行
三、開發(fā)語言
系統(tǒng)級開發(fā)
C
C++
應(yīng)用級開發(fā)
java
delphi
Python
go
php
perl
ruby
四、包管理器
二進制應(yīng)用程序的組成部分:
二進制文件、庫文件、配置文件、幫助文件
程序包管理器:
debian: deb文件, dpkg包管理器
redhat: rpm文件, rpm包管理器
rpm: Redhat Package Manager
RPM Package Manager
包命名
源代碼: name-VERSION.tar.gz|bz2|xz
VERSION: major.minor.release
rpm包命名方式:
name-VERSION-release.arch.rpm
例: bash-4.2.46-19.el7.x86_64.rpm
VERSION: major.minor.release
release: release.OS
常見的arch:
x86: i386, i486, i586, i686
x86_64: x64, x86_64, amd64
powerpc: ppc
跟平臺無關(guān): noarch
包命名和工具
包:分類和拆包
Application-VERSION-ARCH.rpm: 主包
Application-devel-VERSION-ARCH.rpm 開發(fā)子包
Application-utils-VERSION-ARHC.rpm 其它子包
Application-libs-VERSION-ARHC.rpm 其它子包
包之間:可能存在依賴關(guān)系,甚至循環(huán)依賴
解決依賴包管理工具:
yum: rpm包管理器的前端工具
apt-get: deb包管理器前端工具
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具
庫文件
查看二進制程序所依賴的庫文件:
ldd /PATH/TO/BINARY_FILE
管理及查看本機裝載的庫文件:
ldconfig
/sbin/ldconfig -p: 顯示本機已經(jīng)緩存的所有可用庫文件
名及文件路徑映射關(guān)系
配置文件: /etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
緩存文件: /etc/ld.so.cache
(當安裝時需要依賴庫時,需要手動在conf文件中加入依賴庫的路徑,然后用ldconifg,讀取庫的地址到緩存中,以供安裝時候調(diào)用)
包管理器
程序包管理器:
功能:將編譯好的應(yīng)用程序的各組成文件打包一個或幾個
程序包文件,從而方便快捷地實現(xiàn)程序包的安裝、卸載、查詢、
升級和校驗等管理操作
1、包文件組成 (每個包獨有)
RPM包內(nèi)的文件
RPM的元數(shù)據(jù),如名稱,版本,依賴性,描述等
安裝或卸載時運行的腳本 (非官方包,則應(yīng)特別注意此腳本,確認無誤才安裝)
2、數(shù)據(jù)庫(公共)
程序包名稱及版本
依賴關(guān)系
功能說明
包安裝后生成的各文件路徑及校驗碼信息
程序包的來源
管理程序包的方式:
使用包管理器: rpm
使用前端工具: yum, dnf
獲取程序包的途徑:
(1) 系統(tǒng)發(fā)版的光盤或官方的服務(wù)器;
CentOS鏡像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
(2) 項目官方站點
(3) 第三方組織:
Fedora-EPEL:
Extra Packages for Enterprise Linux
Rpmforge:RHEL推薦,包很全
搜索引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/
(4) 自己制作
注意:檢查其合法性: 來源合法性,程序包的完整性
rpm包管理
CentOS系統(tǒng)上使用rpm命令管理程序包:
安裝、卸載、升級、查詢、校驗、數(shù)據(jù)庫維護
安裝:
rpm {-i|–install} [install-options] PACKAGE_FILE…
-v: verbose 顯示詳細信息
-vv: 顯示更詳細的信息
-ql 顯示包內(nèi)容
-h: 以#顯示程序包管理執(zhí)行進度
rpm -ivh PACKAGE_FILE …
rpm包安裝
[install-options]
–test: 測試安裝,但不真正執(zhí)行安裝; dry run模式
–nodeps:忽略依賴關(guān)系
–replacepkgs 替代、覆蓋安裝 | replacefiles 安裝包、版本等不同,但是生成的
系統(tǒng)內(nèi)容一樣,覆蓋安裝
–nosignature: 不檢查來源合法性
–nodigest:不檢查包完整性
–noscipts:不執(zhí)行程序包腳本片斷
%pre: 安裝前先運行腳本; –nopre
%post: 安裝后腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載后腳本; –nopostun
rpm包升級
升級:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則不執(zhí)行升級操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級
–force: 強行升級
升級注意項
(1) 不要對內(nèi)核做升級操作; Linux支持多內(nèi)核版本并存,因此
,對直接安裝新版本內(nèi)核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本
的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而
把新版本的文件重命名(FILENAME.rpmnew)后保留
包查詢
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作;
–whatprovides CAPABILITY:查詢指定的CAPABILITY
由哪個包所提供
–whatrequires CAPABILITY:查詢指定的CAPABILITY被
哪個包所依賴
rpm2cpio 包文件|cpio –itv 預(yù)覽包內(nèi)文件
rpm2cpio 包文件|cpio –id “ *.conf” 釋放包內(nèi)文件
包查詢
[query-options]
–changelog:查詢rpm包的changelog
-c: 查詢程序的配置文件
-d: 查詢程序的文檔
-i: information
-l: 查看指定的程序包安裝后生成的所有文件;
–scripts:程序包自帶的腳本片斷
-R: 查詢指定的程序包所依賴的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
查詢用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql
PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …
-qa
卸載:
rpm {-e|–erase} [–allmatches] [–nodeps] [–
noscripts] [–notriggers] [–test] PACKAGE_NAME …
包校驗
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
包來源合法性驗正及完整性驗正:
完整性驗正: SHA256
來源合法性驗正: RSA
公鑰加密:
對稱加密:加密、解密使用同一密鑰;
非對稱加密:密鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
導(dǎo)入所需要公鑰:
rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發(fā)行版光盤提供: RPM-GPG-KEY-CentOS-7
rpm -qa gpg-pubkey*
rpm數(shù)據(jù)庫
數(shù)據(jù)庫重建:
/var/lib/rpm
rpm {–initdb|–rebuilddb}
initdb: 初始化
如果事先不存在數(shù)據(jù)庫,則新建之
否則,不執(zhí)行任何操作
rebuilddb:重建
無論當前存在與否,直接重新創(chuàng)建數(shù)據(jù)庫
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:rpm包及rpm命令詳解-創(chuàng)新互聯(lián)
文章位置:http://www.rwnh.cn/article40/ccjoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、全網(wǎng)營銷推廣、網(wǎng)站策劃、做網(wǎng)站、建站公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容