Chinaunix首页 | 论坛 | 博客
  • 博客访问: 659022
  • 博文数量: 205
  • 博客积分: 7891
  • 博客等级: 少将
  • 技术积分: 2168
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-29 13:16
文章分类

全部博文(205)

文章存档

2015年(4)

2014年(5)

2013年(1)

2012年(4)

2011年(51)

2010年(86)

2009年(45)

2008年(9)

分类: LINUX

2010-11-01 12:01:47

在網路上查到的dpkg和apt-get用法說明,轉貼在此,以方便查詢、使用:

dpkg:

dpkg是Debian軟件包管理系統,負責安全卸載軟體包、配置及維護已安裝的軟體包。

系統中所有packages的信息都在/var/lib/dpkg/目錄下,其中子目錄」/var/lib/dpkg/info」用於保存各個軟體包的配置文件列表。 ★.conffiles 記錄了軟件包的配置文件列表
★.list 保存軟體包中的文件列表,用戶可以從.list的信息中找到軟體包中文件的具體安裝位置.
★.md5sums 記錄了軟件包的md5信息,這個信息是用來進行軟體包驗證的.
★.prerm 腳本在Debian報解包之前運行,主要作用是停止作用於即將升級的軟體包的服務,直到軟件包安裝或升級完成.
★.postinst腳本是完成Debian包解開之後的配置工作,通常用於執行所安裝軟體包相關命令和服務重新啟動.
★/var/lib/dpkg/available文件的內容是軟體包的描述信息,該軟體包括當前系統所使用的Debian安裝源中的所有軟體包,其中包括當前系統中已安裝的和未安裝的軟體包.

=======

★dpkg

-------

查詢以安裝的信息
查詢當前系統所有已安裝的deb包

★dpkg –l 命令用於查詢當前系統所有以安裝的deb包的信息.,通過less和grep可以執行更復雜的查詢工作.
例如查找跟vim有關的軟件包,dpkg –l |grep –ivim
(如發現iU 表示軟件包未安裝成功,ii表示安裝成功)

------------
查看已安裝軟件包的詳細情況

★dpkg –s 命令查看軟件包的詳細情況,包括版本,依賴之類的

----------

查詢系統中所安裝軟件包所安裝的文件

★dpkg –L 命令用於查詢系統中所安裝軟件包的安裝的文件安裝到系統的位置和安裝了那些.
小提示: 如何可以看軟件包裝到哪個地方?
用apt-get install *
如何可以看軟件包裝到哪個地方?
★dpkg -L package-name|more
----------
查詢系統中某個文件屬於那個軟件包
dpkg –S 命令用於了解當前的軟件屬於那個軟件包

----------

查詢未安裝的信息
查詢未安裝軟件包詳細信息
dpkg –I 命令用於查看未安裝軟件包的詳細信息,以便了解該軟件包是否需要安裝.

--------

查詢deb包文件中所包含的文件
dpkg –c 顯示未安裝deb軟件包所包含的文件列表,以及安裝位置

--------

安裝軟件包
安裝deb軟件包
★dpkg –i 手工安裝deb包到系統中,不過有時會存在Dpends關系,建議使用apt-get 來安裝.
如果通過dpkg –i安裝軟件後由於Dpends關系沒有安裝成功,可通 過apt-get –f install解決
解決dpkg –i 安裝deb包出現Dpends問題
Java代碼

   1. apt-get –f install 解決Dpends問題.  

★apt-get –f install 解決Dpends問題.

例如:dpkg –i lftp_3.1.3-1_i386.deb
Selecting previously deselected package lftp.
(Reading database … 20654 files and directories currently installed.)
unpacking lftp (from lftp_3.1.3-1_i386.deb)…
dpkg:dependency problems prevent configuration of lftp:
ftp depends on libexpat1 (<=1.95.8);however
dpkg : error processing lftp (--install)
dependency problems –leaving unconfigured
Errors were encountered while processing:
lftp
//lftp軟件包安裝失敗
dpkg –l |grep lftp
iU lftp 3.1.3-1 Sophisticated
command-line FTP/HTTP client p
//」dpkg -l」 查詢信息表示lftp軟件包未安裝成功
(iU表示未安裝成功,ii表示安裝成功)
★使用apt-get –f install解決

★★★安裝套件失敗時,強制刪除用(否則不能安裝其他套件)
sudo dpkg -P 套件名稱

