各大Linux發(fā)行版軟件包管理參考

各大Linux發(fā)行版軟件包管理參考(http://www.freeoa.net/osuport/botinstal/linux-package-manage-refer_9.html)

使用 Linux 系統(tǒng)總是免不了要接觸包管理工具迫筑。比如宪赶,Debian/Ubuntu 的 apt、openSUSE 的 zypp脯燃、Fedora 的 yum搂妻、Mandriva 的 urpmi、Slackware 的 slackpkg辕棚、Archlinux 的 pacman欲主、Gentoo 的 emerge邓厕、Foresight 的 conary、Pardus 的 pisi扁瓢,等等详恼。DistroWatch 針對(duì)上述包管理器的主要用法進(jìn)行了總結(jié),對(duì)各位 Linux 用戶來說具有很好的參考作用涤妒。

任務(wù):apt
Debian, Ubuntu:zypp
openSUSE:yum
Fedora, CentOS
安裝包:apt-get install <pkg>:zypper install <pkg>:yum install <pkg>
移除包:apt-get remove <pkg>:zypper remove <pkg>:yum erase <pkg>
更新包列表:apt-get update:zypper refresh:yum check-update
更新系統(tǒng):apt-get upgrade:zypper update:yum update
列出源:cat /etc/apt/sources.list:zypper repos:yum repolist
添加源:(edit /etc/apt/sources.list):zypper addrepo <path> <name>:(add <repo> to /etc/yum.repos.d/)
移除源:(edit /etc/apt/sources.list):zypper removerepo <name>:(remove <repo> from /etc/yum.repos.d/)
搜索包:apt-cache search <pkg>:zypper search <pkg>:yum search <pkg>
列出已安裝的包:dpkg -l:rpm -qa:rpm -qa

任務(wù):urpmi
Mandriva:slackpkg
Slackware:pacman
Arch
安裝包:urpmi <pkg>:slackpkg install <pkg>:pacman -S <pkg>
移除包:urpme <pkg>:slackpkg remove <pkg>:pacman -R <pkg>
更新包列表:urpmi.update -a:slackpkg update:pacman -Sy
更新系統(tǒng):urpmi --auto-select:slackpkg upgrade-all:pacman -Su
列出源:urpmq --list-media:cat /etc/slackpkg/mirrors:cat /etc/pacman.conf
添加源:urpmi.addmedia <name> <path>:(edit /etc/slackpkg/mirrors):(edit /etc/pacman.conf)
移除源:urpmi.removemedia <media>:(edit /etc/slackpkg/mirrors):(edit /etc/pacman.conf)
搜索包:urpmf <pkg>:--:pacman -Qs <pkg>
列出已安裝的包:rpm -qa:ls /var/log/packages/:pacman -Qii

任務(wù):conary
rPath, Foresight:pisi
Pardus:emerge
Gentoo
安裝包:conary update <pkg>:pisi install <pkg>:emerge <pkg>
移除包:conary erase <pkg>:pisi remove <pkg>:emerge -C <pkg>
更新包列表: pisi update-repo:emerge --sync | layman -S [for added repositories]
更新系統(tǒng):conary updateall:pisi upgrade:emerge -NuDa world
列出源: pisi list-repo:layman -L
添加源: pisi add-repo <name> <path>:layman -a
移除源: pisi remove-repo <name>:layman -d
搜索包:conary query <pkg>:pisi search <pkg>:emerge --search
列出已安裝的包:conary query:pisi list-installed:cat /var/lib/portage | more

Red Hat Package Manager--rpm
RPM 是 Red Hat Package Manager 的縮寫单雾,本意是Red Hat 軟件包管理,顧名思義是Red Hat 貢獻(xiàn)出來的軟件包管理她紫;在Fedora 、Redhat屿储、Mandriva贿讹、SuSE、YellowDog等主流發(fā)行版本够掠,以及在這些版本基礎(chǔ)上二次開發(fā)出來的發(fā)行版采用民褂。RPM包里面都包含什么?里面包含可執(zhí)行的二進(jìn)制程序疯潭,這個(gè)程序和Windows的軟件包中的.exe文件類似是可執(zhí)行的赊堪;RPM包中還包括程序運(yùn)行時(shí)所需要的文件,這也和Windows的軟件包類似竖哩,Windows的程序的運(yùn)行哭廉,除了.exe文件以外,也有其它的文件相叁。

一個(gè)RPM 包中的應(yīng)用程序遵绰,有時(shí)除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件增淹,這就是軟件包的依賴關(guān)系椿访;依賴關(guān)系并不是Linux特有的,Windows操作系統(tǒng)中也是同樣存在的虑润;比如我們?cè)赪indows系統(tǒng)中運(yùn)行3D游戲成玫,在安裝的時(shí)候,他可能會(huì)提示拳喻,要安裝Direct 9 哭当;Linux和Windows原理是差不多的。

一舞蔽、RPM包管理的用途
1荣病、可以安裝、刪除渗柿、升級(jí)和管理軟件个盆;當(dāng)然也支持在線安裝和升級(jí)軟件
2脖岛、通過RPM包管理能知道軟件包包含哪些文件,也能知道系統(tǒng)中的某個(gè)文件屬于哪個(gè)軟件包
3颊亮、可以在查詢系統(tǒng)中的軟件包是否安裝以及其版本
4柴梆、作為開發(fā)者可以把自己的程序打包為RPM 包發(fā)布
5、軟件包簽名GPG和MD5的導(dǎo)入终惑、驗(yàn)證和簽名發(fā)布
6绍在、依賴性的檢查,查看是否有軟件包由于不兼容而擾亂了系統(tǒng)

二雹有、RPM 的使用權(quán)限
RPM軟件的安裝偿渡、刪除、更新只有root權(quán)限才能使用霸奕;對(duì)于查詢功能任何用戶都可以操作溜宽;如果普通用戶擁有安裝目錄的權(quán)限,也可以進(jìn)行安裝质帅。

三适揉、rpm 的一點(diǎn)簡單用法
我們除了軟件包管理器以外,還能通過rpm 命令來安裝煤惩;是不是所有的軟件包都能通過rpm 命令來安裝呢嫉嘀?不是的,文件以.rpm 后綴結(jié)尾的才行魄揉;有時(shí)我們?cè)谝恍┚W(wǎng)站上找到file.rpm 剪侮,都要用 rpm 來安裝。

