dpkg、rpm 和 apt-get、yum 的區別及使用

一般來說著名的 Linux 系統基本上分兩大類:

  1. RedHat 系列:Redhat、Centos、Fedora 等
  2. Debian 系列:Debian、Ubuntu 等

Dpkg (Debian系):Ubuntu 
RPM (Red Hat系):CentOS、Fedora

RedHat 系列

  • 常見的安裝包格式 rpm 包,安裝rpm包的命令是“rpm -參數”
  • 包管理工具 yum
  • 支持 tar 包

Debian系列

  • 常見的安裝包格式 deb 包,安裝 deb 包的命令是“dpkg -參數”
  • 包管理工具 apt-get
  • 支持 tar 包

tar 只是一種壓縮文件格式,所以,它只是把文件壓縮打包而已。

rpm 相當於windows中的安裝文件,它會自動處理軟件包之間的依賴關係。優缺點來說,rpm一般都是預先編譯好的文件,它可能已經綁定到某種CPU或者發行版上面了。

列出系統中已安裝的所有套件:

下面是其他博客的摘錄

以下整理列表來自Jamyy's Weblog :

 

安裝

目的 rpm 用法 dpkg 用法
安裝指定套件 rpm -i pkgfile.rpm dpkg -i pkgfile.deb

查詢

目的 rpm 用法 dpkg 用法
顯示所有已安裝的套件名稱 rpm -qa dpkg -l (小寫L)
顯示套件包含的所有檔案 rpm -ql softwarename (小寫L) dpkg -L softwarename
顯示特定檔案所屬套件名稱 rpm -qf /path/to/file dpkg -S /path/to/file
查詢套件檔案資訊 rpm -qip pkgfile.rpm (顯示套件資訊) 
rpm -qlp pkgfile.rpm (小寫L,顯示套件內所有檔案)
dpkg -I pkgfile.deb (大寫I ) 
dpkg -c pkgfile.deb
顯示指定套件是否安裝 rpm -q softwarename (只顯示套件名稱)
rpm -qi softwarename (顯示套件資訊)
dpkg -l softwarename (小寫L,只列出簡潔資訊) 
dpkg -s softwarename (顯示詳細資訊)
dpkg -p softwarename (顯示詳細資訊)

移除

目的 rpm 用法 dpkg 用法
移除指定套件 rpm -e softwarename dpkg -r softwarename (會留下套件設定檔) 
dpkg -P softwarename (完全移除)

在Debian使用alien處理RPM套件

alien 可處理.deb、.rpm、.slp、.tgz 等檔案格式, 進行轉檔或安裝. 
於Debian安裝非Debian套件時,可使用alien進行安裝. 
安裝alien套件: apt-get install alien

  • 在Debian安裝RPM套件: alien -i quota-3.12-7.i386.rpm
  • 製作成deb的套件格式: alien -d quota-3.12-7.i386.rpm
  • 製作成rpm的套件格式: alien -r quota_3.12-6_i386.deb

 

APT與YUM

雖然RPM與DPKG有效的解決的軟體的安裝,移除與查詢的需求,但是在Linux上的套件管理還有一個很大的問題必須解決,就是各軟體間的相依性(dependency)。 RPM與DPKG只能做到檢查相依性,在安裝或移除時告知相依性的不滿足,皆下來就需要使用者自行去找出所需的套件來安裝。 這樣的確是有點不方便,因此產生了前端工具軟體- APT及YUM。

 

 

APT

Debian開發,目前也有porting到其他版本,要在Red Hat系的Fedora或CentOS使用也是可以的。

使用方法:

  • 編輯/etc/apt/sources.list ,設定所選用的版本,如stable,testing,unstable及套件來源站臺或裝置。 檔案詳細設定請參考: 瞭解Debian系統的哲學
  • 基本指令:
apt-setup 設定/etc/apt/souces.list
apt-get update 軟體資料庫同步
apt-get install softwarename1 [softwarename2.....] 安裝軟體
apt-get remove softwarename 1 [softwarename 2...] 移除軟體(保留設定檔)
apt-get --purge remove softwarename 1 [softwarename 2...] 移除軟體(不保留設定檔)
apt-cache search softwarename 列出所有sofrwarename的套件
apt-upgrade [softwarename 1 softwarename2...] 更新套件,不指定套件名則更新所有可更新的套件
apt-get clean(autoclean) 刪除系統暫存的deb(autoclean只會將比目前系統舊版的套件刪除)
apt-get dist-upgrade 轉換系統的版本(需在/etc/apt/sources.list指定stable,testing或unstable)

 

 

YUM

YUM(Yellow dog Updater, Modified )是Yellow Dog Linux開發的。 Yellow Dog Linux原本是一套完全源於Red Hat但運作於先前使用IBM PPC平臺的MAC機器,原本以爲這個版本已經消失,沒想到最新消息是他們推出了在Sony PS3上面運作的版本。 CentOS及Fedora的基本預設安裝中即將YUM列入其內。 如果沒記錯,要在Debian上使用YUM也是可以的。

使用方法:

  • 編輯/etc/yum.conf檔案詳細設定請參考: 簡易APT/YUM伺服器設定注1
  • 基本指令: (如果yum在工作過程中需要使用者回應,可加上-y參數直接回答yes )
yum install softwarename1 [softwarename2.....] 安裝套件
yum update [softwarename 1 softwarename2...] 更新套件,不指定套件名則更新所有可更新的套件
yum list 列出目前在yum server 上面有的套件
yum info 類似rpm -qi
yum clean 移除下載到本機的packages 或headers
yum remove softwarename1 [softwarename2.....] 移除已經安裝的套件

注1:Red Hat近年來致力於將一個設定檔切割成很多小設定檔。 以yum.conf爲例,Red Hat將其分割成xxx.repo檔放置在/etc/yum.repos.d這個目錄下。 並在yum.conf檔裏增加一行註解: PUT YOUR REPOS HERE OR IN separate files named file.repo in /etc/yum.repos.d。 個人可視喜好決定。

 
原文地址:http://www.cnblogs.com/zhangfeionline/p/5893748.html
發佈了40 篇原創文章 · 獲贊 77 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章