1. 程式人生 > >Linux基礎(五):軟體包

Linux基礎(五):軟體包

一、軟體包管理簡介 (一)軟體包分類 1、原始碼包:(絕大部分是c,c++)
  • 指令碼安裝包
2、二進位制包(原始碼經過編譯之後的,linux的安裝基本都是二進位制包)
  • RPM包(redhat系才有)
  • 系統預設包
(二)原始碼包 1、優點:
  • 開源,可以修改原始碼
  • 可以自由選擇所需的功能
  • 軟體是編譯安裝,更加穩定效率更高
  • 解除安裝方便(刪除原始碼包的安裝檔案)
2、缺點
  • 安裝步驟較多,容易出錯
  • 編譯時間長,比二進位制安裝時間長了
  • 編譯安裝,安裝過程中一旦報錯新手很難解決
(三)二進位制包 1、優點
  • 包管理系統簡單,只需要幾個命令就可以實現包的安裝、升級、查詢、解除安裝。
  • 安裝速度快,因為已經編譯過了。
2、缺點
  • 看不到原始碼
  • 功能選擇步入原始碼包靈活
  • 依賴性,A依賴B依賴C,安裝解除安裝的順序需要正確
二、rpm命令管理 (一)rpm包命名原則和依賴性 1、命名規則:httpd-2.2.15-39.el6.centos.x86_64.rpm,包全名
  • httpd:軟體包名
  • 2.2.15:版本
  • 39:軟體釋出次數
  • el6.centos:適合的Linux 平臺
  • x86_64:適合的硬體平臺
  • rpm:rpm包副檔名
2、依賴性
  • 樹形依賴:a-->b-->c
  • 環形依賴:a-->b-->c-->a
(二)安裝升級與解除安裝 1、包名與包全名
  • 包全名:操作未安裝的包,且注意路徑。
  • 包名:操作已經安裝的軟體包。是搜尋/var/lib/rpm/中的資料庫。
2、RPM安裝 1)語法:
  • rpm -ivh 包全名
    • -i(install):安裝
    • -v(verbose):顯示詳細資訊
    • -h(hash):顯示進度
    • --nodeps:不檢測依賴X,建議檢測依賴
2)例項
  • 掛載處理:
    • 新建掛載點:mkdir mnt/cdrom
    • 掛載處理:mount -t iso9660 /dev/sr0 /mnt/cdrom
  • 安裝
    • rpm -ivh httpd-2.2.15-39.el6.centos.x86_64.rpm
    • 需要使用包全名,可以使用 TAB 鍵補全
    • 因為有依賴,所以比較麻煩(簡直想死)。需要使用 yum 命令解決

3、RPM升級 1)語法:
  • rpm -Uvh
     包全名
    • -U(upgrade):升級
4、解除安裝 1)語法:
  • rpm -e 包名
    • -e(erase):解除安裝
    • --nodeps:不檢查依賴性
2)注意
  • rpm -e httpd
    • 使用包名,因為是搜尋後臺資料庫。

(三)rpm查詢 1、查詢是否安裝 1)語法:
  • rpm -q 包名:查詢包是否安裝
    • -q(query):查詢
  • rpm -qa:查詢所有已經安裝的RPM包
    • -a(all):所有
2)例項
  • rpm -q httpd:查詢httpd 是否安裝
    • rpm -qi httpd:查詢httpd詳情,i是詳細資訊
  • rpm -qa:列出所有
    • rpm -qa | grep httpd:所有的搜尋查詢,然後利用管道符檢索
2、查詢軟體包詳細資訊 1)語法:
  • rpm -qi 包名
    • -i:查詢軟體資訊
    • -p:查詢未安裝包資訊,加包全名
2)例項
  • rpm -qi httpd:查詢httpd詳情
  • rpm -qip httpd-2.2.15-39.el6.centos.x86_64.rpm:查詢未安裝的包資訊
3)rpm包在組建軟體包的時候,就規定好了。所以在可以查詢未安裝的資訊,未安裝的安裝規則位置等等
3、查詢包中檔案安裝位置 1)語法:
  • rpm -ql 包名
    • -l:列表(list)
    • -p:查詢未安裝包資訊,加包全名
2)例項
  • rpm -ql httpd:查詢httpd
  • rpm -qlp httpd-2.2.15-39.el6.centos.x86_64.rpm:查詢未安裝的包資訊

4、查詢系統檔案屬於哪個RPM包 1)語法:
  • rpm -qf 系統檔名
    • -f:查詢系統檔案屬於哪個軟體包(file)
2)例項
  • rpm -qf man.config
5、查詢軟體包的依賴性 1)語法:
  • rpm -qR 包名
    • -R:查詢軟體包的依賴性(requires)
    • -p:查詢未安裝包的資訊
2)例項
  • rpm -qR httpd
  • rpm -qR httpd-2.2.15-39.el6.centos.x86_64.rpm
(四)校驗和檔案提取 1、rpm包校驗 1)語法:
  • rpm -V 已安裝的包名
    • -V:校驗指定rpm包中的檔案(verify)
2)例項
  • rpm -V httpd
3)校驗內容是否修改
  • 8個內容資訊

  • 檔案型別