一)初始化rpm 數(shù)據(jù)庫
通過rpm 命令查詢一個(gè)rpm 包是否安裝了什猖,也是要通過rpm 數(shù)據(jù)庫來完成的票彪;所以我們要經(jīng)常用下面的兩個(gè)命令來初始化rpm 數(shù)據(jù)庫
[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:這個(gè)要花好長時(shí)間

注:這兩個(gè)參數(shù)是極為有用,有時(shí)rpm 系統(tǒng)出了問題不狮,不能安裝和查詢降铸,大多是這里出了問題。

二)RPM軟件包管理的查詢功能:
命令格式
rpm {-q|--query} [select-options] [query-options]
RPM的查詢功能是極為強(qiáng)大摇零,是極為重要的功能之一推掸;舉幾個(gè)常用的例子,更為詳細(xì)的具體的驻仅,請(qǐng)參考#man rpm

1谅畅、對(duì)系統(tǒng)中已安裝軟件的查詢
1)查詢系統(tǒng)已安裝的軟件
語法:rpm -q 軟件名
舉例:
[root@localhost beinan]# rpm -q gaim
gaim-1.3.0-1.fc4
-q就是 --query ,中文意思是“問”噪服,此命令表示的是毡泻,是不是系統(tǒng)安裝了gaim ;如果已安裝會(huì)有信息輸出粘优;如果沒有安裝仇味,會(huì)輸出gaim 沒有安裝的信息呻顽;查看系統(tǒng)中所有已經(jīng)安裝的包,要加 -a 參數(shù) :
[root@localhost RPMS]# rpm -qa
如果分頁查看丹墨,再加一個(gè)管道 |和more命令:
[root@localhost RPMS]# rpm -qa |more
在所有已經(jīng)安裝的軟件包中查找某個(gè)軟件廊遍,比如說 gaim ;可以用 grep 抽取出來贩挣。
[root@localhost RPMS]# rpm -qa |grep gaim
上面這條的功能和 rpm -q gaim 輸出的結(jié)果是一樣的喉前。

2)查詢一個(gè)已經(jīng)安裝的文件屬于哪個(gè)軟件包
語法 rpm -qf 文件名
注:文件名所在的絕對(duì)路徑要指出
舉例:
[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8

3)查詢已安裝軟件包都安裝到何處
語法:rpm -ql 軟件名 或 rpm rpmquery -ql 軟件名
舉例:
[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx

4)查詢一個(gè)已安裝軟件包的信息
語法格式: rpm -qi 軟件名
舉例:
[root@localhost RPMS]# rpm -qi lynx

5)查看一下已安裝軟件的配置文件
語法格式:rpm -qc 軟件名
舉例:
[root@localhost RPMS]# rpm -qc lynx

6)查看一個(gè)已經(jīng)安裝軟件的文檔安裝位置
語法格式: rpm -qd 軟件名
舉例:
[root@localhost RPMS]# rpm -qd lynx

7)查看一下已安裝軟件所依賴的軟件包及文件
語法格式: rpm -qR 軟件名
舉例:
[root@localhost beinan]# rpm -qR rpm-python
查詢已安裝軟件的總結(jié):對(duì)于一個(gè)軟件包已經(jīng)安裝,我們可以把一系列的參數(shù)組合起來用王财;比如 rpm -qil 卵迂;比如:
[root@localhost RPMS]# rpm -qil lynx

2、對(duì)于未安裝的軟件包的查看
查看的前提是您有一個(gè).rpm 的文件搪搏,也就是說對(duì)既有軟件file.rpm的查看等狭握。

1)查看一個(gè)軟件包的用途、版本等信息
語法: rpm -qpi file.rpm
舉例:
[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm

2)查看一件軟件包所包含的文件
語法: rpm -qpl file.rpm
舉例:
[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

3)查看軟件包的文檔所在的位置
語法: rpm -qpd file.rpm
舉例:
[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

4)查看一個(gè)軟件包的配置文件
語法: rpm -qpc file.rpm
舉例:
[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

5)查看一個(gè)軟件包的依賴關(guān)
語法: rpm -qpR file.rpm
舉例:
[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
usermode
yum >= 2.3.2

三)軟件包的安裝疯溺、升級(jí)、刪除等
1哎垦、安裝和升級(jí)一個(gè)rpm 包
[root@localhost beinan]#rpm -vih file.rpm 注:這個(gè)是用來安裝一個(gè)新的rpm 包
[root@localhost beinan]#rpm -Uvh file.rpm 注:這是用來升級(jí)一個(gè)rpm 包
如果有依賴關(guān)系的囱嫩,請(qǐng)解決依賴關(guān)系,其實(shí)軟件包管理器能很好的解決依賴關(guān)系漏设,請(qǐng)看前面的軟件包管理器的介紹墨闲;如果您在軟件包管理器中也找不到依賴關(guān)系的包;那只能通過編譯他所依賴的包來解決依賴關(guān)系郑口,或者強(qiáng)制安裝鸳碧。

