軟體包: 開源軟體剛開始只提供打包好的源代碼文件(例如:.tar.gz),用戶需要自己使用編譯器編譯後才能使用。 Debian誕生時,管理工具dpkg也就應運而生,可用來管理deb尾碼的"包"文件 後面後Red Hat才開發自己的rpm包管理系統 主流軟體包管理器: redhat:RPM Packa ...
軟體包:
-
開源軟體剛開始只提供打包好的源代碼文件(例如:.tar.gz),用戶需要自己使用編譯器編譯後才能使用。
-
Debian誕生時,管理工具dpkg也就應運而生,可用來管理deb尾碼的"包"文件
-
後面後Red Hat才開發自己的rpm包管理系統
主流軟體包管理器:
-
redhat:RPM Package Manager,管理rpm文件
-
debain: dpkg(debian package) 包管理器,管理deb文件
rpm 包管理器
CentOS 系統上使用rpm命令管理程式包
-
安裝:-i
-
升級:-U
-
卸載:-e
-
查詢:-q
-h: 以#顯示程式包管理執行進度
-v: verbose
安裝軟體包
rpm {-i|--install} [install-options] PACKAGE_FILE…
註意:安裝的時候要寫軟體包的路徑
#安裝選項
--test: 測試安裝,但不真正執行安裝,即dry run模式
--nodeps:忽略依賴關係
--replacepkgs | replacefiles
--nosignature: 不檢查來源合法性
--nodigest:不檢查包完整性
軟體包的升級和降級
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
upgrade和區別:
-
upgrade:安裝有舊版程式包,則"升級",如果不存在舊版程式包,則"安裝"
-
freshen:安裝有舊版程式包,則"升級", 如果不存在舊版程式包,則不執行升級操作
安裝選項:
--oldpackage:降級
--force: 強制安裝
註意:
程式包升級不會覆蓋配置文件,而是把新版本文件重命名(FILENAME.rpmnew)後保留。
包查詢
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a:所有包(系統上安裝了的)
-f:查看指定的文件由哪個程式包安裝生成
-p rpmfile:針對尚未安裝的程式包文件做查詢操作
[query-options]
-c:查詢程式的配置文件
-d:查詢程式的文檔
-i:information
-l:查看指定的程式包安裝後生成的所有文件
--scripts:程式包自帶的腳本
包卸載
rpm {-e|--erase} [option] PACKAGE_NAME ...
註意:
-
當包卸載時,對應的配置文件不會刪除, 以FILENAME.rpmsave形式保留
-
如果其它軟體包依賴於您要卸載的軟體包,卸載時則會產生錯誤信息
-
卸載只需要寫軟體的名稱,如果存在多個版本就要寫全名
選項:
--allmatches:卸載所有匹配的包(僅輸個軟體名即可,指示RPM卸載所有匹配的包,)
--test:卸載測試,如果存在依賴關係就會提示報錯
-nodeps , 不檢查依賴,強制刪除(一般不推薦這樣做)
RPM的資料庫:/var/lib/rpm
存放已安裝的包名、文件列表、依賴關係、安裝路徑等
-
rpm包安裝生成的信息都放在:/var/lib/rpm 這個文件中
-
利用這個資料庫就可以知道系統已經安裝的rpm包和裡面包含的文件、屬性。
-
安裝和卸載軟體都會首先檢查這個資料庫。
RPM資料庫維護
重新建RPM資料庫:rpm {--initdb|--rebuilddb}
initdb: 初始化,如果事先不存在資料庫,則新建之,否則,不執行任何操作
rebuilddb:重建已安裝的包頭的資料庫索引目錄
dpkg debian的包管理器
-
安裝:-i
-
刪除:-P
-
查詢:-l
-列出文件:-L
#安裝包
dpkg -i package.deb
#刪除包,不建議,不自動卸載依賴於它的包
dpkg -r package
#刪除包(包括配置文件)
dpkg -P package
#列出當前已安裝的包,類似rpm -qa
dpkg -l
#顯示該包的簡要說明
dpkg -l package
#列出該包的狀態,包括詳細信息,類似rpm –qi
dpkg -s package
#列出該包中所包含的文件,類似rpm –ql
dpkg -L package
#搜索包含pattern的包,類似rpm –qf
dpkg -S <pattern>
#配置包,-a 使用,配置所有沒有配置的軟體包
dpkg --configure package
#列出 deb 包的內容,類似rpm –qpl
dpkg -c package.deb
#解開 deb 包的內容
dpkg --unpack package.deb