RedHat系Linux軟件安裝

Linux中的軟件格式

通常的linux軟件格式包括:node

  • 源碼包
  • 二進制包(RPM包,系統默認包)

源碼包linux

linux剛開始的時候,軟件都是這種形式。如今有不少的開源軟件依然採用這種格式,好比Apache安裝包httpd-2.2.9.tar.gz就是一個源碼包。apache

源碼包具備提供修改源碼,自由選擇所需功能,編譯安裝更加適合本身系統,更穩定高效的特色。固然在linux,若是想卸載源碼包安裝的軟件,只須要刪除它所在的目錄就行。vim

可是在安裝一些大型軟件集合時,容易出現編譯錯誤。而且因爲須要編譯的過程,因此安裝時間較長。安全

二進制包服務器

通過編譯後的代碼包。網絡

它具備安裝、查詢、更新、卸載等操做簡單快速等特色。函數

也所以喪失了查看源代碼的能力,而且在定製功能方面不如源碼包。網站

rpm命令管理

rpm包每每不是獨立的,一個rpm包可能與另一個或者多個rpm包依賴。也就是說,在沒有安裝另外的rpm包以前,這個rpm包是沒法安裝或者沒法正常運行,這稱爲依賴。url

依賴分爲:

  • 樹形依賴,a -> b -> c
  • 環形依賴,a -> b -> c -> a
  • 模塊依賴(函數依賴),rpm包依賴與另外一個rpm包中的某個函數

對於樹形依賴,是比較好解決的,咱們只須要按照依賴順序,先安裝c,再安裝b,再安裝a就行。可是對於環形依賴,從邏輯上看咱們是沒有辦法解決,但只要咱們將a,b,c這三個rpm包寫在一條安裝命令中即可以解決。

模塊依賴通常是在安裝某個rpm時,系統提示如libodbcinst.so.2 is needed by ...,這時候咱們只有知道libodbcinst.so.2庫函數所在的rpm包,並安裝該rpm包後,才能繼續安裝。RedHat給咱們提供了一個網站,www.rpmfind.net,經過這個網站輸入庫函數的名稱,便能查詢出所在的rpm包。

對於rpm包的獲取,咱們能夠在linux的安裝光盤的packages文件夾中找到rpm包,也多是在網絡上下載到一個rpm包。

安裝命令

安裝前須要申明的是,對於包含版本號等信息的包名,咱們稱之爲包全名,如httpd-2.2.9.tar.gz.對於沒有版本號,只有軟件名稱的,咱們稱之爲包名,如httpd

安裝命令

rpm -ivh 包全名

選項

  • -i(install) 安裝
  • -v(verbose) 顯示詳細信息
  • -h(hash) 顯示進度

升級與卸載

安裝命令

rpm -Uvh 全包名

選項

  • -U(upgrade) 升級
  • -v(verbose) 顯示詳細信息
  • -h(hash) 顯示進度

卸載軟件

rpm -e 包名

選項

  • -e(earse) 卸載
  • --nodeps 不檢查依賴,直接卸載

RPM包查詢(經常使用)

若是你實操過用rpm -ivh httpd-2.2.9.tar.gz安裝apache,你會以爲安裝軟件是一件特別頭疼的事,由於各類依賴須要咱們去解決。所以RatHat爲咱們提供了yum在線安裝的方法(後續會講到,而且咱們平時可能更願意去使用yum在線安裝),可是yum安裝軟件通常只用來安裝、升級和卸載,對於RPM包的查詢主要仍是依賴於rpm命令,所以這部份內容仍是比較關鍵的。

查詢包是否安裝

rpm -q 包名

查詢全部安裝的包(很是經常使用)

rpm -qa 包名rpm -qa | grep 包名等同於rpm -q 包名

查詢軟件包的安裝位置(經常使用)

rpm -ql 包名查詢已安裝包的位置 或者 rpm -qlp 包全名查詢未安裝包安裝後的位置

通常的RPM包默認安裝路徑

路徑 存放信息
/etc/ 配置文件安裝目錄
/urs/bin 可執行的命令安裝目錄
/usr/lib 程序所使用的函數庫保存位置
/usr/share/doc/ 基本的軟件使用手冊保存位置
/usr/share/man 幫助文件保存位置

查詢系統文件屬於哪一個RPM包:

rpm -qf 系統文件名

查詢軟件包的依賴性

rpm -qR 包名 查看已安裝的包的依賴關係 或者 rpm -qRp 包全名查詢未安裝的包的依賴關係,由於它的命令中會出現好多基礎或者已經安裝過的rpm包很難分辨,所以不太經常使用。

查詢軟件包的詳細信息

rpm -qi 包名查看已安裝的包信息 或者 rpm -qip 包全名查詢未安裝的包信息

RPM包校驗

rpm -V 已安裝的包名

選項

  • -V 校驗指定rpm包中的文件(verify)

用於文件完整性的檢驗。檢測已安裝文件和包安裝後的初始文件是否有變更,或者未安裝的包是否爲指定md5碼的包文件。

驗證內容中的8個信息的具體內容以下:

  • S 文件大小是否改變
  • M 文件的類型或者文件的權限(rwx)是否被改變
  • 5 文件的MD5校驗和是否改變(能夠看做文件內容是否被改變)
  • D 設備的主從代碼是否改變
  • L 文件路徑是否改變
  • U 文件的全部者是否改變
  • G 文件的用戶組是否改變
  • T 文件的修改時間是否改變

如:5....T. 5表示MD5改變,T表示修改時間改變

文件類型

  • c 配置文件(config file)
  • d 普通文件(documentation)
  • g "鬼"文件(ghost file),不多見,就是該文件不該該被這個RPM包包含
  • L 受權文件(license file)
  • r 描述文件(read me)