[root@localhost beinan]# rpm -ivh file.rpm --nodeps --force
[root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force
更多的參數(shù),請(qǐng)查看 man rpm犬性。
舉例應(yīng)用:
[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
注: --replacepkgs 參數(shù)是以已安裝的軟件再安裝一次瞻离;有時(shí)沒有太大的必要。
測(cè)試安裝參數(shù) --test 乒裆,用來檢查依賴關(guān)系套利;并不是真正的安裝;
[root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]

由新版本降級(jí)為舊版本鹤耍,要加 --oldpackage 參數(shù)肉迫;
[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4

為軟件包指定安裝目錄:要加 -relocate 參數(shù);下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中:
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim

為軟件包指定安裝目錄:要加 -relocate 參數(shù)稿黄;下面的舉例是把lynx-2.8.5-23.i386.rpm 指定安裝在 /opt/lynx 目錄中:
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
我們安裝在指定目錄中的程序如何調(diào)用呢喊衫?一般執(zhí)行程序,都放在安裝目錄的bin或者sbin目錄中杆怕;看下面的例子族购;如果有錯(cuò)誤輸出壳贪,就做相應(yīng)的鏈接,用 ln -s 联四。
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org

2撑碴、刪除一個(gè)rpm 包
首先您要學(xué)會(huì)查詢r(jià)pm 包 ;請(qǐng)看前面的說明朝墩;
[root@localhost beinan]#rpm -e 軟件包名
舉例:我想移除lynx 包醉拓,完整的操作應(yīng)該是:
[root@localhost RPMS]# rpm -e lynx
如果有依賴關(guān)系,您也可以用--nodeps 忽略依賴的檢查來刪除收苏。但盡可能不要這么做亿卤,最好用軟件包管理器 systerm-config-packages 來刪除或者添加軟件。
[root@localhost beinan]# rpm -e lynx --nodeps

四鹿霸、導(dǎo)入簽名:
[root@localhost RPMS]# rpm --import 簽名文件
舉例:
[root@localhost fc40]# rpm --import RPM-GPG-KEY
[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora
關(guān)于RPM的簽名功能排吴,詳情請(qǐng)參見 man rpm。

五懦鼠、RPM管理包管理器支持網(wǎng)絡(luò)安裝和查詢
比如我們想通過 Fedora Core 4.0 的一個(gè)鏡像查詢钻哩、安裝軟件包。
地址:http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/

舉例:
命令格式:
rpm 參數(shù) rpm包文件的http或者ftp的地址

rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

舉一反三吧肛冶。

六街氢、對(duì)已安裝軟件包查詢的一點(diǎn)補(bǔ)充
[root@localhost RPMS]# updatedb
[root@localhost RPMS]# locate 軟件名或文件名
通過updatedb,我們可以用 locate 來查詢一些軟件安裝到哪里了睦袖;系統(tǒng)初次安裝時(shí)要執(zhí)行updatedb 珊肃,每隔一段時(shí)間也要執(zhí)行一次;以保持已安裝軟件庫最新馅笙;updatedb 是slocate軟件包所有耳标;如果您沒有這個(gè)命令岳掐,就得安裝slocate 价捧。
舉例:
[root@localhost RPMS]# locate gaim

七周拐、從rpm軟件包抽取文件
命令格式: rpm2cpio file.rpm |cpio -div

舉例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
抽取出來的文件就在當(dāng)用操作目錄中的 usr 和etc中,其實(shí)這樣抽到文件不如指定安裝目錄來安裝軟件來的方便阱飘;也一樣可以抽出文件斥杜。為軟件包指定安裝目錄:要加 -relocate 參數(shù);下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中沥匈。

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
這樣也能一目了然蔗喂;gaim的所有文件都是安裝在 /opt/gaim 中,我們只是把gaim 目錄備份一下高帖,然后卸掉gaim缰儿,這樣其實(shí)也算提取文件的一點(diǎn)用法。

debian高級(jí)軟件包工具-apt
APT 提供另一個(gè)簡單的命令行方式散址, 與 dpkg 不同乖阵, 其本身不會(huì)處理 .deb 文件宣赔, 而是智能從資源庫下載, 然后調(diào)用 dpkg 僅此處理. APT 是 dpkg 的一個(gè)智能前端瞪浸。
dpkg 采取的方式較為保守儒将, 當(dāng)發(fā)現(xiàn)進(jìn)一步操作可能會(huì)將問題引入系統(tǒng)時(shí)(比如使系統(tǒng)中出現(xiàn)了不能滿足依賴關(guān)系的軟件), 將拒絕執(zhí)行這一操作(默認(rèn)方式)对蒲, APT則會(huì)根據(jù)出現(xiàn)的問題钩蚊, 智能的給出解決方案, 并繼續(xù)進(jìn)行操作. 比如蹈矮,安裝操作出現(xiàn)依賴關(guān)系時(shí)砰逻, dpkg 會(huì)拒絕操作, APT 則不同泛鸟, 將會(huì)自動(dòng)安裝這些依賴包以完成安裝請(qǐng)求.
APT 提供另一個(gè)簡單的命令行方式蝠咆, 與 dpkg 不同, 其本身不會(huì)處理 .deb 文件北滥, 而是智能從資源庫下載刚操, 然后調(diào)用 dpkg 僅此處理. APT 是 dpkg 的一個(gè)智能前端。

apt-get 指令操作
o 軟體資料庫同步:(apt-get update)
是『 apt-get 』指令的起點(diǎn)再芋,在下達(dá)任何 『 apt-get 』 相關(guān)軟體安裝或升級(jí)指令前赡茸,一定得先下『 apt-get update 』指令,這會(huì)讓系統(tǒng)依照 『 sources.list 』設(shè)定檔內(nèi)紀(jì)錄的軟體來源伺服器位置祝闻,進(jìn)行軟體資料庫同步動(dòng)作,如此才能知道目前系統(tǒng)上安裝的軟體跟伺服器上可抓取的軟體版本是否一致遗菠,如不一致表示有更新版的軟體可以升級(jí)或安裝联喘,接下來的『 apt-get install 、apt-get upgrade 辙纬、apt-get dist-upgrade..』才能完成后續(xù)動(dòng)作豁遭。

o 軟體安裝:(apt-get install)
安裝軟體最怕的就是惱人的相依、相斥問題贺拣,但是在 Debian 里頭安裝軟體是一件非常愉悅的事情蓖谢,只要『 apt-get install package 』一行指令簡簡單單輕輕松松即可完成,所有相依譬涡、相斥的細(xì)節(jié) Debian APT 系統(tǒng)都會(huì)幫我們處理好闪幽,您要做的就是『 Say Yes 』。

o 以安裝 vim 為例:

apt-get install vim

o 軟體移除:(apt-get remove)
與 install 一樣涡匀,Debian 一樣會(huì)幫您處理移除軟體時(shí)所發(fā)生的相依問題盯腌。

o 以移除 vim 為例:

apt-get remove vim

  • 軟體升級(jí):(apt-get upgrade)
    平常我們很難顧慮到系統(tǒng)上所安裝的數(shù)十甚至數(shù)百套軟體的版本是否有新版出現(xiàn),現(xiàn)在只要下這個(gè)指令 Debian 便會(huì)自動(dòng)找出所有有新版的軟體套件并逐一升級(jí)陨瘩。

  • 用法:

apt-get upgrade

  • 系統(tǒng)升級(jí):(apt-get dist-upgrade)
    當(dāng)轉(zhuǎn)移整個(gè)系統(tǒng)時(shí)腕够,如 『 stable 』 轉(zhuǎn)換到 『 testing 』级乍,或是系統(tǒng)運(yùn)行好一段時(shí)間都應(yīng)該下這個(gè)指令,它會(huì)聰明的處理到很多軟體相依帚湘、相斥的問題并做好系統(tǒng)升級(jí)的工作玫荣。

  • 用法:

apt-get dist-upgrade

  • 取得 package 原始碼:(apt-get source)
    如果您想取得某個(gè)軟體套件 ( packages ) 的原始碼可以透過這個(gè)指令達(dá)成。

  • 以取得 vim 原始碼為例:

apt-get source vim

這個(gè)功能對(duì)于程式開發(fā)者而言十分方便大诸,當(dāng)開發(fā)者遇到瓶頸時(shí)可以輕松的找尋相關(guān)的程式碼來研究捅厂。

  • 清除下載回來的 .deb 檔案:(apt-get clean)
    我們透過 apt-get 安裝的任何軟體都會(huì)先下載到『 /var/cache/apt/archives/ 』及『 /var/cache/apt/archive/partial/ 』目錄底下,一般預(yù)設(shè) apt-get 在安裝完軟體后是不會(huì)把上述位置底下的『 .deb 』檔殺除底挫,一段時(shí)間后您如果覺得系統(tǒng)空間不足恒傻,您可以下『 apt-get clean 』讓系統(tǒng)自動(dòng)清理這個(gè)目錄。

debian軟件包管理系統(tǒng)-dpkg

  1. 簡單介紹dpkg
    dpkg 是 Debian 軟件包管理系統(tǒng)的中流砥柱建邓, 負(fù)責(zé)安裝卸載軟件包盈厘、配置、以及維護(hù)已安裝的軟件包.也是Debian系統(tǒng)中眾多軟件包管理工具的后端. 有關(guān) dpkg 的更多介紹請(qǐng)參閱: http://www.dpkg.org

dpkg 通過數(shù)據(jù)庫來維護(hù)系統(tǒng)中軟件官边, 這包括文件清單沸手, 依賴關(guān)系, 軟件狀態(tài)注簿, 等等詳細(xì)的內(nèi)容契吉, 通常在/var/lib/dpkg目錄下. 并確保系統(tǒng)與數(shù)據(jù)庫的情況相一致.因此,dpkg在處理程序時(shí)非常健壯诡渴,和優(yōu)秀捐晶。

  1. dpkg的構(gòu)成
    dpkg 在處理軟件包時(shí), 首先要判斷是否會(huì)引起系統(tǒng)的混亂妄辩, 當(dāng)發(fā)現(xiàn)可能出現(xiàn)時(shí)惑灵, dpkg 將拒絕安裝此軟件, 而不是自作主張將軟件裝入系統(tǒng)眼耀, 然后把爛攤子扔給用戶了之英支。dpkg是一個(gè)龐大的家族, 不僅提供了大量的參數(shù)選項(xiàng)哮伟, 同時(shí)也提供了許多子命令比如:
    dpkg-deb
    dpkg-divert
    dpkg-query
    dpkg-split
    dpkg-statoverride
    start-stop-daemon
    ...
    本文檔不是 dpkg 的 manpage干花, 將不會(huì)對(duì)所有的參數(shù)和子命令加以介紹, 同時(shí)記住所有參數(shù)也是相當(dāng)痛苦的事情楞黄, 在這里只對(duì)常用參數(shù)和命令做示例性介紹池凄。dpkg 涵蓋了 dpkg 家族的大部分功能, 因此dpkg可以作為一個(gè)多合一(ALL-IN-ONE)的軟件使用谅辣,以更好的使用 dpkg 家族的全部功能.修赞。

  2. deb軟件包命名規(guī)則:
    Debian軟件包命名遵循下列約定: <軟件包名稱><版本>-<修訂號(hào)><平臺(tái)>.deb

  • 軟件包名稱(Package Name):
  • 版本(Version Number):
  • 修訂號(hào)(Build Number):
  • 平臺(tái)(Architecture):
    o i386
    o all: 平臺(tái)無關(guān). 即適用于所有平臺(tái).比如文本, 網(wǎng)頁, 圖片柏副, 媒體勾邦, pdf 等。

例如

  • nano_1.3.10-2_i386.deb
    o 軟件包名稱: nano
    o 版本: 1.3.10
    o 修訂號(hào): 2
    o 平臺(tái): i386
  1. 軟件包處理
    (注:本文的中的操作以nano為例)
    dpkg-deb : 用于處理本地Debian軟件包. 可以提取從.deb文件中提取軟件包信息和數(shù)據(jù). 詳細(xì)信息割择,請(qǐng)參閱 dpkg-deb 的聯(lián)機(jī)手冊(cè).
  • 列出軟件包的內(nèi)容:
    tony@tony:~/doc/dpkg$ dpkg-deb -c nano_1.3.10-2_i386.deb |more
    drwxr-xr-x root/root 0 2006-02-05 00:29:18 ./
    drwxr-xr-x root/root 0 2006-02-05 00:29:07 ./etc/
    -rw-r--r-- root/root 11887 2006-02-05 00:29:07 ./etc/nanorc
    drwxr-xr-x root/root 0 2006-02-05 00:29:14 ./usr/
    drwxr-xr-x root/root 0 2006-02-05 00:29:12 ./usr/share/
    drwxr-xr-x root/root 0 2006-02-05 00:29:01 ./usr/share/doc/
    drwxr-xr-x root/root 0 2006-02-05 00:29:15 ./usr/share/doc/nano/
    -rw-r--r-- root/root 1847 2005-08-30 02:29:02 ./usr/share/doc/nano/AUTHORS
    -rw-r--r-- root/root 2338 2005-03-20 05:33:13 ./usr/share/doc/nano/README
    -rw-r--r-- root/root 3175 2005-11-21 17:36:11 ./usr/share/doc/nano/THANKS
    -rw-r--r-- root/root 2206 2005-06-08 10:28:06 ./usr/share/doc/nano/TODO
    -rw-r--r-- root/root 1066 2003-03-24 21:09:26 ./usr/share/doc/nano/UPGRADE
    -rw-r--r-- root/root 35996 2005-11-22 05:45:07 ./usr/share/doc/nano/faq.html
    ... ...

  • 查看軟件包的信息
    tony@tony:~/doc/dpkg$ dpkg-deb -I nano_1.3.10-2_i386.deb
    new debian package眷篇, version 2.0.
    size 477372 bytes: control archive= 2656 bytes.
    12 bytes, 1 lines conffiles
    714 bytes荔泳, 18 lines control
    3529 bytes蕉饼, 51 lines md5sums
    613 bytes, 21 lines * postinst #!/bin/sh
    160 bytes玛歌, 5 lines * postrm #!/bin/sh
    379 bytes昧港, 20 lines * preinst #!/bin/sh
    288 bytes, 14 lines * prerm #!/bin/sh
    Package: nano
    Version: 1.3.10-2
    Section: editors
    Priority: important
    Architecture: i386
    Depends: libc6 (>= 2.3.5-1)支子, libncursesw5 (>= 5.4-5)
    Suggests: spell
    Conflicts: nano-tiny (<= 1.0.0-1)创肥, pico
    Replaces: pico
    Provides: editor
    Installed-Size: 1108
    Maintainer: Jordi Mallach jordi@debian.org
    Description: free Pico clone with some new features
    GNU nano is a free replacement for Pico, the default Pine editor. Pine is
    copyrighted under a restrictive licence值朋, that makes it unsuitable for
    Debian's main section. GNU nano is an effort to provide a Pico-like
    editor叹侄, but also includes some features that were missing in the original,
    such as 'search and replace'昨登, 'goto line' or internationalization support.

  • 重新構(gòu)建軟件包
    比如nano(1.3.10)需要滿足以下依賴關(guān)系:
    $ dpkg-deb -f nano_1.3.10-2_i386.deb depends //depends 為對(duì)應(yīng)查詢段
    libc6 (>= 2.3.5-1)趾代, libncursesw5 (>= 5.4-5)

當(dāng)系統(tǒng)不能滿足依賴關(guān)系, 比如不能滿足里來版本丰辣, 可以通過下邊的方法處理撒强, 當(dāng)然這種情況下安裝的nano并不一定運(yùn)行正常, 這種方法可以應(yīng)用于某些軟件的變通安裝.
$ mkdir nano //創(chuàng)建nano目錄
$ dpkg-deb -e ./nano_1.3.10-2_i386.deb ./nano/DEBIAN //解壓控制文件
$ dpkg-deb -x ./nano_1.3.10-2_i386.deb ./nano //解壓程序文件
$ vi ./nano/DEBIAN/control //修改控制信息
$ dpkg-deb -b nano nano_1.3.10-2_ill.deb //重新打包

  1. 數(shù)據(jù)庫查詢
    當(dāng)前版本的 dpkg 使用文本文件來作為數(shù)據(jù)庫.通稱在 /var/lib/dpkg 目錄下. 通稱在 status 文件中存儲(chǔ)軟件狀態(tài)笙什,和控制信息. 在 info/ 目錄下備份控制文件尿褪, 并在其下的 .list 文件中記錄安裝文件清單, 其下的 .mdasums 保存文件的 MD5 編碼得湘。體驗(yàn)使用數(shù)據(jù)庫的時(shí)刻到了:$ dpkg -l
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
    |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
    ||/ Name Version Description
    +++-===========-================-========================================
    ii aalib1 1.4p5-28 ascii art library - transitional package
    ii adduser 3.85 Add and remove users and groups
    ii alien .63 install non-native packages with dpkg
    ... ...

每條記錄對(duì)應(yīng)一個(gè)軟件包顿仇, 注意每條記錄的第一淘正, 二, 三個(gè)字符. 這就是軟件包的狀態(tài)標(biāo)識(shí)臼闻, 后邊依此是軟件包名稱鸿吆, 版本號(hào), 和簡單描述述呐。

  • 第一字符為期望值惩淳,它包括:
    o u 狀態(tài)未知,這意味著軟件包未安裝,并且用戶也未發(fā)出安裝請(qǐng)求.
    o i 用戶請(qǐng)求安裝軟件包.
    o r 用戶請(qǐng)求卸載軟件包.
    o p 用戶請(qǐng)求清除軟件包.
    o h 用戶請(qǐng)求保持軟件包版本鎖定.
  • 第二列思犁,是軟件包的當(dāng)前狀態(tài).此列包括軟件包的六種狀態(tài).
    o n 軟件包未安裝.
    o i 軟件包安裝并完成配置.
    o c 軟件包以前安裝過代虾,現(xiàn)在刪除了,但是它的配置文件還留在系統(tǒng)中.
    o u 軟件包被解包激蹲,但還未配置.
    o f 試圖配置軟件包棉磨,但是失敗了.
    o h 軟件包安裝,但是但是沒有成功.
  • 第三列標(biāo)識(shí)錯(cuò)誤狀態(tài)学辱,可以總結(jié)為四種狀態(tài). 第一種狀態(tài)標(biāo)識(shí)沒有問題乘瓤,為空. 其它三種符號(hào)則標(biāo)識(shí)相應(yīng)問題.
    o h 軟件包被強(qiáng)制保持,因?yàn)橛衅渌浖蕾囆枨蟛咂瑹o法升級(jí).
    o r 軟件包被破壞衙傀,可能需要重新安裝才能正常使用(包括刪除).
    o x 軟包件被破壞,并且被強(qiáng)制保持.

也可以以統(tǒng)配符模式進(jìn)行模糊查詢萨咕, 比如我要查找以nano字符開始的所有軟件包:
$ dpkg -l nano*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status统抬,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii nano 1.3.10-2 free Pico clone with some new features
pn nano-tiny <none> (no description available)
un nanoblogger <none> (no description available)

以上狀態(tài)說明: 系統(tǒng)中安裝了 nano 版本為 1.3.10-2;安裝過 nano-tiny, 后來又清除了; 從未安裝過nanoblogger.如果覺得 dpkg 的參數(shù)過多任洞, 不利于記憶的話蓄喇, 完全可以使用 dpkg-query 進(jìn)行 dpkg 數(shù)據(jù)庫查詢.

應(yīng)用范例:

  • 查詢系統(tǒng)中屬于nano的文件:
    $ dpkg --listfiles nano
    or
    $ dpkg-query -L nano

  • 查看軟件nano的詳細(xì)信息:
    $ dpkg -s nano
    or
    $ dpkg-query -s nano

  • 查看系統(tǒng)中軟件包狀態(tài), 支持模糊查詢:
    $ dpkg -l
    or
    $dpkg-query -l

  • 查看某個(gè)文件的歸屬包:
    $ dpkg-query -S nano
    or
    $ dpkg -S nano

  1. 安裝軟件包
    運(yùn)行下面的命令:
    $dpkg -l nano
    un nano <none> (no description available)
    當(dāng)前 nano 的狀態(tài)說明在系統(tǒng)中從未安裝過 nano 軟件包交掏, 可以通過以下命令安裝本地的 nano 包:
    $dpkg-deb -e ./nano_1.3.10-2_i386.deb
    當(dāng)使用 dpkg 安裝軟件包時(shí)妆偏, 主要分為兩個(gè)階段: 首先解包; 然后運(yùn)行postinst控制腳本(如果有的話),這就是所謂的配置階段. 當(dāng)完成軟件包當(dāng)解包后盅弛, dpkg 的--intall選項(xiàng)自動(dòng)調(diào)用配置階段. 注意钱骂, 操作時(shí)應(yīng)當(dāng)指定 .deb 文件的實(shí)際路徑, 僅僅給出文件名無法找到對(duì)應(yīng)文件.這樣挪鹏, 軟件的安裝就可被拆分為兩個(gè)對(duì)立的過程:
  • dpkg --unpack
  • dpkg --configure
    解包见秽、運(yùn)行

dpkg --unpack nano_1.3.10-2_i386.deb

然后
$ dpkg -l nano
iU nano 1.3.10-2 free Pico clone with some new features
說明此時(shí)系統(tǒng)中安裝了nano 包, 但是未經(jīng)配置.解包可能包括一下步驟:

  • 將控制文件解壓到臨時(shí)目錄.
  • 運(yùn)行 preinst(如果有的話). 通常為停止相關(guān)服務(wù).
  • 解壓配置文件到 /etc 目錄讨盒, 并添加.dpkg-new 后綴解取, 以防止沖突.
  • 解壓 data.tar.gz 到系統(tǒng)根目錄,(--root=dir).
  • 將控制文件解壓到 /var/lib/dpkg/info 目錄并添加軟件名前綴. 對(duì)數(shù)據(jù)庫進(jìn)行更新.
  • 數(shù)據(jù)庫中將軟件包的狀態(tài)設(shè)置為"unpacked".

僅僅解包返顺, 并不能確保軟件可以正常運(yùn)行.
配置

dpkg --configure nano

$ dpkg -l nano
ii nano 1.3.10-2 free Pico clone with some new features

如輸出所示禀苦, nano 已經(jīng)正常安裝.
軟件解包后, 還需要對(duì)其進(jìn)行調(diào)整遂鹊, 比如根據(jù)實(shí)際情況對(duì)配置文件進(jìn)行修改. 這一步通常是在安裝過程中自動(dòng)進(jìn)行的振乏, 當(dāng)然可以手動(dòng)調(diào)用, 這次用到的是軟件名秉扑, 而不是deb文件名.

通過命令 dpkg -L nano 可以得以驗(yàn)證慧邮,這一過程可能包括一下步驟:

  • 詢問對(duì)配置文件的處理方法, 覆蓋當(dāng)前版本, 還是不做處理.(當(dāng)軟件升級(jí)時(shí)會(huì)碰到這種情況)
  • 運(yùn)行 postinst 腳本
  • 將軟件包標(biāo)記為 "installed"

如果想再次修改配置選項(xiàng)误澳, 可以運(yùn)行:

dpkg-reconfigure nano

  1. 軟件卸載
    在 Debian中卸載和清除軟件包是兩個(gè)不同的概念. 不同之處在于軟件包被刪除(卸載)后耻矮,它的配置文件仍會(huì)留在系統(tǒng)中,只有清除時(shí)才會(huì)刪除它們. 默認(rèn)情況下脓匿, Debian 僅會(huì)做刪除操作淘钟, 除非你明確指出, 才會(huì)將配置文件刪除. 如果要清除軟件包陪毡, 則在清除前將會(huì)隱含地執(zhí)行刪除操作米母。

要?jiǎng)h除一個(gè)軟件包,dpkg需要使用--remove選項(xiàng)將軟件包卸載.與安裝不同毡琉,刪除只需要軟件包名铁瞒,而不是實(shí)際的deb文件名。

刪除

dpkg -r nano

  • 首先運(yùn)行 prerm 腳本(如果有的話).
  • 然后桅滋, 保留配置文件慧耍, 其他文件全部刪除.
  • 刪除 /var/lib/dpkg/info 目錄下軟件包的所有配置文件, 保留postrm和list文件.
  • 最后丐谋, dpkg 在數(shù)據(jù)庫中將軟件狀態(tài)修改為刪除.

運(yùn)行
$dpkg -l nano
rc nano 1.3.10-2 free Pico clone with some new features

清除

dpkg -P nano

  • 刪除所有的文件. 所有的文件都被解除了(從系統(tǒng)中刪除了).
  • 運(yùn)行postrm腳本.如果還存在芍碧,運(yùn)行postrm腳本.
  • 刪除 postrm 和 list 文件.保留的兩個(gè)文件,從系統(tǒng)中解除postfix.postrm和postfix.files.
  • 在dpkg的數(shù)據(jù)庫中將軟件包標(biāo)記為未安裝

$dpkg -l nano
pn nano <none> (no description available)

注意輸出的狀態(tài): pn 這意味著軟件包實(shí)際上是被清除了号俐,但是在數(shù)據(jù)庫中還有這個(gè)軟件包的記錄.因此泌豆,pn 明確指出以前安裝過 nano, 在軟件包數(shù)據(jù)庫中出現(xiàn)過吏饿,并且現(xiàn)在已被完全清除.

  1. 異常處理
    有時(shí)踪危,因?yàn)椴荒軡M足依賴關(guān)系, 或存在沖突猪落, 文件會(huì)被覆蓋贞远, 或控制腳本中存在錯(cuò)誤而安裝失敗. 在 stable 發(fā)行版中從不會(huì)存在這類問題(這被視為重大錯(cuò)誤). 但是, 在運(yùn)行 unstable 發(fā)行版的系統(tǒng)中笨忌,有時(shí)卻是難免的.

處理文件沖突
dpkg 不會(huì)允許一個(gè)軟件包覆蓋屬于其它軟件包的文件.可以強(qiáng)制dpkg覆蓋屬于其它軟件包的軟件(使用 --force-overwrite)蓝仲, 但是這樣做十分危險(xiǎn). 如果這只是暫時(shí)的沖突(在 unstable 中, 這種情況常有)官疲, 覆蓋沒有太大問題杂曲。請(qǐng)注意, 遇到這種情況應(yīng)該向軟件包的維護(hù)者提交相關(guān)錯(cuò)誤報(bào)告.如果你使用的是非官方包袁余, 或是通過 alien 或 checkinstall自己構(gòu)建的軟件包, 那么應(yīng)該對(duì)包內(nèi)文件改名咱揍, 或者放棄使用這類軟件包颖榜。處理在安裝過程中控制腳本腳本出現(xiàn)了問題. 問題腳本是出現(xiàn)問題的另一原因. 如果, 軟件包的 postinst 控制文件中有錯(cuò)誤,那么就無法用 dpkg 完成對(duì)這個(gè)軟件包的配置掩完。
這種錯(cuò)誤一定要作為嚴(yán)重問題向錯(cuò)誤跟蹤系統(tǒng)提交報(bào)告.象這種腳本的問題噪漾,自己對(duì)其進(jìn)行調(diào)試, 以判斷問題所在且蓬, 比如您可以簡單的在腳本的第一行以后插入 set -x欣硼, 對(duì)其運(yùn)行情況進(jìn)行跟蹤.除非必要, 您也應(yīng)該拒絕使用這類軟件包恶阴。

處理卸載過程中損壞的控制文件
當(dāng)軟件包的卸載腳本出現(xiàn)問題時(shí).即使您可以強(qiáng)制刪除控制腳本沒有清除干凈的文件诈胜,這也會(huì)妨礙dpkg正確的維護(hù)您的系統(tǒng),從而有可能在系統(tǒng)中留下垃圾文件. 對(duì)于這類問題冯事, 還沒有太好的處理方法(強(qiáng)烈建議您提交錯(cuò)誤報(bào)告)焦匈, 唯有等待軟件更新(或自行對(duì)軟件包包修復(fù)). 然后借助更新包將相關(guān)文件卸載。


mandriva軟件包管理工具—urpm*
1.什么是urpm
"urpm" ('User RPM') 起源于 Mandrake 7.0時(shí)代的 rpmdrake!原本就是用來個(gè)在線更新的功能!特色是自動(dòng)的處理掉函式庫相容的問題昵仅,幫您快速的安裝或移除軟件!

2.urpmi 運(yùn)作方式
取得來源軟件檔案來源
產(chǎn)生列表
抓取檔案
處理兼容性問題
抓取其它相容檔案
安裝所有元件

看起來很覆雜吧!但是這些過程大概看一下就好你不需要記缓熟,總而言之Mandrake 會(huì)幫你處理掉很多的工作!

以下是urpm系列的相關(guān)指令
urpme
urpmi.addmedia
urpmi.update
urpmf
urpmi.removemedia
urpmq
urpmi
urpmi_rpm-find-leaves
等一下我們一一介紹!

3.媒體管理
什么叫媒體管理,就是管理來源的煤體在您使用 8.1摔笤,或8.2的系統(tǒng)時(shí).大概已經(jīng)新增了幾個(gè)媒體够滑,
也就是安裝光盤!當(dāng)你用 xwindow 設(shè)定打印機(jī),或是檔案分享時(shí)吕世,第一次他會(huì)要求你放入 "第x片光盤"
這就是他正在運(yùn)作urpm系統(tǒng)了哦!

首先我們看看我們的幾個(gè)媒體!

urpmi.removemedia

缺少了須要?jiǎng)h除的項(xiàng)目
(xxx cd1彰触,xxx cd2 , xxx cd3寞冯,xxx cd4 的其中一個(gè))

