1. 程式人生 > >軟件包管理 1 -----基本知識 rpm yum

軟件包管理 1 -----基本知識 rpm yum

第一部分

軟件包管理,
要做到如何管理軟件 ,包括安裝 ,卸載, 基本的功能查詢,搜索等
重點如何使用rpm包
yum管理
如何編譯安裝
軟件 運行和編譯
ABI:Application Binary Interface 操作系統接口標準,調用2進制程序的接口
Windows 與Linux不兼容
ELF(Executable and Linkable Format)
PE (Portable Executable)
庫級別的虛擬化
Linux:WINE
Windows:Cygwin
API:Application Programming Interface 庫調用,調用庫的接口標準
POSIX:Portable OS
c語言編程
程序源代碼 ---> 預處理 ----> 編譯 ---> 匯編 ---> 鏈接

**預處理**:把其他包含部分讀進來,把註釋去掉添加行號等,比如在編譯過程中出現語法錯誤會報行號,但是預處理之後的還是文本文件。
**編譯**:把處理完的文件編譯成匯編文件,進行語義分析,語法分析,生成匯編格式的文本,匯編更接近機器語言
**匯編**:經過匯編生成二進制文件

編譯過程有兩種
靜態編譯:.a 把庫打包到一起
動態編譯:.so 運行時才臨時調用庫
Java程序運行
編譯兩次 開始編譯一次 在操作系統之前再編譯一次(解釋器),在各種操作系統上都有相應的解釋器,所以能跨平臺,

但是語言穩定 ,效率慢
開發語言
系統開發
C
C++
應用級開發
Java
Delphi
Python 中小公司
go 谷歌開發的 大公司
php
perl
ruby
包管理器

二進制應用程序的組成部分
二進制文件,庫文件,配置文件,幫助文件,
程序包管理器
debian : deb文件, dpkg包管理器
redhat : rpm文件 ,rpm包管理器
rpm: Redhat Package Manager
RPM Package Manager

二進制程序依賴系統 ,不同平臺開發的不同,
所以網上的包一般是源碼文件
二進制文件要安裝的編譯啊,匯編啊, 等等好麻煩

所以紅帽為了廣大群眾好安裝 ,就把復雜的一大堆打包了
我們只要rpm就行
包命名
源代碼: name -VERSION.tar.gz|bz2|xz
軟件名-版本號-壓縮格式
VERSION:major.minor.release
主要號碼,次要號碼,release號碼
rpm包命名方式:
name-VERSION-release.arch.rpm
包名-版本號-紅帽對包的打包次數.rhel7.5-cpu架構.rpm**
例:bash-4.2.46-19.el7.x86_64.rpm
VERSION:major.minor.release
release:release.OS
常見的arch:n 系統構架
x86:i386,i486,i586,i686
x86_64:x64,x86_64,amd64
powerpc:ppc
跟平臺無關:noarch

我下載了一個httpd-2.4.33並解壓到/root/
技術分享圖片
我又統計了一下.c結尾的文件數
技術分享圖片
這些文件都是c語言開發的
技術分享圖片
包的切分

技術分享圖片
比如httpd這個包 第一個是主包 其他的是分支包,像裝什麽就裝什麽,
tools相關的工具包
manual 說明手冊
devel 開發包
但是包和包之間有可能有依賴性
裝一個就要裝其他的包
yum:rpm包管理器的前端工具
apt-get:deb包管理器前端工具
zypper:suse上的rpm前端管理工具
dnf:Fedora 18+ rpm 包管理器前端工具(未來可能用)

(yum:底層調用的是rpm)
庫文件
查看二進制程序所依賴的庫文件
ldd /PATH/TO/BINARY_FILE
管理及查看本機裝載的庫文件
ldconfig 加載庫文件
/sbin/ldconfig -p:顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系
配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
緩存文件:/etc/ld.so.cache

ldd 只能看到單個文件用到的庫
ldconfig -p 看系統中所有加載的庫、正在使用
/etc/ld.so.conf 主配置文件,文件想調用庫,得知道庫路徑,通過主配置文件讀取庫路徑
技術分享圖片
技術分享圖片
*include包含 我們可以把配置文件放在/etc/ld.so.conf下
也可以放在以放在ld.so.conf.d/
.conf下以.conf為後綴的也可以
每一個程序都有自己的.conf文件**
程序不想要了把對應的配置文件刪了就行

軟件包管理 1 -----基本知識 rpm yum