ABI 操作系統接口
API 庫的調用接口
匯編語言 是 .a 后綴的文件
二進制程序依賴系統 (ABI)
二進制需要鏈接庫才能運行
靜態編譯 二進制文件和庫打包成一個文件帶 .a后綴的
靜態編譯 把庫打包到文件
動態編譯 軟鏈接指向庫 運行的時候就去訪問調用它
Java 編譯兩次 先生成。先把源文件通過 Java編譯器生成class的文件 再通過解釋器(Java虛擬機)編譯成與操作系統接口API的二進制程序 才能運行 在系統上跑
rpm包不需要編譯安裝 直接給打包成一個文件 就可以運行
包分為 主包和其他子包
yum 只適用于centos 系列的及紅帽系列的
yum能一鍵安裝存在依賴關系的 甚至循環依賴的包 智能
yum:rpm包管理器的前端工具 (yum底層調用的還是rpm包)
apt-get:deb包管理器前端工具(解決包的依賴性)
zypper: suse上的rpm前端管理工具
dnf: Fedora 18+ rpm包管理器前端管理工具 (以后估計會代替yum)
var/lib/rpm 包的數據庫(包括包的信息)
ldd 二進制程序的命令 查詢這個命令依賴的庫文件
ldconfig -p 查看所有的庫
庫的主要路徑 /etc/ld.so.conf
緩存文件:/etc/ld.so.cache
- 包文件組成 (每個包獨有)
- RPM包內的文件
- RPM的元數據,如名稱,版本,依賴性,描述等
- 安裝或卸載時運行的腳本
數據庫(公共):/var/lib/rpm
程序包名稱及版本
依賴關系
功能說明
包安裝后生成的各文件路徑及校驗碼信息
rpm -ivh
- -i 安裝
- -v 顯示過程
- -h 顯示進度
- -vv 詳細過程
- -e 卸載包
- -q 查詢(跟包名) 某個裝好的包
- -qa 查詢所有安裝包 可以配合grep 找到你想要的找的文件
6. -ql (后跟包名)查看 包 里的文件列表
7 -qf 后跟文件 查看 文件 屬于哪個包 (文件刪除了 也可以查看它屬于哪個包 應為你下載包的 會把文件的數據 放在數據庫中 /var/lib/rpm) 數據庫沒有的話 就查詢不了安裝了什么包 下載不了刪除不了
-p 針對尚未安裝的程序包文件做查詢操作
8 -qpl (后跟包里的文件) 表示查看未安裝的包里的文件
9 -q –whatprovides 后跟關鍵字 查詢命令是由哪個包提供的
10 -q –whatrequires bash 查詢那些包依賴bash
11 -qc 只看配置文件
12 -qi 顯示包的信息 (作用 說明 官網 什么時候裝的包 時間等等
–provides: 列出指定程序包所提供的CAPABILITY
-R: 查詢指定的程序包所依賴的CAPABILITY
rpm2cpio 包文件|cpio –itv 預覽包內文件
rpm2cpio 包文件|cpio –idv 后也可以單獨安裝一個文件
rpm包安裝 [–install-options ]:
跟在條件后面
- –test 測試安裝 但不真正執行安裝 dry run 模式
- — nodeps : 安裝時忽略依賴關系
- –replacepkgs 重新安裝 如果包改過 重新安裝時會覆蓋
- –replacefiles 重新安裝 目錄重名時
- —
- –oldpackage 降級安裝 (kernel) 不覆蓋的
- — force 強制安裝
- –upgrade 安裝有舊版本包 則升級 升級后舊版本覆蓋 -U
如果不存在舊版本包 則安裝
8. — freshen 安裝有舊版本包 則升級 -F
如果不存在舊版本 則不執行升級操作
- 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配
置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名
(FILENAME.rpmnew)后保留 (它只會備份配置文件 )
- 不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版
本內核
–changelog 查看包的變化的歷史過程
-c 查詢程序的配置文件
-d 查詢程序的文檔
-i 查看包的信息
-q –scripts:程序包自帶的腳本
-q 查看程序依靠哪個能力
— allmatches 如果有兩個版本的包 會全卸載
–nodeps 安裝時忽略依賴關系
包安裝后 會更新 /var/log/rpm
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
安裝前檢查 是否完整 簽名
-K
rpm -import 導鑰匙
掛光盤 rpm -import /光盤的路徑/RPM-GPG-KEY-CentOS-6
公鑰 etc/下也有 在 /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
導入的鑰匙 也會生成一個包 gpg-pubkey
刪除鑰匙 rpm -qa “gpg-pubkey” rpm -e gpg-pubkey-c105b9de-4e0fd3a3
刪除/bin/rpm
通過rpm2cpio 光盤路徑下的rpm包 | cpio -ivd ./bin/rpm 會安裝到當前路徑 在復制到/biin/下
如果刪除rpm包
重啟 通過cdrom 進入救援模式
在當前根上 默認是 /mnt/sysinmage mount 光盤
再 通過 rpm -ivh /光盤路徑/Packages/rpm-4. …… –root=/mnt/sysimagc/ (這樣包才安裝到/root .里 不會安裝到救援模式下)
重啟即可
再求援頁面 可以切換到系統的根 chroot /mnt/sysimagc
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96814