第三片光盤包含 RPMS3及RPMS4
所以在裝好時(shí)有四個(gè)媒體 (Powerpack 的話會(huì)比較少 )

首先我們先新增一個(gè)媒體
語法說明: urpmi.addmedia [選項(xiàng)] [名稱] [位置] [其它相對(duì)應(yīng)關(guān)系]

先談一下關(guān)于Mandrake 相關(guān)檔案的ftp站臺(tái)的習(xí)慣!
Mandrake 習(xí)慣把 升級(jí)檔 放在 ftp://path/to/Mandrake/版本/updates/RPMS " 下
一些發(fā)展中的套件會(huì)放在Cooker中 .

我們先把一個(gè)更新的目錄加入吧!

urpmi.addmedia update ftp://mdk.linux.org.tw/pub/mandrake/updates/8.2/RPMS/

with ../base/hdlist.cz

執(zhí)行之后系統(tǒng)會(huì)自動(dòng)連結(jié)到所在的位置讀取所有的相關(guān)檔案
注: ../base/hdlist.cz 是習(xí)慣!大概不會(huì)去更動(dòng)他放在
ftp://mdk.linux.org.tw/pub/mandrake/updates/8.2/base/hdlist.cz
(只有ftp 及http方式需要)
這樣一個(gè)叫 update 的媒體柜就完成了!
如果我們要把這一個(gè)移除的話只需要打上

