應用程式存放位置:
二進制程式:
/bin /sbin
/usr/bin /usr/sbin
/usr/local/bin /usr/local/sbin
庫檔案(就是功能子產品):
/lib /usr/lib
/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
頭檔案:
/usr/include
配置檔案:
/etc
/etc/httpd/
幫助檔案:
/usr/share/man
/etc/man.config
/usr/share/doc
軟體管理功能:
安裝
解除安裝
更新
查詢
校驗
RedHat
Redhat package Manager:RPM(标準的軟體管理格式)
rpm格式的軟體包的命名:
name-version-release.arch.rpm
子rpm包name-subname
version:
major(主版本号)
minor(次版本号)
release(發行号),bug的修正
release:rpm包的制作者制作的次數
arch:硬體架構,平台
i386、i486、i586、i686,x86_64
noarch(與平台無關)
一個軟體包為了管理上的友善,在制作成rpm包時,可以分為多個功能相對獨立rpm包
name-version:主包
name-subname-version:子包
name-devel-version:庫檔案,頭檔案
二進制程式:有格式,特定于某硬體平台(編譯器自身會在軟體編譯時對軟體在特定平台上的運作進行優化)
依賴關系:
需要自動判斷依賴關系,又能自動解決依賴關系軟體包管理工具:
前端管理工具的出現: yum:yellowdog update modifier(阿黃更新管理器)
linux上軟體包的安裝途徑:
1、rpm包
rpm指令
yum指令
2、源碼包
編譯安裝
3、編譯好的二進制壓縮包,解壓後配置使用
Mysql
NongoDB
rpm指令:
rpm -i PACKAGE1 PACKAGE2 …
rpm -U|-F PACKAGE1 PK2 …
rpm -e PK_name PK2_name
rpm -q
檢驗
rpm -V PK_name
rpm包中包含的内容:
要安裝的檔案
要執行的腳本
pre 安裝前要執行的腳本
post 安裝後要做收尾工作執行的腳本
preun 解除安裝之前執行的腳本
postun 解除安裝完成後執行的腳本
安裝:(包與包廂的所依賴的東西叫capacity(能力))
rpm -i
-v 顯示安裝的詳細資訊,v越多,資訊越詳細
-h 顯示安裝進度
--test 安裝前的測試,不做安裝
--nodeps 忽略依賴關系
--replacepkgs 由于一個已安裝的軟體包的某些檔案被删除時,重裝一個軟體包,替換
--force 強行安裝,無視沖突
解除安裝:
rpm -e PKG_name
--nodeps
更新:old-->new;new-->old(降級)
rpm
-F:old-->new,無old,則不new;
-U:old-->new,無old,則安裝new;
-v
-h
注意:核心不應該更新安裝,核心允許多版本并存,是以,可直接安裝多個不同版本核心
--oldpackage 降級
查詢:
rpm -q PKG_NAME
rpm -qa
rpm -qi PKG_NAME 查詢已安裝軟體包的資訊
單向加密:
rpm 包:單向加密:提取資料特征碼
1、如果原資料一樣,結果一定會一樣
2、雪崩效應:原資料有一點點不同,結果大不同
rpm包的驗證簽名:
用官方的公鑰解密這段加密的特征碼,得到可靠的官方提供的特征碼;
自己再使用同樣的方法提取的特征碼,并比較和解密出來的特征碼是否一緻;
rpm -ql PKG_NAME 用于列出此rpm包安裝完成後在系統上生成了哪些檔案
rpm -qf FILE(路徑) 使用者查詢某檔案是由哪個rpm安裝包生成的
rpm -qc PKG_NAME 查詢rpm包生成的配置檔案
rpm -qd PKG_NAME 查詢此rpm包生成的文檔
rpm -q --scripts PKG_NAME 查詢rpm包内置的腳本
rpm -qpl PKG 查詢還沒有安裝的rpm包在安裝後會建立哪些檔案
rpm -qpi PKG 查詢還沒有安裝的rpm包的詳細資訊
檢驗:
rpm -V PKG-NAME 檢查某rpm包安裝生成的檔案有沒有被非法改變過;
rpm -k PKG 檢查簽名
檢驗簽名:
rpm --import 密鑰檔案(/etc/pki/rpm-gpg)
rpm -k PKG
--nodigest:不檢驗單向加密的相關内容(sha1,md5)
--nosignature:不檢驗簽名(gpg,dsa)
rpm資料庫:(var/lib/rpm)
rpm --initdb 重新初始化丢失的庫
--rebuilddb 重建,無論事前是否存在
yum: 自動解決依賴關系
repository:倉庫,這裡存放的就是yum源資料
擷取資料的方法:
1、yum倉庫在本地某目錄 file:///
2、yum倉庫在遠端伺服器
ftp://
http://
yum倉庫包括的内容:
rpm包
repodata/ 隻有包含此目錄為其子目錄的那個路徑才可以用作yum源
repomd.xml 此檔案儲存時間戳
primary.xml.gz 目前yum倉庫内每一個rpm包的名字及其彼此間的依賴關系,此外還包含每一個rpm包能夠安裝生成的檔案
filelists.xml.gz 所有rpm包包含的安裝生成的檔案的檔案清單
other.xml.gz 額外資訊,主要包含的是rpm包的changellog(改變日志)
yum指令,有許多子指令
/etc/yum.conf
/etc/yum.repos.d/*.repo
/etc/yum/pluginconf.d/
yum的配置檔案 分為兩段
全局配置
分段配置
[repo]
name=primary yum repository
baseurl=file:///var/yumrepo/server(本地) ftp://192.168.0.254/pub/server(遠端伺服器上) ftp://username:[email protected]/pub/server(有使用者名和密碼的伺服器)
enabled=1 是否啟用這個yum源
gpgcheck=1 是否檢測rpm包的簽名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
yum的指令:
repolist 列出來已安裝的包
list {installed|available|updates|all}
clean {all|packages|metadata}
清除cache(中繼資料,rpm包)
grouplist
groupinfo "groupname"
info PKG_NAME 顯示指定包的資訊
search KEYWORD 查找指定關鍵字的包
whatprovides FILE 查找某檔案是由哪個包安裝生成的
provides FILE 查找某檔案是由哪個包安裝生成的
install PKG_NAME
remove PKG_NAME
update
groupinstall 組名
groupremove 組名
reinstall
check-update檢測哪些能更新的包
localinstall
自己建立yum源:
1、yum install createrepo 先安裝createrepo指令
2、把rpm包放在一個目錄 /var/myum
3、createrepo /var/myum 運作這個指令後/var/myum下會産生repodata目錄
4、vi /etc/yum.repos.d/local.repo