2、rpm包中檔案提取 1)語法:
  • rpm2cpio 包全名 | cpio -idv  檔案絕對路徑
    • rpm2cpio :將rpm包轉換為cpio格式的命令
    • cpio:是一個標準工具,它用於建立文件和從檔案檔案中提取檔案
      • cpio 【選項】<【檔案】【裝置】
        • -i:copy-in 模式,還原
        • -d:還原時自動新建目錄
        • -v:顯示還原過程
    • 一行輸不下,使用 "\"
2)例項

三、yum線上管理 (一)IP地址配置和網路yum源 1、IP地址配置 1)使用setup工具:setup 2)啟動網絡卡:vi /etc/sysconfig/network-scripts/ifcfg-eth0
  • 把ONBOOT="no"改為 ONBOOT="yes"
3)重啟網路服務:service network restart
2、網路yum源(預設就是好用的) 1)ls /etc/yum.repos.d
  • CentOS-Base.repo,預設是生效的
  • CentOS-Media.repo,沒有網路,光碟就要生效這個

2)vi /etc/yum.repos.d/CentOS-Base.repo
  • [base]:容器名稱,一般要放在【】中
  • name:容器說明,可以自己隨便寫
  • mirrorlist:映象站點,這個可以註釋掉
  • baseurl:我們的yum源伺服器的地址。預設是CentOS官方的yum源伺服器,是可以使用的。也可以修改成國內的,速度會比較快。
  • enabled:此容器是否生效,如果不寫或者寫成emabled=1都是生效,寫成enabled=0是不生效。
  • gpgcheck:如果是 1 是指RPM的數字證書生效,0 則是不生效。
  • gpgkey:數字證書的公鑰檔案儲存位置。不用修改。

(二)yum命令 1、查詢 1)yum list:查詢所有可用軟體包列表
  • 從遠端伺服器上查詢,前提是 linux 可以連線網際網路 。就是網路yum源配置好的地址。
  • yum list |  more:分屏顯示
2)yum search + 關鍵字:搜尋伺服器上所有和關鍵字相關的包
  • yum search httpd:搜尋httpd包
2、安裝: 1)語法:yum -y install + 包名
  • install:安裝
  • -y:自動回答yes
2)例項:
  • yum -y install gcc:gcc是c語言編輯器,安裝原始碼包的時候,必須有gcc。
  • rpm -q gcc:檢視是否安裝好
3、升級:yum -y update + 包名
  • 不加軟體包,會全部升級,包括linux核心也會升級(會死的)
4、解除安裝:yum -y remove + 包名
  • 不加軟體包,會級聯刪除,會出問題的。
  • 不要使用yum 升級與解除安裝,不安全。
5、yum軟體組管理命令
  • yum grouplist:列出所有可用的軟體組列表
  • yum groupinstall + 軟體組名:安裝指定軟體組,組名可以由grouplist查詢出來
  • yum groupremove + 軟體組名:解除安裝指定軟體組

(三)光碟yum源 1、步驟 1)掛載光碟
  • 新建掛載點:mkdir mnt/cdrom
  • 掛載處理:mount -t iso9660 /dev/sr0 /mnt/cdrom
2)修改網路yum源失效:
  • 修改後綴,如把CentOS-Base.repo 改為 CentOS-Base.repo.bak
    • CentOS-Base.repo,預設是生效的
    • 其他的都修改
    • CentOS-Media.repo,沒有網路,光碟yum源。
  • 或者進入檔案,修改生效標誌,enabled=0
3)修改光碟yum原始檔
  • baseurl=file:///mnt/dcrom:地址為光碟的掛載地址,自己定義。註釋掉其他的yum源
  • gpgcheck=1:證書有效
  • enabled=1:生效

四、原始碼包管理 (一)原始碼包與RPM包的區別 1、區別:
  • 安裝之前的區別:概念上的區別
  • 安裝之後的區別:安裝位置不同
2、RPM 包安裝位置
  • 安裝在預設位置中,不建議手動修改。

3、原始碼包安裝位置
  • 安裝在指定位置中,一般是:/user/local/軟體名/
4、安裝位置不同帶來的影響 1)RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM安裝包的apache的啟動方法是
  • /etc/rc.d/init.d/httpd start:絕對路徑中啟動
  • service httpd start:使用 service 命令管理
    • service network restart,reahat特有命令
    • service: 是固定去系統預設的路徑中查詢,不會搜尋local路徑
    • 所以只能管理RPM包
2)原始碼包只能使用絕對路徑進行服務的管理:
  • /user/local/apache2/bin/paachectl start
(二)原始碼包安裝過程:略 五、指令碼安裝包 (一)指令碼安裝包 1、簡介:
  • 指令碼安裝包並不是獨立的軟體包型別,常見安裝的是原始碼包
  • 是人為把安裝過程寫成了自動安裝的指令碼,只要執行指令碼,定義簡單的引數,就可以完成安裝。
  • 非常類似於windows下軟體的安裝方式
2、Webmin的作用
  • Webmin 是一個基於web的 linux 系統管理介面。可以通過圖形化的方式設定使用者賬號、apache、DNS、檔案共享等服務。
3、Webmin安裝過程
  • du -sh webmin-1.610:檢視大小