軟體包管理器
1、打包成一檔案:二進制程式,庫檔案,配置檔案,幫助檔案
2、生成資料庫,追蹤所安裝的每一個檔案
軟體包管理器的核心功能:
1、制作軟體包;
2、安裝、解除安裝、更新、查詢、校驗;
--------------------------------rpm
rpm指令:
rpm:
資料庫: /var/lib/rpm
rpmbuild:SRPM:其提供的軟體内容并沒有被編譯,它提供的是代碼源,需要自己通過編譯。
安裝的時候RPM與SRPM需要注意的問題
1、軟體安裝的環境必須與打包時的環境需求一緻或相當;
2、需要滿足軟體的依賴屬性需求;
3、反安裝時需要特别小心,最底層的軟體不可先删除,否則可能造成整個系統的問題,
則此時需要的步驟、用SRPM
先将該檔案以RPM管理的方式編譯,此時SRPM會被編譯成為RPM檔案;
然後将編譯完成的RPM檔案安裝到Linux系統中
檔案格式 檔案名格式 直接安裝與否 内含程式類型 可否修改參數并編譯
RPM XXX.rpm 可 已編譯 不可
SRPM XXX.src.rpm 不可 未編譯的源代碼 可
RPM的優點
1、RPM内含已經編譯過的程式與設定檔案等資料,可以讓使用者免除重新編譯的困擾
2、RPM在被安裝之前,會先檢查系統的硬碟容量、作業系統版本,可避免檔案被錯誤安裝
3、RPM檔案本身提供軟體版本資訊、依賴屬性軟體名稱、軟體用途說明、軟體所含檔案等資訊,以便與了解軟體
4、RPM管理的方式使用資料庫記錄RPM檔案的相關參數,便于更新、删除、查詢與驗證
1、安裝(install):
rpm -i /PATH/TO/PACKAGE_FILE
-h:以#顯示進度:每個#表示2%
-v:顯示詳細安裝
-vv:顯示更詳細的過程
rpm -ivh /PATH/TO/PACKAGE_FILE
rpm -vih rp-pppoe-3.5-32.1.i386.rpm
--nodeps:忽略依賴關系
--replacepkgs:重新安裝,替換原有安裝;
--force:強行安裝,可以實作重裝或降級;
在沒有網絡的情況下,想用CD光牒來安裝,那麼就需要
挂載CD光牒,使用: mount /dev/cdrom /media
找出檔案的實際路徑:find /media -name 'pam-devel*'
測試此軟體是否有依賴性:rpm -ivh pam-devel... --text
直接安裝:rpm -ivh pam-devel...
解除安裝CD光牒:umount /dev/cdrom
2、查詢 (query)
rpm -q PACKAGE_NAMEPACKAGE_NAME
rpm -qa:查詢已經安裝的所有包
rpm -qi PACKAGE_NAME:查詢指定包的說明資訊;
rpm -ql PACKAGE_NAME:查詢指定安裝包後生成的檔案清單;
rpm -qc PACKAGE_NAME:查新指定包安裝的配置檔案;
rpm -qd PACKAGE_NAME:查新指定包安裝的配置檔案;
rpm -q --scripts PACKAGE_NAME:查詢指定包中包含的腳本
rpm -qf /PATH/TO/SOMEFILE:查新指定的檔案是由哪個rpm包安裝生成的
如果某rpm包尚未安裝,我們需查詢器說明資訊、安裝以後會生成的檔案;
rpm -qpi /PATH/TO/PACKAGE_FILE i軟體包的資訊
rpm -qpl /PATH/TO/PACKAGE_FILE l軟體包的清單
rpm -qa <==已安裝軟體
rpm -q[licdR] <==已安裝的軟體
rpm -qf 存在于系統上的某個檔案名
rpm -qp[licdR]未安裝的某個檔案名
3、更新
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的則更新,否則安裝
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的則更新,否則退出
--oldpackage:降級
4、解除安裝
rpm -e PACKAGE_NAME
--nodeps
找出與pam有關的軟體名稱,并删除
rpm -qa | grep pam
rpm -e pam
5、校驗
rpm -V PACKAGE_NAME檢查檔案是不是被非法改變過的
6、重建資料庫
rpm
--rebuilddb:重建資料庫,一定會重建立立;
--initdb:初始化資料庫,沒有才建立,有就不用建立;
7、檢驗來源合法性,及軟體包完整性;
加密類型:
對稱:加密解密使用同一對密鑰
公鑰:一對兒密鑰,公鑰,私鑰;公鑰隐含于私鑰中,可以提取出來并公開出去
單向:
/etc/pki/rpm-gpg/
rpm -K /PATH/TO/PACKAGE_FILE
dsa,gpg:驗證來源合法性,也即驗證簽名:可以使用 --nosignature略過此項
sha1,md5:驗證軟體包完整性;可以使用--nodigest,略過此項
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:導入密鑰檔案
srpm
RPM安裝:SRPM.其提供的軟體内容并沒有被編譯,它提供的是代碼源,需要自己通過編譯。
二進制格式:
源程式-->編譯-->二進制格式
有些特性是編譯標明的,如果編譯時未標明此特性,将無法使用
rpm包會落後于源碼包,甚至落後很多
定制:手動編譯安裝
編譯環境,開發環境
開發庫,開發工具,
C,C++:
gcc:GNU C Complier,C
g++:
make:項目管理工具,
makefile:定義了make(gcc,g++)按何種次序去編譯這些源程式
automake,-->makefile.in -->makefile
autoconf,-->configure配置目前檔案如何編譯
make install
編譯安裝的三步驟:
前提:準備開發環境(編譯環境)
安裝"Development Tools"和"Development Libraries"
#tar //解壓縮
#cd //cd到目前目錄
# ./configure腳本
--help
--prefix=/path/to/somewhere指定安裝路徑
--sysconfdir=/PATH/TO/CONFFILE_PATH指定配置檔案路徑
功能:1、讓使用者標明編譯特性;2、檢查編譯環境,
#make
#make install
#tar xf tengine-1.4.2.tar.gz
#cd tegnine-1.4.1
# ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
#/usr/local/tengine/sbin/ngix
解決nginx沒法直接運作,先編輯vim /etc/profile 然後加進去PATH=$PATH:/usr/local/tengine/sbin/ngix
然後重讀 source /etc/profile或者重新登入
netstat -tnlp可以檢視 其為web80端口
可以在浏覽器打開相應位址打開相應的網頁
編輯網頁檔案,可以cd /usr/local/tengine/ cd html/ ls 其為index.html
然後vim編輯
編譯好軟體包以後,如果想将其安裝到非預設路徑下
1、修改PATH環境變量,以能夠識别此程式的二進制檔案路徑
修改/etc/profile檔案
在/etc/profile.d/目錄中建立一個以.sh為名稱字尾的檔案,在裡面定義export PATH=$PATH:/path/to/somewhere
2、預設情況下,系統搜尋庫檔案的路徑/lib,/usr/lib;要增添額外搜尋路徑:
在/etc/ld.so.conf.d/目錄中建立以.conf為字尾名的檔案,而後把要增添的路徑直接寫至此檔案中;
#ldconfig:通知系統重新搜尋庫檔案
-v:顯示重新搜尋庫的過程
3、頭檔案:#include 輸出給系統
預設:/usr/include
增添頭檔案搜尋路徑,可以使用連接配接進行;
/usr/local/tengine/include/ /usr/include/
兩種方式:
ln -s /usr/local/tengine/include/* /usr/include/或
ln -s /usr/local/tengine/include /usr/include/tengine
4、man檔案路徑:預設安裝在--prefix指定的目錄下的man目錄;/usr/share/man
1、man -M /PATH/TO/MAN_DIR COMMAND
2、在/etc/man.config中添加一條MANPATH
----------------------------------------------------yum
rpm --> yum yum:rpm能力
解決rpm的依賴關系
yum倉庫中的中繼資料檔案:
primary.xml.gz
所有RPM包的清單
依賴關系
每個RPM安裝生成的檔案清單
filelists.xml.gz
目前倉庫内所有RPM包的所有檔案清單;
other.xml.gz
額外資訊,RPM包的修改日志;
repomd.xml
記錄的是上面三個檔案的時間戳和校驗和;
yum install zsh
comps*xml:RPM包分組資訊
如何為yum定義repo檔案
[Repo_ID]
name=Description
baseurl=
ftp://
http://
enabled={1|0}允許1 不允許0
gpgcheck={1|0}
gpgkey=路徑
yum [options] [command] [package ...]
-y:自動回答yes
--installroot=/some/path:将軟體安裝在/some/path中而不是預設路徑
--nogpgcheck不做檢查
list:清單
支援glob
all
available:可用的,倉庫中有尚未安裝的
installed:已安裝的
updates:可用的更新
clean:清理緩存
packages
headers
metadata
dbcache
repolist:顯示repo清單及其簡要資訊
enabled:預設
disabled
install:安裝
yum install PACKAGE_NAME
update:更新
update_to:更新為指定版本
yum list updates <==一定要是updates
remove|erase:解除安裝
info:詳細資訊
provides| whatprovides:檢視指定的檔案或特性是由哪個包安裝生成的
groupinfo
grouplist
groupinstall
groupremove
groupupdate
CD光牒建立yum
/media/cdrom/{Sever,VT,Cluster,ClusterStorage}
本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1156530,如需轉載請自行聯系原作者