Linux—程序包安装与管理
1、軟件包是對于一種軟件所進行打包的方式。在不同的操作系統(tǒng)中,軟件包的類型有很大的區(qū)別。
?對于Linux系統(tǒng)中,軟件包主要以兩種形式出現(xiàn):二進制包以及源代碼包。
二進制包:
?1)傳統(tǒng)的red hat linux二進制包
?2)deb:debian系統(tǒng)的二進制包
?3)Autopackage
源碼包:
?源代碼則主要適用于自由軟件的安裝,用戶需要自己編譯它們。
2、軟件包的組成:
?1)二進制程序
?2)庫文件
?3)配置文件
?4)幫助文檔
3、包管理器的基本功能:
?1)打包
?2)安裝包
?3)查詢包
?4)升級包
?5)卸載包
?6)校驗包數(shù)據(jù)庫管理
4、RPM包管理器:RPM包管理器就是一個用來管理報的基本功能的工具,但是RPM包管理器在解決包之間的依賴關系時比較麻煩,所以又出現(xiàn)了包管理器的前端管理器yum,yum介紹完rpm之后介紹,先來說明一下rpm包的命名格式。
在使用rpm包的時候,有時候我只需要使用包里邊的個別功能,所以軟件包又會分為主包和支包。
獲取rpm包的途徑:
?1)發(fā)行商的光盤或站點服務器
?centos:
? ? http://mirrors.163.com
http://mirrors.sohu.com
?2) http://rpmfind.net
?3) http://rpm.pbone.net
來源合法性驗證:獲取到rpm包之后需要對包的完整性和合法性進行校驗
?1)源程序:通過md5或者sha512進行校驗碼驗證
?2)rpm包:
? ? 驗證包完整性:校驗碼
? ? 驗證來源合法:公鑰加密算法
5、rpm包管理:常用的選項
?-ivh:安裝rpm包
?--test:不真正安裝rpm包,僅測試
?-ivh --nodeps:忽略依賴關系安裝
?-ivh --replacepkgs:重新安裝,原來的配置文件一般不會被覆蓋,新安裝的配置文件將會被重命名為以.rpmnew為后綴的文件
?-e:卸載rpm包,如果卸載被其他程序所依賴的包,把依賴者一同卸載或者忽略依賴關系或不卸載
?-qa:查詢所有已經安裝的包
?-q:查詢某個包是否安裝
?-qi:查詢包的描述信息
?-ql:查詢包安裝之后在當前系統(tǒng)生成的文件列表
?-qf:查詢文件是哪個包安裝生成的
?-qd:查詢安裝后生成的幫助文檔
?-qc:查詢包安裝后生成的配置文件
 ?-q --script:查詢包的相關的腳本,腳本有四類,preinstall安裝前腳本,preunistall卸載前腳本,postinstall安裝后腳本,postuninstall卸載后腳本。
?-pql:查詢安裝后生成的文件列表
?-qpi:查詢尚未安裝包以及其簡單描述信息
?-U:升級或安裝
?-F:升級
rpm包管理:檢查來源合法性和軟件包完整性
? ?包完整性:通過單向加密機制(md5|sha1)
? ?來源合法性:通過公鑰加密機制(RSA)
? ?導入制作者的公鑰,centos發(fā)行版的公鑰在iso文件中;
? ?導入命令:rpm -import /path/to/gpg-key-file
? ?rpm -K /path/to/package_file
? ?rpm --checksig /path/to/package_file
? ? ? ?--nosignature:不檢查來源合法性
? ? ? ?--nodigest:不檢查完整性
rpm包管理:數(shù)據(jù)庫重建
數(shù)據(jù)庫:/var/lib/rpm/
重建:
? ?rpm --initdb:初始化
? ?如果事先不存在一個數(shù)據(jù)庫,則新建之;
? ?rpm --rebuilddb:重建
? ?直接重建數(shù)據(jù)庫,會覆蓋原有的庫;
6、yum:前端管理工具
要使用yum管理應用程序,首先得配置其可用的yum倉庫,保存在配置文件中
? ? /etc/yum.conf
? ? /etc/yum.repos.d/*.repo
配置文件格式:由兩段組成,類似windows的ini配置文件
? ? [main]:主配置段
? ? [repo]:倉庫配置段,
配置repo:
? ? [repo_ID]
? ? name=String
? ? baseurl=倉庫的訪問路徑
? ? enabled={1|0}
? ? gpgcheck={1|0}
? ? gpgkey=公鑰文件(可以在本地,也可以是服務器路徑)
? ? cost=定義此倉庫開銷,默認為1000
yum的常用命令:
yum的各命令:
?1)repolist [all|enabled|disabled]:列出所有可用yum repo
?2)clean [all|packages|metadate|expire-cache|rpmdb|plugins]:清理緩存
?3)list [all|installed|avilable]:列出rpm包
?4)info package_name:列出包的描述信息
?5)grouplist:列出所有的包組
?6)groupinfo "package_group_name":顯示包組信息
?7)install package_name ...:安裝指定的程序包
?8)reinstall package_name...:重新安裝指定的程序包
?9)check-update:檢查可升級的包
?10)update package_name...:升級指定的程序包
?11)erase|remove package_name...:卸載某個包,依賴這個包的包也會被卸載
?12)whatprovides|provides /path/to/somefile:查詢某文件時由哪個包生成的
?13)groupinstall "group_name":安裝指定的包組
?14)groupremove "group_name":卸載指定的包組
三個跟開發(fā)相關的包組:
? ? ?Desktop Platform Development:有圖形程序時需要安裝此組
? ? ?Server Platform Development
? ? ?Development Tools
7、配置yum倉庫來安裝軟件包
?1)掛載cdrom作為倉庫
?2)配置yum源
?3)查看yum源
?4)安裝zsh的包
轉載于:https://blog.51cto.com/il23f/1370278
總結
以上是生活随笔為你收集整理的Linux—程序包安装与管理的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 网络安全技术之端口隔离
- 下一篇: 设计模式之四(抽象工厂模式第二回合)
