(編譯)二進制格式腳 本: 解釋器(二進制程序)源代碼-->..."/>
您好,登錄后才能下訂單哦!
菜鳥學Linux 第029篇筆記 軟件管理,rpm命令
應用程序:
程序:底層Architecture密切相關
C語言: 源代碼-->(編譯)二進制格式
腳 本: 解釋器(二進制程序)
源代碼-->編譯-->鏈接-->運行
程序:
庫
靜態(tài)
動態(tài)
靜態(tài)鏈接
動態(tài)鏈接
程序:指令+數(shù)據(jù)
Linux 共享庫 .so (shared object)
程序配置文件:
程序組成部分:
二進制程序
庫(包含程序自己私有的庫)會將其自己的庫文件放入到/lib /usr/lib
配置文件
幫助文件
linux 一級目錄
/boot
/etc
/usr
/var
/lib
/tmp
/bin
/sbin
/proc
/sys
/mnt
/media
/home
/root
/misc
/opt
/srv
安裝軟件所涉及的目錄:
1.系統(tǒng)啟動就需要用到的程序,不能掛載到額外的分區(qū),必須在根上(幫助文檔目錄除外)
/etc, 程序配置文件
/bin, 程序二進制文件
/sbin, 程序二進制文件
/lib, 庫文件
/usr/share/man(幫助文件) 全局共享只讀目錄
2.提供系統(tǒng)核心功能,可以單獨分區(qū)(不推薦)
/usr/
bin
sbin
lib
3. 安裝第三方軟件,單獨分區(qū)(推薦)
/usr/local
bin
sbin
lib
etc
man
/opt 早期第三方軟件安裝到此目錄
其它目錄
以下兩個目錄稱為偽文件系統(tǒng),不能單獨分區(qū),默認為空(啟動后才會有)
/proc 給用戶提供調(diào)用接口
/sys 硬件調(diào)用接口
/dev 設備文件 不可單獨分區(qū)??!
udev 能夠利用內(nèi)核所提供的硬件信息,動態(tài)創(chuàng)建設備文件,
并給設備文件取一個讓用戶容易認識的名字
/home 家目錄,建議單獨 但作為服務器來講用到不多
/root 管理員家目錄 可以單獨分區(qū)但不建議
/var 外圍文件系統(tǒng)日志文件等等 建議單獨分區(qū)
/boot 內(nèi)核,initrd(initramfs) 建議單獨分區(qū)
POST-->BIOS(HD)-->(MBR)bootloader(文件系統(tǒng)結構,ext2,ext3...)-->內(nèi)核
/boot 一個分區(qū) 根lvm
程序:指令+數(shù)據(jù)
指令:芯片
CPU:普通指令,特權指令
指令集
編譯 程序指令-->匯編指令-->所對應的芯片指令(intel,Amd,Powerpc...)
軟件包管理器
1.打包成一文件:二進制程序,庫文件,配置文件,幫助文件
2.生成數(shù)據(jù)庫 追蹤所安裝的每一個文件
功能
1.制作軟件包;
2.安裝,卸載,升級,查詢,校驗;
Redhat,SUSE : RPM
Redhat Package Manager
RPM is Package Manager
Debian: dpt
依賴關系:
當用rpm安裝軟件時,有可能會遇到安裝A軟件需要先安裝B軟件
而安裝B軟件需要安裝C軟件, 此種關系稱為依賴關系;
后端工具,rpm dpt 安裝軟件時,需要自己來解決安裝軟件時的依賴關系
需要手動安裝該軟件所依賴的其它軟件
前端工具,yum apt-get 可以自動幫用戶解決安裝軟件時的依賴關系
即自動安裝所需要安裝的其它軟件
前端工具:yum apt-get
后端工具:RPM, dpt
yum: yellowdog Update Modifier
rpm命令
rpm:
數(shù)據(jù)庫:/var/lib/rpm
rpmbuild:
安裝、查詢、卸載、升級、校驗、數(shù)據(jù)庫重建、驗證數(shù)據(jù)包等工作
rpm命名:
包:組成部分
主包:
bind-9.7.1-1.i589.e15.rpm
子包:
bind-lib-9.7.1-1.8586.e15.rpm
包名格式
name-version-release-.arch.rpm
bind-major.minor.release-release.arch.rpm
主版本號:重大改進
次版本號:某個子功能發(fā)生重要變化
發(fā)行號:修正部分bug,調(diào)整一點功能
rpm包:
二進制格式
源代碼格式
查看當前系統(tǒng)內(nèi)核版本
uname ( print system information)
-a, --all
print all information, in the following order, except omit -p
and -i if unknown:
rpm command:
1.安裝
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm -ivh /path/name.rpm
--nodeps
Don’t do a dependency check before installing or upgrading
a package. 忽略依賴關系,但是軟件安裝后可能會無法運行
--force 強行安裝,可以實現(xiàn)重裝或降級
--test Do not install the package, simply check for and report
potential conflicts.
2.查詢
rpm -q PACKAGE_NAME 不能跟路徑 查詢指定的包是否已經(jīng)安裝 query
rpm -qa 查詢已經(jīng)安裝的所有包 all
rpm -qi PACKAGE_NAME 查詢指定包的說明信息 information
rpm -ql PACKAGE_NAME 查詢指定包安裝生成的文件列表list directory
rpm -qc PACKAGE_NAME 查詢指定的安裝包的配置文件config
rpm -qf /path/to/somefile 查詢指定的文件是由哪個rpm包安裝生成的;
-qd PACKAGE_NAME 查詢軟件包的幫助文件 docfiles
-q --scripts PACKAGE_NAME 查詢軟件包中包含的腳本
如果某rpm包尚未安裝,我們需要查詢其說明信息,安裝以后會生成的文件
rpm -qpi /path/to/package.rpm
3.升級
rpm -Uvh /path/to/new_package_file.rpm 如果裝有老版本的,則升級,否則安裝
rpm -Fvh /path/to/new_package_file.rpm 如果裝有老版本的,則升級,否則退出
--oldpackage 降級
4.卸載
rpm -e PACKAGE_NAME 卸載rpm包 erase
-nodeps 卸載但不刪除所依賴的rpm包
5.校驗
rpm -V PACKAGE_NAME 驗證rpm軟件包
6.重建rpm數(shù)據(jù)庫
rpm
--rebuilddb: 重建數(shù)據(jù)庫,一定會重新建立;
initdb: 初始華數(shù)據(jù)庫,沒有才建立,有就不用建立;
Use --initdb to create a new database if one doesn’t already
exist (existing database is not overwritten),
use --rebuilddb to rebuild the database indices from the installed
package headers.
7.檢驗來源合法性,及軟件包完整性
加密類型
對稱:加密解密使用同一個密鑰
非對稱:一對密鑰,公鑰,私鑰;公鑰隱含于私鑰中,可以提取出來,并公開出去
單向:MD5
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 存放驗證信息 public key
如果沒有導入驗證信息rpm不可對軟件包做數(shù)據(jù)認證
導入驗證信息
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm {-K|--checksig} [--nosignature] [--nodigest] /path/to/package.rpm
用來驗證安裝包的完整性和合法性
dsa, gpg: 驗證軟件包來源合法性,即驗證簽名 --nodigest 忽略此項
shal, md5: 驗證軟件包完整性:可以使用 --nosignature 忽略此項
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。