軟件包管理,
要做到如何管理軟件 ,包括安裝 ,卸載, 基本的功能查詢,搜索等
重點如何使用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文件**
程序不想要了把對應的配置文件刪了就行
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96795