urpmi.removemedia updates

我們也可以把本機(jī)的目錄的加入哦!
先把 所有下載的rpm
例如: kde3的相關(guān)套件放到/mnt/kde3

接下來新增一個(gè)目錄

urpmi.addmedia kde3 file://mnt/kde3

這樣就會(huì)自動(dòng)產(chǎn)生一個(gè)kde3的媒體柜啦..
是不是很簡單呢?當(dāng)然你也可以像預(yù)設(shè)安裝的一樣使用可移除裝置渴析,例如 cdrom flappy.....(可能要先mount 好才行)。用法如下:

urpmi.addmedia Othercd removable://mnt/cdrom

接下來對(duì)方的ftp站臺(tái)會(huì)不斷的更新資料!
所以我們最好在安裝前確認(rèn)是否有較新的版本可以下載吮龄,更新的方式如下
urpmi.update [媒體名稱]
例:

urpmi.update kde3

說到這里 我們的管理媒體的部份是談完了!

4.urpm 系列使用
接下來我們開始使用urpm 系列了!
如果您使用過rpm的話.
您大概會(huì)記得

安裝軟件為 : rpm -i
移除軟件為 : rpm -e
所以您也沒有什么好想的!

urpmi 就是安裝
urpme 就是移除
urpmf 搜尋
urpmq 就是安裝查詢

