在ubuntu服務器下安裝包的時候,經常會用到sudo apt-get install 包名 或 sudo pip install 包名,那么兩者有什么區別呢?
1.區別
pip用來安裝來自PyPI(https://www.Python.org/)的python所有的依賴包,並且可以選擇安裝任何在PyPI上已上傳的先前版本的依賴包,個人認為是python相關的包和第三方包以及各種版本;
apt-get可以用來安裝軟件、更新源、也可以用來更新自Ubuntu(https://launchpad.NET/ubuntu)的典型依賴包,典型安裝即意味着它只是安裝(最新發布的,或最近一個的)單一版本,並且我們不能決定我們要安裝的依賴包的版本或選擇它之前的版本。
個人認為還是很好區分的:畢竟一個是更新系統級別包,一個是更新一種編程語言級別包(庫)。
2.使用
情況是這樣的,如果你需要最新版本的python依賴包,你可以直接使用apt-get,在項目突然需要使用舊版本的依賴包時,你就可以使用virtualenvwrapper和pip來使完美得再安裝上一個舊版本的依賴包;
你可以根據你的喜好選擇你喜歡的安裝方式。但是,如果你需要安裝python包的特定版本,或在virtualenvwrapper中安裝包,或安裝只托管PyPI上一個包,此時只有pip會幫你解決這個問題了。否則,如果你不介意安裝在系統范圍的位置使用apt-get或pip都是ok的;
3.安裝及應用:
apt-get是可以直接使用的,格式為
$ sudo apt-get install/delete package
$ sudo apt-get -f install #修復安裝
$ sudo apt-get dist-upgrade #升級系統
$ sudo apt-get upgrade #更新已安裝的包
$ apt-get source package #下載該包的源代碼
$ sudo apt-get build-dep package #安裝相關的編譯環境
$ sudo apt-get clean && sudo apt-get autoclean #清理無用的包
pip需要安裝才能使用,配合virtualenvwrapper會錦上添花。安裝過程如下(適用Ubuntu 10.10及以上版本),使用格式為:pip install package。
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
問題導讀
1.rpm存在什么問題?
2.yum有什么優勢?
3.apt-get與yum有什么相同之處?
我們在使用cloudera和openstack的時候,經常會看到yum、apt-get、rpm,那么它們是什么?下面介紹一下。
rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
rpm 是Linux的一種軟件包名稱,以.rmp結尾,安裝的時候語法為:rpm -ivh,rpm包的安裝有一個很大的缺點就是文件的關聯性太大,有時候裝一個軟件要安裝很多其他的軟件包,很麻煩,所以為此RedHat小紅帽開發了yum安裝方法,他可以徹底解決這個關聯性的問題,很方便,只要配置兩個文件即可安裝,安裝方法是:yum -y install ,yum並不是一中包,而是安裝包的軟件
簡單點說, rpm 只能安裝已經下載到本地機器上的rpm 包. yum能在線下載並安裝rpm包,能更新系統,且還能自動處理包與包之間的依賴問題,這個是rpm 工具所不具備的。
yum與apt-get的相同點:
apt-get屬於ubuntu、Debian的包管理工具
yum則屬於Redhat、Centos包管理工具
明白了這兩點,對於我們使用Hadoop、openstack已經沒有問題了。更詳細參考:
一般來說著名的linux系統基本上分兩大類:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列 :
1 常見的安裝包格式 rpm包,安裝rpm包的命令是“rpm -參數”
2 包管理工具 yum
3 支持tar包
Debian系列 :
1 常見的安裝包格式 deb包,安裝deb包的命令是“dpkg -參數”
2 包管理工具 apt-get
3 支持tar包
tar 只是一種壓縮文件格式,所以,它只是把文件壓縮打包而已。
rpm 相當於windows中的安裝文件,它會自動處理軟件包之間的依賴關系。
優缺點來說,rpm一般都是預先編譯好的文件,它可能已經綁定到某種CPU或者發行版上面了。
tar一般包括編譯腳本,你可以在你的環境下編譯,所以具有通用性。
如果你的包不想開放源代碼,你可以制作成rpm,如果開源,用tar更方便了。
tar一般都是源碼打包的軟件,需要自己解包,然后進行安裝三部曲,./configure, make, make install. 來安裝軟件。
rpm是redhat公司的一種軟件包管理機制,直接通過rpm命令進行安裝刪除等操作,最大的優點是自己內部自動處理了各種軟件包可能的依賴關系。
--------------------------------
dpkg【ubuntu】
dpkg -l | grep 'php' 使用dpkg -l 來查看已經安裝了的軟件
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> 中提取包裹信息。
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 為包裹安裝提供了一個統一的配制界面)。