例如安裝flashplugin-installer失敗,則貼上
sudo dpkg -P flashplugin-installer把它刪除

-------

卸載deb軟件包
卸載deb包
★dpkg –r用於卸載指定的軟件包,該命令只卸載軟件包安裝到系統中的文件,而不去刪除軟件包的配置文件,因此不是完全意義上的卸載.但是軟件包保存在系統中,可以提供給以後在安裝軟件包時使用.
例如:dpkg –r prozilla 移除後再用dpkg –l |grep prozilla 查看
會看到rc proc 1.3.6-3woody3 multi-thraded download accelerator
表示軟件包已經被卸載,但配置文件仍在「rc」帶表配置文件仍在.

--------

卸載軟件包並清除配置文件
★dpkg –P 用於卸載軟件包同時也刪除配置文件,dpkg –P 不能解決Dpends問題,建議卸載時使用apt-get操作

-------

重新配置軟件包
對於Debian系統中的眾多軟件包(尤其是系統和服務器軟件包)來說,在第一次安裝該軟件包時候會顯示對話框窗口,提示用戶輸入必要的配置信息.當用戶需要再次對軟件包配置的時候,可以使用dpkg-reconfigure來對指定的軟件包進行配置.
比如dpkg-reconfigure locales

--------

用於配置語言
alien包轉換工具
如果我們有很喜歡的RPM包,而又沒有deb版本
怎麼辦~?
可以同過alien來轉換或者直接安裝,這個小家伙可是個很方便的東西!
基本命令如下:
首先通過apt-get install alien來安裝.
然後alien -i name-of-the-pakage.rpm /*用來直接安裝rpm包
alien -d , --to-deb /*Make debian packages,This is the default
例:alien –d package.rpm
alien –r , --to-rpm /*Make rpm packages
例:alien –r package.deb
alien –p , --to-pkg /*Make Solaris pkg packages
alien –-to-slp /*Make slp packages
alien –t , --to-tgz /*Make tgz packages
alien –T 檢測
alien –-patch=patch 設置patch

Java代碼

   1. sudo dpkg --configure -a  

★sudo dpkg --configure -a
==========
一、APT的使用(Ubuntu Linux軟件包管理工具一)

★apt-cache search # ------(package 搜索包)

★apt-cache show #------(package 獲取包的相關信息,如說明、大小、版本等)

★sudo apt-get install # ------(package 安裝包)

★sudo apt-get install # -----(package - - reinstall 重新安裝包)

★sudo apt-get -f install # -----(強制安裝?#"-f = --fix-missing"當是修復安裝吧...)

★sudo apt-get remove #-----(package 刪除包)

★sudo apt-get remove - - purge # ------(package 刪除包,包括刪除配置文件等)

★sudo apt-get autoremove --purge # ----(package 刪除包及其依賴的軟件包+配置文件等(只對6.10有效,強烈推薦))

★sudo apt-get update #------更新來源

★sudo apt-get upgrade #------更新已安裝的包

★sudo apt-get dist-upgrade # ---------升級系統

★sudo apt-get dselect-upgrade #------使用 dselect 升級

★apt-cache depends #-------(package 了解使用依賴)

★apt-cache rdepends # ------(package 了解某個具體的依賴?#當是查看該包被哪些包依賴吧...)

★sudo apt-get build-dep # ------(package 安裝相關的編譯環境)

★apt-get source #------(package 下載該包的源代碼)

★sudo apt-get clean && sudo apt-get autoclean # --------清理下載文件的存檔 && 只清理過時的包

★sudo apt-get check #-------檢查是否有損壞的依賴

=======

apt-get install 的用法

★apt-get install

下載 以及所有倚賴的包裹,同時進行包裹的安裝或升級.如果某個包裹被設置了 hold (停止標志,就會被擱在一邊(即不會被升級).更多 hold 細節請看下面.

★apt-get remove [--purge]

移除 以及任何倚賴這個包裹的其它包裹.--purge 指明這個包裹應該被完全清除 (purged) ,更多信息請看 dpkg -P .

★apt-get update

升級來自 Debian 鏡像的包裹列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了/etc/apt/sources.list 後,必須執行.

★apt-get upgrade [-u]

升級所以已經安裝的包裹為最新可用版本.不會安裝新的或移除老的包裹.如果一個包改變了倚賴關系而需要安裝一個新的包裹,那麼它將不會被升級,而是標志為 hold .apt-get update 不會升級被標志為 hold 的包裹 (這個也就是 hold 的意思).請看下文如何手動設置包裹為 hold .我建議同時使用 '-u' 選項,因為這樣你就能看到哪些包裹將會被升級.

★apt-get dist-upgrade [-u]

和 apt-get upgrade 類似,除了 dist-upgrade 會安裝和移除包裹來滿足倚賴關系.因此具有一定的危險性.

★apt-cache search

搜索滿足 的包裹和描述.

★apt-cache show

顯示 的完整的描述.

★apt-cache showpkg

顯示 許多細節,以及和其它包裹的關系.

★dselect, console-apt, aptitude, gnome-apt,是APT 的幾個圖形前端(其中一些在使用前得先安裝).這裡 dselect 無疑是最強大的,也是最古老,最難駕馭.

==========
二、 DPKG的 用法(Ubuntu Linux軟件包管理工具二)

★dpkg -i

安裝一個 Debian 包裹文件;如你手動下載的文件.

★dpkg -c

列出 的內容.

★dpkg -I

中提取包裹信息.

★dpkg -r

移除一個已安裝的包裹.

★pkg -P

完全清除一個已安裝的包裹.和 remove 不同的是, remove 只是刪掉數據和可執行文件, purge 另外還刪除所有的配制文件.

★pkg -L

列出 安裝的所有文件清單.同時請看 dpkg -c 來檢查一個 .deb 文件的內容.

★pkg -s

顯示已安裝包裹的信息.同時請看 apt-cache 顯示 Debian 存檔中的包裹信息,以及 dpkg -I 來顯示從一個.deb 文件中提取的包裹信息.

★pkg-reconfigure

重新配制一個已經安裝的包裹,如果它使用的是 debconf (debconf 為包裹安裝提供了一個統一的配制界面).你能夠重新配制 debconf 它本身,如你想改變它的前端或提問的優先權.例如,重新配制 debconf ,使用一個 dialog 前端,簡單運行:

★dpkg-reconfigure --frontend=dialog debconf (如果你安裝時選錯了,這裡可以改回來喲)

★echo " hold" | dpkg --set-selections

設置 的狀態為 hlod (命令行方式)

★pkg --get-selections ""

取的 的當前狀態 (命令行方式)

支持通配符,如:

Debian:~# dpkg --get-selections *wine*

例如:

大家現在用的都是 gaim-0.58 + QQ-plugin,為了防止 gaim 被升級,我們可以採用如下方法:

方法一:

Debian:~# echo "gaim hold" | dpkg --set-selections

然後用下面命令檢查一下:

Debian:~# dpkg --get-selections "gaim"

gaim hold

現在的狀態標志是 hold,就不能被升級了.

如果想恢復怎麼辦呢?

Debian:~# echo "gaim install" | dpkg --set-selections

Debian:~# dpkg --get-selections "gaim"

gaim install

這時狀態標志又被重置為 install,可以繼續升級了.

這些狀態標志都寫在哪個文件中呢?

在 /var/lib/dpkg/status 裡,你也可以通過修改這個文件實現 hold.

有時你會發現有的軟件狀態標志是 purge,不要奇怪.

如:事先已經安裝了 amsn, 然後把它卸了.

apt-get remove --purge amsn

那麼狀態標志就從 install 變成 purge.

---------

方法二:

在/etc/apt 下手動建一個 preferences 文件

內容:

Package: gaim

Pin: version 0.58*

保存更詳細內容請看:



★dpkg -S

在包裹數據庫中查找 ,並告訴你哪個包裹包含了這個文件.(注:查找的是事先已經安裝的包裹)

從源碼建立deb packages

★apt-get source [-b]

下載一個源碼的包並解開。

你必須在你的/etc/apt/sources.list文件裡寫入一條 deb-src 的記錄才能完成這項工作。

如果你輸入了一個-b參數,並且是以root的身份,deb包會被自動的創建。

★apt-get build-dep

自動下載並安裝通過源碼創建 時需要的包。

只有apt 0.5以上版本才支持這個功能。

現在woody和以上版本包含了這個功能。

如果你使有一個舊版本的apt,查找依賴性最簡單的方法是查看源碼包中debian/control 這個文件,

注意這個路徑是相對的,是包內的路徑。

普通的用法,結合 apt-get source -b,例子 (as root):

apt-get build-dep

apt-get source -b

會下載源碼包,建立依賴性,然後嘗試編譯源碼。

★dpkg-source -x

如果你手工下載了一個程序的源碼包,其中包含了幾個類

似 .orig.tar.gz , .dsc ,

以及 .diff.gz 之類的文件,

那麼你就可以對 .dsc 文件使用這個命令來 unpack 源碼包。

★dpkg-buildpackage

從 Debian 源碼樹建立一個deb包。你必須在source tree的主目錄才能生效。例如:

dpkg-buildpackage -rfakeroot -uc -b

這裡 '-rfakeroot' 指定命令使用 fakeroot 程序來模仿 root 權限 (來實現所有者(ownership)目的),

'-uc' 表示 "Don't cryptographically sign the changelog", '-b' 代表只建立二進制包.

★debuild

一個快速打包腳本類似 dpkg-buildpackage ,能自動的識別是否使用 fakeroot,同時為你運行 lintian 和 gpg

修正倚賴關系

★dpkg --configure --pending

如果dpkg在apt-get install upgrade dist-uptradeing 的時候出錯退出,嘗試使用此命令來配置已經unpack的包。

然後再用 apt-get install ,upgrade, or dist-upgrade -f ,

然後再用 apt-get install, upgrade, or dist-upgrade.

可能會重復多次,這樣通常可以解決大多數的依賴性問題。

(同時,如果提示由於某種原因需要某個特定的包裹,你可以常識安裝或卸載這個包)

★apt-get install -f

★apt-get upgrade -f

★apt-get dist-upgrade -f

嘗試修正上述過程中出現依賴性關系

注意 apt-get install -f 不需要 作為參數。

=====

用apt-cdrom -d /media/cdrom0 add 加載光碟,

/dev/hdc /cdrom iso9660 user,noauto 0 0

用編輯器修改一下存盤,重啟,應該可以了。

然後,apt-cdrom -d /cdrom add

apt-get install (你要裝的軟件名:《例如gcc》)

gcc相關的軟件會自動裝入。

注意:apt不會認你手動掛載的光驅,如果fstab中設置不對apt不會正常工作。

用apt-cdrom -d /media/cdrom0 add 加載光驅,需要使用#mkdir /media/cdrom0 否則會錯誤提示說「無法讀取文件系統掛載點/media/cdrom的狀態 -stat(2 沒有那個文件或目錄)」  

 

以上資料轉貼自sudo apt-get 和dpkg命令大全(感謝分享) 

===============

整理:

1、APT主要命令
apt-cache search  ——package 搜索包
sudo apt-get install ——package 安裝包
sudo apt-get remove —–package 刪除包
sudo apt-get remove –purge ——package 刪除包,包括刪除配置文件等
sudo apt-get update ——更新源
sudo apt-get upgrade ——更新已安裝的包
sudo apt-get dist-upgrade ———升級系統
sudo apt-get dselect-upgrade ——使用 dselect 升級
如果系統在許多軟件包都包含了 -dev 等軟件包,推薦使用下面的 dselect 操作方法進行控制軟件包的細化操作。
     # dselect update  # 升級前請先完成這步
     # dselect select  # 選擇附加軟件包
運行 dselect 時當前所有軟件包均被選中,dselect 會提示你基於 Depends,Suggests 和 Recommends 的附加軟件包,如果不想添加任何軟件包,只需輸入 Q 退出 dselect。
     # dselect install
在安裝過程中,必須回答一些有關軟件包配置的問題,准備好你的筆記本花點時間處理它們。
apt-cache depends ——-package 了解使用依賴
apt-cache rdepends ——package 了解某個具體的依賴(查看該包被哪些包依賴)
sudo apt-get build-dep ——package 安裝相關的編譯環境
apt-get source ——package 下載該包的源代碼)
sudo apt-get clean && sudo apt-get autoclean —–清理下載文件的存檔 && 只清理過時的包
sudo apt-get check ——檢查是否有損壞的依賴

2、DPKG主要命令
dpkg -i ——安裝一個 Debian 包文件
dpkg -c ——列出 的內容
dpkg -I ——從 中提取包信息
dpkg -r ——移除一個已安裝的包
dpkg -P ——完全清除一個已安裝的包。和 remove 不同的是, remove 只是刪掉數據和可執行文件, purge 另外還刪除所有的配制文件。
dpkg -L ——列出 安裝的所有文件清單。(dpkg -c 來檢查一個 .deb 文件的內容)
 

★★更詳細解說看

阅读(1404) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-01 15:09:35

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com