我的家園

          我的家園

          說(shuō)明:由于圖形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比較簡(jiǎn)單,所以這里主要總結(jié)在終端通過命令行方式進(jìn)行的軟件包安裝、卸載和刪除的方法。

          一、Ubuntu中軟件安裝方法

          1、APT方式

          (1)普通安裝:apt-get install softname1 softname2 …;

          (2)修復(fù)安裝:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)

          (3)重新安裝:apt-get --reinstall install softname1 softname2...;

          2、Dpkg方式

          (1)普通安裝:dpkg -i package_name.deb

          3、源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)

          首先解壓縮源碼壓縮包然后通過tar命令來(lái)完成

          a.解xx.tar.gz:tar zxf xx.tar.gz 
          b.解xx.tar.Z:tar zxf xx.tar.Z 
          c.解xx.tgz:tar zxf xx.tgz 
          d.解xx.bz2:bunzip2 xx.bz2 
          e.解xx.tar:tar xf xx.tar

          然后進(jìn)入到解壓出的目錄中,建議先讀一下README之類的說(shuō)明文件,因?yàn)榇藭r(shí)不同源代碼包或者預(yù)編譯包可能存在差異,然后建議使用ls -F --color或者ls -F命令(實(shí)際上我的只需要 l 命令即可)查看一下可執(zhí)行文件,可執(zhí)行文件會(huì)以*號(hào)的尾部標(biāo)志。

          一般依次執(zhí)行./configure

                                make

                               sudo make install

          即可完成安裝。

          二、Ubuntu中軟件包的卸載方法

          1、APT方式

          (1)移除式卸載:apt-get remove softname1 softname2 …;(移除軟件包,當(dāng)包尾部有+時(shí),意為安裝)

          (2)清除式卸載 :apt-get --purge remove softname1 softname2...;(同時(shí)清除配置)

                  清除式卸載:apt-get purge sofname1 softname2...;(同上,也清除配置文件)

          2、Dpkg方式

          (1)移除式卸載:dpkg -r pkg1 pkg2 ...;

          (2)清除式卸載:dpkg -P pkg1 pkg2...;

           

          三、Ubuntu中軟件包的查詢方法

          Dpkg 使用文本文件來(lái)作為數(shù)據(jù)庫(kù).通稱在 /var/lib/dpkg 目錄下. 通稱在 status 文件中存儲(chǔ)軟件狀態(tài),和控制信息. 在 info/ 目錄下備份控制文件, 并在其下的 .list 文件中記錄安裝文件清單, 其下的 .mdasums 保存文件的 MD5 編碼.

          體驗(yàn)使用數(shù)據(jù)庫(kù)的時(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), 和簡(jiǎn)單描述.

          • 第一字符為期望值,它包括:
            • u 狀態(tài)未知,這意味著軟件包未安裝,并且用戶也未發(fā)出安裝請(qǐng)求.
            • i 用戶請(qǐng)求安裝軟件包.
            • r 用戶請(qǐng)求卸載軟件包.
            • p 用戶請(qǐng)求清除軟件包.
            • h 用戶請(qǐng)求保持軟件包版本鎖定.
          • 第二列,是軟件包的當(dāng)前狀態(tài).此列包括軟件包的六種狀態(tài).
            • n 軟件包未安裝.
            • i 軟件包安裝并完成配置.
            • c 軟件包以前安裝過,現(xiàn)在刪除了,但是它的配置文件還留在系統(tǒng)中.
            • u 軟件包被解包,但還未配置.
            • f 試圖配置軟件包,但是失敗了.
            • h 軟件包安裝,但是但是沒有成功.
          • 第三列標(biāo)識(shí)錯(cuò)誤狀態(tài),可以總結(jié)為四種狀態(tài). 第一種狀態(tài)標(biāo)識(shí)沒有問題,為空. 其它三種符號(hào)則標(biāo)識(shí)相應(yīng)問題.
            • h 軟件包被強(qiáng)制保持,因?yàn)橛衅渌浖蕾囆枨?無(wú)法升級(jí).
            • r 軟件包被破壞,可能需要重新安裝才能正常使用(包括刪除).
            • 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)說(shuō)明: 系統(tǒng)中安裝了 nano 版本為 1.3.10-2 ;安裝過 nano-tiny , 后來(lái)又清除了; 從未安裝過nanoblogger .

          如果覺得 dpkg 的參數(shù)過多, 不利于記憶的話, 完全可以使用 dpkg-query 進(jìn)行 dpkg 數(shù)據(jù)庫(kù)查詢.

          應(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

          三、其他應(yīng)用總結(jié)

          apt-cache search # ------(package 搜索包)
          apt-cache show #------(package 獲取包的相關(guān)信息,如說(shuō)明、大小、版本等)
          apt-get install # ------(package 安裝包)
          apt-get install # -----(package --reinstall 重新安裝包)
          apt-get -f install # -----(強(qiáng)制安裝, "-f = --fix-missing"當(dāng)是修復(fù)安裝吧...)
          apt-get remove #-----(package 刪除包)
          apt-get remove --purge # ------(package 刪除包,包括刪除配置文件等)
          apt-get autoremove --purge # ----(package 刪除包及其依賴的軟件包+配置文件等(只對(duì)6.10有效,強(qiáng)烈推薦))
          apt-get update #------更新源
          apt-get upgrade #------更新已安裝的包
          apt-get dist-upgrade # ---------升級(jí)系統(tǒng)
          apt-get dselect-upgrade #------使用 dselect 升級(jí)
          apt-cache depends #-------(package 了解使用依賴)
          apt-cache rdepends # ------(package 了解某個(gè)具體的依賴,當(dāng)是查看該包被哪些包依賴吧...)
          apt-get build-dep # ------(package 安裝相關(guān)的編譯環(huán)境)
          apt-get source #------(package 下載該包的源代碼)
          apt-get clean && apt-get autoclean # --------清理下載文件的存檔 && 只清理過時(shí)的包
          apt-get check #-------檢查是否有損壞的依賴
          dpkg -S filename -----查找filename屬于哪個(gè)軟件包
          apt-file search filename -----查找filename屬于哪個(gè)軟件包
          apt-file list packagename -----列出軟件包的內(nèi)容
          apt-file update --更新apt-file的數(shù)據(jù)庫(kù)

          dpkg --info "軟件包名" --列出軟件包解包后的包名稱.
          dpkg -l --列出當(dāng)前系統(tǒng)中所有的包.可以和參數(shù)less一起使用在分屏查看. (類似于rpm -qa)
          dpkg -l |grep -i "軟件包名" --查看系統(tǒng)中與"軟件包名"相關(guān)聯(lián)的包.
          dpkg -s 查詢已安裝的包的詳細(xì)信息.
          dpkg -L 查詢系統(tǒng)中已安裝的軟件包所安裝的位置. (類似于rpm -ql)
          dpkg -S 查詢系統(tǒng)中某個(gè)文件屬于哪個(gè)軟件包. (類似于rpm -qf)
          dpkg -I 查詢deb包的詳細(xì)信息,在一個(gè)軟件包下載到本地之后看看用不用安裝(看一下唄).
          dpkg -i 手動(dòng)安裝軟件包(這個(gè)命令并不能解決軟件包之前的依賴性問題),如果在安裝某一個(gè)軟件包的時(shí)候遇到了軟件依賴的問題,可以用apt-get -f install在解決信賴性這個(gè)問題.
          dpkg -r 卸載軟件包.不是完全的卸載,它的配置文件還存在.
          dpkg -P 全部卸載(但是還是不能解決軟件包的依賴性的問題)
          dpkg -reconfigure 重新配置


          apt-get install
          下載軟件包,以及所有依賴的包,同時(shí)進(jìn)行包的安裝或升級(jí)。如果某個(gè)包被設(shè)置了 hold (停止標(biāo)志,就會(huì)被擱在一邊(即不會(huì)被升級(jí))。更多 hold 細(xì)節(jié)請(qǐng)看下面。
          apt-get remove [--purge]
          移除 以及任何依賴這個(gè)包的其它包。
          --purge 指明這個(gè)包應(yīng)該被完全清除 (purged) ,更多信息請(qǐng)看 dpkg -P。

          apt-get update
          升級(jí)來(lái)自 Debian 鏡像的包列表,如果你想安裝當(dāng)天的任何軟件,至少每天運(yùn)行一次,而且每次修改了
          /etc/apt/sources.list 後,必須執(zhí)行。

          apt-get upgrade [-u]
          升 級(jí)所有已經(jīng)安裝的包為最新可用版本。不會(huì)安裝新的或移除老的包。如果一個(gè)包改變了依賴關(guān)系而需要安裝一個(gè)新的包,那么它將不會(huì)被升級(jí),而是標(biāo)志為 hold。apt-get update 不會(huì)升級(jí)被標(biāo)志為 hold 的包 (這個(gè)也就是 hold 的意思)。請(qǐng)看下文如何手動(dòng)設(shè)置包為 hold。我建議同時(shí)使用 '-u' 選項(xiàng),因?yàn)檫@樣你就能看到哪些包將會(huì)被升級(jí)。

          apt-get dist-upgrade [-u]
          和 apt-get upgrade 類似,除了 dist-upgrade 會(huì)安裝和移除包來(lái)滿足依賴關(guān)系。因此具有一定的危險(xiǎn)性。

          apt-cache search
          在軟件包名稱和描述中,搜索包含xxx的軟件包。

          apt-cache show
          顯示某個(gè)軟件包的完整的描述。

          apt-cache showpkg
          顯示軟件包更多細(xì)節(jié),以及和其它包的關(guān)系。

          dselect
          console-apt
          aptitude
          gnome-apt
          APT 的幾個(gè)圖形前端(其中一些在使用前得先安裝)。這里 dselect 無(wú)疑是最強(qiáng)大的,也是最古老,最難駕馭。

          普通 Dpkg 用法
          dpkg -i
          安裝一個(gè) Debian 包文件,如你手動(dòng)下載的文件。

          dpkg -c
          列出 的內(nèi)容。

          dpkg -I
          從 中提取包信息。

          dpkg -r
          移除一個(gè)已安裝的包。

          dpkg -P
          完全清除一個(gè)已安裝的包。和 remove 不同的是,remove 只是刪掉數(shù)據(jù)和可執(zhí)行文件,purge 另外還刪除所有的配制文件。

          dpkg -L
          列出 安裝的所有文件清單。同時(shí)請(qǐng)看 dpkg -c 來(lái)檢查一個(gè) .deb 文件的內(nèi)容。

          dpkg -s
          顯示已安裝包的信息。同時(shí)請(qǐng)看 apt-cache 顯示 Debian 存檔中的包信息,以及 dpkg -I 來(lái)顯示從一個(gè) .deb 文件中提取的包信息。

          dpkg-reconfigure
          重 新配制一個(gè)已經(jīng)安裝的包,如果它使用的是 debconf (debconf 為包安裝提供了一個(gè)統(tǒng)一的配制界面)。你能夠重新配制 debconf 它本身,如你想改變它的前端或提問的優(yōu)先權(quán)。例如,重新配制 debconf,使用一個(gè) dialog 前端,簡(jiǎn)單運(yùn)行:

          dpkg-reconfigure --frontend=dialog debconf (如果你安裝時(shí)選錯(cuò)了,這里可以改回來(lái)喲:)

          echo " hold" | dpkg --set-selections
          設(shè)置 的狀態(tài)為 hlod (命令行方式)

          dpkg --get-selections ""
          取的 的當(dāng)前狀態(tài) (命令行方式)

          支持通配符,如:
          Debian:~# dpkg --get-selections *wine*
          libwine hold
          libwine-alsa hold
          libwine-arts hold
          libwine-dev hold
          libwine-nas hold
          libwine-print hold
          libwine-twain hold
          wine hold
          wine+ hold
          wine-doc hold
          wine-utils hold

          例如:
          大家現(xiàn)在用的都是 gaim-0.58 + QQ-plugin,為了防止 gaim 被升級(jí),我們可以采用如下方法:

          方法一:
          Debian:~# echo "gaim hold" | dpkg --set-selections
          然後用下面命令檢查一下:
          Debian:~# dpkg --get-selections "gaim"
          gaim hold
          現(xiàn)在的狀態(tài)標(biāo)志是 hold,就不能被升級(jí)了。

          如果想恢復(fù)怎么辦呢?
          Debian:~# echo "gaim install" | dpkg --set-selections
          Debian:~# dpkg --get-selections "gaim"
          gaim install
          這時(shí)狀態(tài)標(biāo)志又被重置為 install,可以繼續(xù)升級(jí)了。

          同志們會(huì)問,哪個(gè)這些狀態(tài)標(biāo)志都寫在哪個(gè)文件中呢?
          在 /var/lib/dpkg/status 里,你也可以通過修改這個(gè)文件實(shí)現(xiàn) hold。

          有時(shí)你會(huì)發(fā)現(xiàn)有的軟件狀態(tài)標(biāo)志是 purge,不要奇怪。
          如:事先已經(jīng)安裝了 amsn,然後把它卸了。
          apt-get remove --purge amsn
          那么狀態(tài)標(biāo)志就從 install 變成 purge。

          方法二:
          在/etc/apt 下手動(dòng)建一個(gè) preferences 文件
          內(nèi)容:
          Package: gaim
          Pin: version 0.58*
          保存

          dpkg -S
          在包數(shù)據(jù)庫(kù)中查找 ,并告訴你哪個(gè)包包含了這個(gè)文件。(注:查找的是事先已經(jīng)安裝的包)

          --------------------------------------------
          Debian的軟件包管理工具命令不完全列表
          --------------------------------------------
          Debian系統(tǒng)中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目錄中保存了各個(gè)軟件包的信息及管理文件.每個(gè)文件的作用如下:
          以 ".conffiles"     結(jié)尾的文件記錄軟件包的配置列表.
          以 ".list"          結(jié)尾的文件記錄了軟件包的文件列表,用戶可在文件當(dāng)中找到軟件包文件的具體安裝位置.
          以 ".md5sums"       結(jié)尾的文件記錄了md5信息,用來(lái)進(jìn)行包的驗(yàn)證的.
          以 ".config"        結(jié)尾的文件是軟件包的安裝配置角本.
          以 ".postinst"      角本是完成Debian包解開之后的配置工作,通常用來(lái)執(zhí)行所安裝軟件包相關(guān)的命令和服務(wù)的重新啟動(dòng).
          以 ".preinst"       角本在Debain解包之前運(yùn)行,主要作用是是停止作用于即將升級(jí)的軟件包服務(wù)直到軟件包安裝或和升級(jí)完成.
          以 ".prerm"         腳本負(fù)責(zé)停止與軟件包關(guān)聯(lián)的daemon服務(wù),在刪除軟件包關(guān)聯(lián)文件之前執(zhí)行.
          以 ".postrm"        腳本負(fù)責(zé)修改軟件包鏈接或文件關(guān)聯(lián),或刪除由它創(chuàng)建的文件.

          /var/lib/dpkg/available是軟件包的描述信息.
          包括當(dāng)前系統(tǒng)中所有使用的Debian安裝源中所有的軟件包,還包括當(dāng)前系統(tǒng)中已經(jīng)安裝和未安裝的軟件包.
                    
          1.dpkg包管理工具

          dpkg -r 卸載軟件包.不是完全的卸載,它的配置文件還存在.
          dpkg --info "軟件包名" --列出軟件包解包后的包名稱.
          dpkg -l     --列出當(dāng)前系統(tǒng)中所有的包.可以和參數(shù)less一起使用在分屏查看.
          dpkg -l |grep -i "軟件包名" --查看系統(tǒng)中與"軟件包名"相關(guān)聯(lián)的包.
          dpkg -s   查詢已安裝的包的詳細(xì)信息. dpkg -L   查詢系統(tǒng)中已安裝的軟件包所安裝的位置.
          dpkg -S   查詢系統(tǒng)中某個(gè)文件屬于哪個(gè)軟件包.
          dpkg -I   查詢deb包的詳細(xì)信息,在一個(gè)軟件包下載到本地之后看看用不用安裝(看一下唄).
          dpkg -i 手動(dòng)安裝軟件包(這個(gè)命令并不能解決軟件包之前的依賴性問題),如果在安裝某一個(gè)軟件包的時(shí)候遇到了軟件依賴的問題,可以用apt-get -f install在解決信賴性這個(gè)問題.
          dpkg -reconfigure 重新配置 
          dpkg -P 全部卸載(但是還是不能解決軟件包的依賴性的問題)

           


          2. apt高級(jí)包管理工具
             (1)GTK圖形的"synaptic",這是APT的前端工具.
             (2)"aptitude",這也是APT的前端工具.
             用APT管理工具進(jìn)行包的管理,可以有以下幾種方法做源:
             (1)拿安裝盤做源,方法如下:
                  apt-cdrom ident        掃描光盤的信息
                  apt-cdrom add          添加光盤源
             (2)這也是最常用的方法就是把源添加到/etc/apt/source.list中,之后更新列apt-get update


          APT管理工具常用命令
          apt-cache 加上不同的子命令和參數(shù)的使用可以實(shí)現(xiàn)查找,顯示軟件,包信息及包信賴關(guān)系等功能.
          apt-cache stats 顯示當(dāng)前系統(tǒng)所有使用的Debain數(shù)據(jù)源的統(tǒng)計(jì)信息.
          apt-cache search +"包名",可以查找相關(guān)的軟件包.
          apt-cache show   +"包名",可以顯示指定軟件包的詳細(xì)信息.
          apt-cache depends +"包名",可以查找軟件包的依賴關(guān)系.
          apt-get upgrade   更新系統(tǒng)中所有的包到最新版
          apt-get install   安裝軟件包
          apt-get --reindtall install 重新安裝軟件包
          apt-get remove 卸載軟件包
          apt-get --purge remove 完全卸載軟件包
          apt-get clean 清除無(wú)用的軟件包
          在用命令apt-get install之前,是先將軟件包下載到/var/cache/apt/archives中,之后再進(jìn)行安裝的.所以我們可以用apt-get clean清除/var/cache/apt/archives目錄中的軟件包.


          源碼包安裝
             apt-cache showsrc 查找看源碼包的文件信息(在下載之前)
             apt-get source 下載源碼包.
             apt-get build-dep +"包名" 構(gòu)建源碼包的編譯環(huán)境.

           

          清除處于rc狀態(tài)的軟件包

          dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "] | sudo xargs dpkg -P -


          出處:http://qiuye.iteye.com/blog/461394


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 锡林浩特市| 黄梅县| 金寨县| 怀集县| 雷波县| 鹰潭市| 涿州市| 集贤县| 武胜县| 色达县| 循化| 贵港市| 永宁县| 金山区| 顺义区| 唐山市| 广宗县| 辽宁省| 积石山| 镇巴县| 平乐县| 弋阳县| 抚顺县| 鸡西市| 晴隆县| 漠河县| 垫江县| 黎川县| 南丹县| 鲜城| 嘉荫县| 玛纳斯县| 松滋市| 邯郸县| 阿荣旗| 桑植县| 永寿县| 新平| 富裕县| 松阳县| 京山县|