urpm e俭茧,f,q 這三個(gè)大概沒有什么好說的大緻上和urpmi 一樣漓帚,所以我們只談 urpmi母债。

urpm 系統(tǒng)的軟件管理方式有搜尋的功能
例如 :

urpmi m

他會(huì)把出安裝檔名中有m的所有套件出來
如果你的關(guān)鍵剛好是唯一的值,例如:php-mysql
他就會(huì)開始進(jìn)入下一個(gè)安裝畫面~

或者你的目錄中 有這一個(gè)rpm檔案也可以直接下

urpmi /path/to/rpmsile

例:

urpmi acroread-5.0.5-1mdk.i586.rpm

這樣是不是很清楚了呢!接下來我們談一些特殊的情形!如果我們要安裝整個(gè)系列的套件尝抖,例如 php毡们,mozilla我們可以直接下

urpmi -a mozilla

這樣所有關(guān)于mozilla的元件都將會(huì)被安裝:
例如 mozilla ,mozilla-mail昧辽,mozilla-irc .....衙熔。

有時(shí)候我們用舊式的rpm在進(jìn)行安裝時(shí)經(jīng)當(dāng)會(huì)發(fā)生
缺少了那一個(gè)函式庫的狀況!
這時(shí)候urpmi可大大的派上用埸了!
我們可以使用