如:5....T. c c表示修改的這個文件是一個配置文件

RPM包中文件提取

若是不當心刪除了系統中某個軟件的信息,一般咱們會從別的地方拷貝一份到咱們的電腦上。固然它可選的有不少個途徑,其中之一就是咱們經過它的安裝rpm包中獲取該文件,並拷貝。

  • 將rpm包轉換爲cpio格式的命令:rpm2cpio
  • 建立軟件檔案文件和從檔案中提取文件命令:cpio -idv

如:rpm2cpio /media/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv /usr/bin/ls

yum在線安裝

爲了解決rpm的超強依賴性帶來的安裝麻煩,RedHat爲咱們提供了yum在線安裝,固然其餘Linux系統也提供了其餘命令。RadHat用本身的服務器搭建了包資源庫,並經過yum命令讓咱們不用關心依賴,自動解決依賴性安裝一些軟件。

yum源

通俗的講,經過yum安裝時,yum源在什麼地方?

一般在/etc/yum.repos.d/CentOS-Base.repo

  • [base] 倉庫名稱,必定要放在[]中
  • name 倉庫說明,能夠本身隨便寫
  • mirrorlist 鏡像站點,默認是CentOS官方yum服務器,能夠更換爲別的
  • baseurl yum源服務器的地址
  • enabled 此倉庫是否生效,若是不寫或者寫成enabled = 1都是生效,enabled = 0不生效
  • gpgcheck 若是是1是指RPM的數字文件生效,若是是0則不生效。默認開啓,有益於安全性
  • gpgkey 數字證書的公鑰文件保存位置。不用修改

光盤搭建yum源

第一步:將原有的yum複製一份,好比cp CentOS-Base.repo CentOS-Base.repo.bak
第二步:修改CentOS-Base.repo文件中的baseurl爲file:///media/...,表示你光盤的掛載點

yum命令

查詢指定包名的包列表

yum search 包名

查詢yum源中全部能夠安裝的包列表

yum listyum list | grep 包名至關於yum search

安裝,自動回答yes

yum -y install 包名

在安裝過程當中,會不斷詢問是否要安裝某個rpm包,-y表示

全部都選yes

升級,自動回答yes:

yum -y update 包名,請勿在不使用包名的狀況下使用該命令

卸載(就當這裏沒有講這個命令,工做中千萬別使用這個命令)

yum -y remove 包名,服務器使用最小化安裝,儘可能不要卸載。由於卸載的依賴包可能會被系統依賴。

yum軟件組管理命令

列出全部可用的軟件組

yum grouplist

安裝指定軟件組

yum groupinstall 軟件組名

卸載軟件組名

yum groupremove 軟件組名

源碼包安裝

源碼包和RPM包的區別

咱們在第一部分就已經講過二進制包和RPM包的區別,對於這些區別就再也不贅述。下面再說一個區別:源碼包和RPM包安裝後的安裝位置不一樣

一般咱們安裝rpm包的時候,不會去指定它的安裝位置,安裝結束後的位置通常在通常的RPM包默認安裝路徑表格中給出的位置(該位置由軟件開發者設定,不全是如此)。

而對於源碼包的安裝,必定要手工指定,通常能夠放在/urs/local/軟件名/下。

這就致使了:

  1. 源碼包和RPM包的啓動方式不一樣。
  2. 卸載時,RPM包能夠藉助rpm -e命令卸載,而源碼包只要刪除安裝目錄便可。

在平時的使用過程當中,咱們應該注意區分。

源碼包的安裝過程

安裝前的準備

全部的源碼包都使用c語言編寫,所以在安裝源碼包以前咱們須要檢測系統中是否有c語言環境,輸入rpm -qa | grep gcc即可查看。

若是沒有安裝gcc,使用yum在線安裝一個gcc(不要去gcc官網下載源碼包安裝,由於gcc的源碼包也是須要c語言環境)。

下載源碼包

通常的源碼包以.tar.gz結尾,這裏就不介紹下載源碼包了。

解壓縮源碼包

通常建議,源碼包保存在:/usr/local/src/,軟件安裝在:/usr/local/

在適當的目錄(你以爲合適就行),使用命令tar -zxvf 源碼包全名解壓縮源碼包。

進入解壓縮目錄

使用cd命令進入到源碼包解壓縮以後的目錄中,這步是必須作。

進入目錄後,咱們甚至可使用vim INSTALL來查看軟件須要的安裝步驟

執行./configure完成軟件配置與檢查

該命令能夠設置安裝參數,檢測安裝環境是否具有等,而且他能把一些信息寫入到Makefile文件中。你可使用./configure --help來查看有哪些配置項

咱們使用./configure --prefix=/usr/local/軟件名指定安裝路徑,其餘選項能夠經過幫助查看。若是沒有出現error、warning、no提示,則表示成功。

執行make命令編譯軟件

使用make編譯軟件,在過程當中若是出現錯誤,可使用make clean清理以前的make文件,從新make.

執行make install安裝軟件

輸入make install後,等待一段時間,沒有報錯並順利中止則表示安裝成功。

軟件的啓動

啓動文件通常在安裝目錄的bin/目錄下,切換到bin/目錄下後使用./啓動程序 start即可以啓動。

至此,源碼包就安裝完成了。

值得注意的是,.tar.gz是一種打包壓縮格式,並不是以該後綴名下載的軟件包都是源碼包,有的是已經安裝好的二進制包,解壓後即可以使用。其最根本的區別是源碼包包含src/目錄和configure文件,二進制包通常包含bin/目錄

相關文章
相關標籤/搜索