天天看點

Linux軟體包管理器一、概述二、RPM軟體包管理器三、yum線上安裝四、dpkg包管理器五、apt軟體包管理器及apt-get線上安裝機制

原文連結:https://blog.csdn.net/wyqwilliam/article/details/90496559(絕大部分)

參考連結:http://www.found5.com/view/589.html

參考連結:https://www.cnblogs.com/lllcccddd/p/10669843.html

參考連結:https://www.cnblogs.com/lllcccddd/p/10669843.html

本文是在以上連結内容上稍作整改制作而成。

一、概述

(1)wget 類似于迅雷,是一種下載下傳工具,通過HTTP、HTTPS、FTP三個最常見的TCP/IP協定下載下傳,并可以使用HTTP代理名字是World Wide Web”與“get”的結合。

(2)rpm: 軟體包管理,用于安裝解除安裝.rpm軟體

        yum: 是redhat, centos 系統下的軟體安裝方式,基于Linux,全稱為 Yellow dog Updater, Modified,是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包。

使用wget下載下傳一個 rpm包, 然後用 rpm -ivh  xxx.rpm  安裝這個軟體,嫌麻煩的話,就可以直接用yum  install  sqoop   來自動下載下傳和安裝依賴的rpm軟體。apt-get是ubuntu下的一個軟體安裝方式,它是基于debain。

(4)apt包管理工具;建有apt庫包管理庫。

       apt-get是基于apt的,能夠從指定的伺服器自動下載下傳deb包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包。它是基于debain。

(5)dpkg與apt

        dpkg是用來安裝.deb檔案,但不會解決子產品的依賴關系,且不會關心ubuntu的軟體倉庫内的軟體,可以用于安裝本地的deb檔案。apt會解決和安裝子產品的依賴問題,并會咨詢軟體倉庫, 但不會安裝本地的deb檔案, apt是建立在dpkg之上的軟體管理工具。兩者的差別是 dpkg 繞過 apt 包管理資料庫對軟體包進行操作,

        是以 你用 dpkg 安裝過的軟體包用 apt 可以再安裝一遍,系統不知道之前安裝過了,将會覆寫之前 dpkg 的安裝.

(5)apt-get、conda、pip之間的關系

       pip 是python裡面的一個專門負責安裝包的工具,也就是下載下傳安裝了python就有這個工具。用來安裝來自PyPI的python所有的依賴包,并且可以選擇安裝任何在PyPI上已上傳的先前版本的依賴包。

       apt-get 用來安裝軟體、更新源、也可以用來更新自Ubuntu的典型依賴包,典型安裝即意味着它隻是安裝(最新釋出或最近一個的)單一版本,并且我們不能決定我們要安裝的依賴包的版本或選擇它之前的版本。

       conda是anaconda裡面專門負責安裝包的工具

(7)包管理器分類

一般來說著名的linux系統基本上分兩大類(不過現在所有的Linux系統都能夠用yum與dpkg指令,不過最好不要混用會造成沖突):

       1.RedHat系列:Redhat、Centos、Fedora等

       2.Debian系列:Debian、Ubuntu等

         RedHat 系列

                          1 常見的安裝包格式 rpm包,安裝rpm包的指令是“rpm -參數”

                          2 包管理工具 rpm;然後是基于rpm的yum線上安裝機制(解決依賴關系)

                          3 支援tar包

        Debian系列

                        1 常見的安裝包格式 deb包,安裝deb包的指令是“dpkg -參數”

                        2 包管理工具 dpkg、基于dpkg的apt包工具;然後是基于apt的apt-get線上安裝機制(解決依賴關系)

                        3 支援tar包

二、RPM軟體包管理器

4.1、*.rpm形式的二進制軟體包[centos] 相關指令

安裝:rpm -ivh *.rpm

解除安裝:rpm -e packgename

        rpm -q nginx  檢視是否已經安裝

更新:rpm -Uvh xxx

查詢:

查詢所有安裝的包: rpm -qa

查詢某個包:rpm -qa | grep xxx

rpm -qi xxx

查詢軟體的安裝路徑:rpm -ql xxx

rpm -qc xxx

查詢某個檔案是那個rpm包産生:rpm -qf /etc/yum.conf

rpm -qpi xxx

rpm -qa|grep php  檢視已安裝的RMP包

4.2、src.rpm 源代碼分發軟體包的安裝與解除安裝

      Linux軟體的源代碼分發是指提供了該軟體所有程式源代碼的釋出形式,需要使用者自己編譯成可執行的二進制代碼并進行安裝,其優點是配置靈活,可以随意去掉或保留某些功能/子產品,适應多種硬體/作業系統平台及編譯環境,缺點是難度較大,一般不适合初學者使用。 *.src.rpm形式的源代碼軟體包。

安裝:rpm -rebuild *.src.rpm

cd /usr/src/dist/RPMS

rpm -ivh *.rpm

解除安裝:rpm -e packgename