urpmi -p [函式庫]

他就會(huì)幫您找到這一個(gè)函式庫相關(guān)的套件了哦!
例:

urpmi -p libe2p.so.2

urpme和 urpmi的用法完全相同

談到這里大家大概可以了解,為什么許的的Mandrake 使用者可以很快速的更新到最新的版本!

5.其它設(shè)定及運(yùn)作說明
1.自動(dòng)化的缺點(diǎn)
你有想過當(dāng)你升級(jí)某些元件時(shí)搅荞,整個(gè)系統(tǒng)設(shè)定全都變亂红氯,中文不見框咙,無法開機(jī).不可預(yù)期 ....所以這個(gè)時(shí)候我們?cè)谏?jí)時(shí)必須特別小 心!當(dāng)然發(fā)展 urpmi 的Mandrake早想到了這一點(diǎn),所以為了避免這種情形痢甘,我們必須先告訢系統(tǒng)喇嘱,如果碰到那一些套件不進(jìn)行升級(jí)。

修改 : /etc/urpmi/skip.list
將您不進(jìn)行升級(jí)的名稱寫入:
建議您不要讓他自己升級(jí)kernel及glibc塞栅,所以把這二行加進(jìn)去吧
kernel
glibc

  1. urpmi 好慢
    用 過urpmi的人大概會(huì)覺得當(dāng)系統(tǒng)安裝矢敗時(shí)!
    為什么還要重新抓取檔案一次~!
    我猜是為了節(jié)約空間吧者铜,總不能把升級(jí)好的元件留在系統(tǒng)吧.,如果你覺得這樣太慢了放椰,而且不想再浪費(fèi)一次頻寬作烟,建議你可以先把 這些rpm copy 出來,要執(zhí)行 urpmi 時(shí)再把他copy回 cache的目錄。
    目錄在 /var/cache/urpmi/rpms/

3.Xwindow 模式
如果你有在玩xwindow的話.mandrake 內(nèi)建了一個(gè)管理介面可以讓您快速的完成多個(gè)項(xiàng)目!有興趣的話可以找找選單!"software manager"

gentoo軟件包管理系統(tǒng)—emerge
emerge命令介紹

每個(gè)條目下列的兩條指令是等效的
options都可以組合使用庄敛。

避免升級(jí)覆蓋掉版本更高的軟件
emerge -uU world
emerge --update --upgradeonly world

查找名稱包含mozilla的包
emerge -s mozilla
emerge search mozilla

查找描述包含mozilla
emerge -S mozilla
emerge --searchdesc mozilla

使用本地編好的包俗壹,沒有就下源碼(盡量避免編譯)
emerge -k mozilla
emerge --usepkg mozilla

只使用本地編好的,否則不安裝(絕對(duì)不編譯藻烤,所有依賴的包都有binary才裝)
emerge -K mozilla
emerge --usepkgonly mozilla

卸載
emerge -C mozilla
emerge unmerge mozilla

升級(jí)portage樹
emerge sync

下載snapshot包來完成sync
emerge-webrsync

查看已安裝包的changelog
emerge -pl mozilla
emerge --pretend --changelog mozilla

查看依賴關(guān)系(這個(gè)包還沒裝)
(--pretend保證這一次操作實(shí)際上不做任何事情绷雏,可以跟任何options組合)
emerge -p mozilla
emerge --pretend mozilla

只下載某個(gè)軟件的源碼(以及它所依賴的)
emerge -f mozilla
emerge --fetchonly mozilla

查看從哪下的源碼
emerge -fp mozilla

安裝指定版本號(hào)的
emerge "<mozilla-1.6"
emerge "=..........."
.......">..........."

emerge -k "<mozilla-1.6".....

從網(wǎng)上下binary包來裝
emerge -g mozilla
emerge --getbinpkg mozilla
(注意,實(shí)際上沒有任何binary包存在于官方的mirror中所以這個(gè)基本上是無用怖亭,在manpage也沒有出現(xiàn)涎显。除非自己用livecd來setup一個(gè)這樣的站點(diǎn)。不知道以后會(huì)不會(huì)出現(xiàn)這樣的mirror兴猩。gentoo.org論壇上似乎也有討論這個(gè)期吓。)

查看binary包依賴
emerge -gp mozilla
emrege --getbinpkg --pretend mozilla

查看依賴關(guān)系(這個(gè)包已經(jīng)裝了)
emerge -ep opera
emerge --emptytree --pretend opera
(不用pretend會(huì)重新編譯這所有依賴的包,glibc因?yàn)榘踩P(guān)系沒有列出)

不使用依賴關(guān)系安裝軟件
emerge -O opera
emerge --nodeps opera

只安裝其依賴的軟件
emerge -o opera
emerge --onlydeps opera

升級(jí)軟件
emerge -u opera
emerge --update opera

升級(jí)系統(tǒng)軟件
emerge -u system

升級(jí)整個(gè)系統(tǒng)
emerge -u world

避免升級(jí)覆蓋掉版本更高的軟件
emerge -uU world
emerge --update --upgradeonly world

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末倾芝,一起剝皮案震驚了整個(gè)濱河市讨勤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晨另,老刑警劉巖潭千,帶你破解...
    沈念sama閱讀 223,207評(píng)論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異借尿,居然都是意外死亡刨晴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門路翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狈癞,“玉大人,你說我怎么就攤上這事茂契〉埃” “怎么了?”我有些...
    開封第一講書人閱讀 170,031評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵掉冶,是天一觀的道長真竖。 經(jīng)常有香客問我儡蔓,道長,這世上最難降的妖魔是什么疼邀? 我笑而不...
    開封第一講書人閱讀 60,334評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮召锈,結(jié)果婚禮上旁振,老公的妹妹穿的比我還像新娘。我一直安慰自己涨岁,他們只是感情好拐袜,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,322評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梢薪,像睡著了一般蹬铺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秉撇,一...
    開封第一講書人閱讀 52,895評(píng)論 1 314
  • 那天甜攀,我揣著相機(jī)與錄音,去河邊找鬼琐馆。 笑死规阀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瘦麸。 我是一名探鬼主播谁撼,決...
    沈念sama閱讀 41,300評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼滋饲!你這毒婦竟也來了厉碟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,264評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤屠缭,失蹤者是張志新(化名)和其女友劉穎箍鼓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勿她,經(jīng)...
    沈念sama閱讀 46,784評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袄秩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,870評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逢并。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片之剧。...
    茶點(diǎn)故事閱讀 40,989評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖砍聊,靈堂內(nèi)的尸體忽然破棺而出背稼,到底是詐尸還是另有隱情,我是刑警寧澤玻蝌,帶...
    沈念sama閱讀 36,649評(píng)論 5 351
  • 正文 年R本政府宣布蟹肘,位于F島的核電站词疼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏帘腹。R本人自食惡果不足惜贰盗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,331評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阳欲。 院中可真熱鬧舵盈,春花似錦、人聲如沸球化。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筒愚。三九已至赴蝇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巢掺,已是汗流浹背句伶。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評(píng)論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留址遇,地道東北人熄阻。 一個(gè)月前我還...
    沈念sama閱讀 49,452評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像倔约,于是被迫代替她去往敵國和親秃殉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,995評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容