說明:rpm –rebuild *.src.rpm指令将源代碼編譯并在/usr/src/dist/RPMS下生成二進制的rpm包,然後再安裝該二進制包即可。packgename如前所述。

三、yum線上安裝

yum的配置檔案是/etc/yum.conf

更新:yum update

安裝:yum install xxx

移除:yum remove xxx

清除已經安裝過的檔案(/var/cache/yum/):yum clean all

搜尋:yum search xxx

         yum provides xxx        以xxx為關鍵字搜尋包(提供的資訊為關鍵字)

列出軟體包:yum list

                    yum clean                    清除緩沖和就的包

查詢檔案訊息:yum info xxx

以組為機關進行更新清單和删除的操作。比如 "Mysql Database"就是一個組會同時操作相關的所有軟體包;

        # yum groupupdate xxx

        # yum grouplist xxx

       # yum groupremove xxx

其他相關指令

       # yum update                系統更新

      # yum list available        列出所有更新源上的包;

       # yum list updates         列出所有更新源上的可以更新包;

      # yum list installed         列出已經安裝的包;

     # yun update kernel       更新核心;

yum常用的源

     1) 自動選擇最快的源

          由于yum中有的mirror速度是非常慢的,如果yum選擇了這個mirror,這個時候yum就會非常慢,對此,可以下載下傳fastestmirror插件,它會自動選擇最快的mirror:

           #yum install yum-fastestmirror

           配置檔案:(一般不用動)/etc/yum/pluginconf.d/fastestmirror.conf

           你的yum鏡像的速度測試記錄檔案:/var/cache/yum/timedhosts.txt

   (2)使用圖形界面的yum

         如果覺得指令行的yum不友善,那麼可以使用圖形化的yumex,這個看起來更友善,因為可以自由地選擇軟體倉庫:

         #yum install yumex

         然後在系統工具中就可以看到yum extender了。實際上系統自帶的“添加/删除程式“也可以實作圖形化的軟體安裝,但有些yumex的功能它沒有。

四、dpkg包管理器

dpkg 是Debian Package 的簡寫。為 Debian 專門開發的套件管理系統,友善軟體的安裝、更新及移除。所有源自Debian的Linux 發行版都使用 dpkg,例如 Ubuntu、Knoppix 等。

以下是一些 Dpkg 的普通用法:

                    1、dpkg -i <package.deb> :安裝一個 Debian 軟體包,如你手動下載下傳的檔案。

                    2、dpkg -c <package.deb> :列出 <package.deb> 的内容。

                    3、dpkg -I <package.deb> :從 <package.deb> 中提取包裹資訊。

                         dpkg -l | grep 'php'     :使用dpkg -l 來檢視已經安裝了的軟體

                     4、dpkg -r <package>     :移除一個已安裝的包裹。

                    5、dpkg -P <package>     :完全清除一個已安裝的包裹。和 remove 不同的是,remove 隻是删掉資料和可執行檔案,purge 另外還删除所有的配制檔案。

                    6、dpkg -L <package>     :列出 <package> 安裝的所有檔案清單。同時請看 dpkg -c 來檢查一個 .deb 檔案的内容。

                    7、dpkg -s <package>          :顯示已安裝包裹的資訊。同時請看 apt-cache 顯示 Debian 存檔中的包裹資訊,以及 dpkg -I 來顯示從一個 .deb 檔案中提取的包裹資訊。

                    8、dpkg-reconfigure <package> :重新配制一個已經安裝的包裹,如果它使用的是 debconf (debconf 為包裹安裝提供了一個統一的配制界面)。

五、apt軟體包管理器及apt-get線上安裝機制

apt-get的配置檔案/etc/apt/sources.list 。

1、Server版使用aptitude

sudo apt-get install aptitude

然後執行 sudo aptitude 進入管 理

也可以使用指令:

aptitude update 更新可用的包清單

aptitude upgrade 更新可用的包

aptitude dist-upgrade 将系統更新到新的發行版

aptitude install pkgname 安裝包

aptitude remove pkgname 删除包

aptitude purge pkgname 删除包及其配置檔案

aptitude search string 搜尋包

aptitude show pkgname 顯示包的詳細資訊

aptitude clean 删除下載下傳的封包件

aptitude autoclean 僅删除過期的封包件

考慮到系統的相容性,并且上面的東東比較都大,不找最新版本了,直接用apt-get install XXX 來安裝.因為我們的Ubuntu是dailyBulid的,是以CD光牒的内容基本上都是最新的了,無需重新下載下傳.一定要最新版本的話,不妨先apt-get update 來更新一下軟體的倉庫,然後再 apt-get install.

2、桌面版使用apt-get

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 package - - purge 删除包,包括删除配置檔案等

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 檢查是否有損壞的依賴

以引用的多少排序

原文連結:https://blog.csdn.net/wyqwilliam/article/details/90496559

參考連結:http://www.found5.com/view/589.html

參考連結:https://www.cnblogs.com/lllcccddd/p/10669843.html

參考連結:https://www.cnblogs.com/lllcccddd/p/10669843.html

繼續閱讀