YUM

YUM 機制的由來

不少軟件會將部分功能已函數庫的形式發佈,以重複利用軟件功能html

Linux 發行版廠商在發佈軟件時,都會將軟件分爲通常使用和開發使用,因此常常會看到相似 pam-x.x.rpm 和 pam-devel-x.x.rpm 之類的軟件名java

RPM 文件在安裝的時候會有依賴軟件的問題(由於許多功能已經脫離軟件變成模塊化的函數庫,而不是把代碼直接寫到軟件中硬使用,而是可插拔的模塊),RPM 文件內記錄了依賴軟件的信息(只須要記錄這個RPM直接需依賴的軟件便可,這樣就能夠造成依賴鏈),將這些依賴軟件的信息先創建一份信息表,在安裝 RPM 文件時,就將信息表與系統內已安裝的軟件相比較,沒安裝的軟件先進行安裝,以解決軟件依賴的問題,這就是 yum 機制linux

YUM軟件管理程序基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。sql

CentOS (發行版軟件開發商)數據庫

  1. 先將發佈的軟件放到 YUM 服務器,而後
  2. 分析軟件的依賴屬性,將軟件內記錄的信息記錄下來
  3. 再將這些信息分析後記錄成軟件相關性的信息表( YUM 服務器上只製做一張大表(分條目,每一個軟件依賴信息在這個大表中是一個條目))

這些軟件依賴關係的信息表與軟件所在的位置(本機或網絡位置)稱爲軟件源,當客戶機有安裝軟件的需求時,客戶機會主動向 yum 源地址下載信息表,而後將列表的數據與本機 RPM 數據庫已存在的數據進行比較,安裝依賴軟件apache

軟件源內的信息表會記錄每一個軟件的依賴關係,以及全部軟件的網絡位置vim

當客戶機有升級、安裝需求時,YUM 會向軟件源要求更新信息表,會將軟件信息表更新到 /var/cache/yum 中centos

軟件源

首先明確軟件源是指一個位置(使用URI描述的本機位置或網絡位置)api

軟件開發商(CentOS)會把 RPM 文件放到 YUM 服務器上,而這些原廠發佈的軟件根據內容差別,通常能夠分爲三大類:緩存

  1. 原版軟件
  2. 更新軟件
  3. 特殊軟件,例如第三方輔助軟件或某些特殊功能的軟件

不一樣類型軟件的安裝文件基本上不會放置在同一個網絡位置下,會使用不一樣的軟件源地址,放置不一樣類型的軟件,也就是說同一個軟件源內不可能既有原版軟件又有更新軟件。

在如下文件中,定義了四個軟件源(能夠自行在該文件中定義其餘軟件源)

/etc/yum.repos.d/CentOS-Base.repo
複製代碼

分別是

  1. base
  2. updates
  3. extras
  4. centosplus

這四個都只是軟件源名稱,後面的 mirrorslist 或 baseURL 是其詳細的軟件源地址

利用 YUM 進行查詢、安裝、升級、與刪除功能

整個 YUM 軟件管理機制都是經過 yum 這個命令來進行

  • 查詢功能
[root@master ~]# yum [option] [查詢選項] [相關參數]
[option]:
-y:當 yum 等待使用者輸入時,這個選項能夠自動提供 yes 的迴應;
--installroot:/some/path :將該軟件安裝在 /some/path 而不使用默認的安裝路徑
[查詢選項] [相關參數]:
search:查詢某個軟件名稱或描述軟件的關鍵字
repolist:查詢可用的軟件源
list:列出目前 yum 所管理的全部軟件與版本
info:顯示軟件的全部詳細信息
provide:從文件去查找該文件屬於哪一個軟件
範例一:查找磁盤陣列相關的軟件有哪些:
[root@master ~]# yum search raid
已加載插件:fastestmirror, langpacks #yum本身找的最近的服務器
Loading mirror speeds from cached hostfile  #選擇最快的軟件源地址
 * base: mirrors.huaweicloud.com  #軟件源與軟件源地址
 * extras: mirror.jdcloud.com
 * updates: mirror.jdcloud.com
================================ N/S matched: raid =================================
dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)
dmraid.i686 : dmraid (Device-mapper RAID tool and library)
dmraid-devel.x86_64 : Development libraries and headers for dmraid.
dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting
libblockdev-mdraid.i686 : The MD RAID plugin for the libblockdev library
libblockdev-mdraid.x86_64 : The MD RAID plugin for the libblockdev library
libblockdev-mdraid-devel.i686 : Development files for the libblockdev-mdraid
                              : plugin/library
libblockdev-mdraid-devel.x86_64 : Development files for the libblockdev-mdraid
                                : plugin/library
libstoragemgmt-megaraid-plugin.noarch : Files for LSI MegaRAID support for
                                      : libstoragemgmt
dmraid-events.x86_64 : dmevent_tool (Device-mapper event tool) and DSO
iprutils.x86_64 : Utilities for the IBM Power Linux RAID adapters
mdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)
以上列出了 yum 源上與 raid 相關的全部軟件
範例二:找出 mdadm 這個軟件的功能是什麼
[root@master ~]# yum info mdadm
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirror.jdcloud.com
已安裝的軟件包
名稱    :mdadm
架構    :x86_64
版本    :3.3.2
發佈    :2.el7
大小    :920 k
源    :installed
來自源:anaconda
簡介    : The mdadm program controls Linux md devices (software RAID arrays)
網址    :http://www.kernel.org/pub/linux/utils/raid/mdadm/
協議    : GPLv2+
描述    : The mdadm program is used to create, manage, and monitor Linux MD
         : (software RAID) devices.  As such, it provides similar functionality to
         : the raidtools package.  However, mdadm is a single program, and it can
         : perform almost all functions without a configuration file, though a
         : configuration file can be used to help with some common tasks.

可安裝的軟件包
名稱    :mdadm
架構    :x86_64
版本    :4.1
發佈    :rc1_2.el7
大小    :433 k
源    :base/7/x86_64
簡介    : The mdadm program controls Linux md devices (software RAID arrays)
網址    :http://www.kernel.org/pub/linux/utils/raid/mdadm/
協議    : GPLv2+
描述    : The mdadm program is used to create, manage, and monitor Linux MD
         : (software RAID) devices.  As such, it provides similar functionality to
         : the raidtools package.  However, mdadm is a single program, and it can
         : perform almost all functions without a configuration file, though a
         : configuration file can be used to help with some common tasks.

範例三:列出 yum 服務器上全部軟件的名稱
[root@master ~]# yum list

範例四:列出服務器上可供本機進行升級的軟件有哪些
[root@master ~]# yum list updates

範例五:列出提供 passwd 這個文件的軟件有哪些
[root@master ~]# yum provides passwd
複製代碼

利用 yum 的功能,找出以 pam 爲開頭的軟件有哪些?其中未安裝的又有哪些?

[root@master ~]# yum list pam* 
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirror.jdcloud.com
已安裝的軟件包
pam.x86_64                                1.1.8-12.el7                     @anaconda
pam_krb5.x86_64                           2.4.8-4.el7                      @anaconda
可安裝的軟件包
pam.i686                                  1.1.8-22.el7                     base     
pam.x86_64                                1.1.8-22.el7                     base     
pam-devel.i686                            1.1.8-22.el7                     base     
pam-devel.x86_64                          1.1.8-22.el7                     base     
pam_krb5.i686                             2.4.8-6.el7                      base     
pam_krb5.x86_64                           2.4.8-6.el7                      base     
pam_pkcs11.i686                           0.6.2-30.el7                     base     
pam_pkcs11.x86_64                         0.6.2-30.el7                     base     
pam_snapper.i686                          0.2.8-4.el7                      base     
pam_snapper.x86_64                        0.2.8-4.el7                      base     
pam_ssh_agent_auth.i686                   0.10.3-2.16.el7                  base     
pam_ssh_agent_auth.x86_64                 0.10.3-2.16.el7                  base
複製代碼

以上是將軟件源內與 pam 相關的軟件都列出來,並指出哪些未安裝以及可安裝的軟件的軟件源是哪一個

安裝、升級

[root@master ~]# yum [選項] [參數]
選項與參數:
install:後面接要安裝的軟件名稱
update:後面接要升級的軟件,若整個系統都要升級,就直接 update 便可
範例一:將 pam-devel 安裝一下
[root@master ~]# yum install pam-devel
已加載插件:fastestmirror, langpacks
base                                                         | 3.6 kB  00:00:00     
extras                                                       | 3.4 kB  00:00:00     
updates                                                      | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.bit.edu.cn
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 pam-devel.x86_64.0.1.1.8-22.el7 將被 安裝
--> 正在處理依賴關係 pam(x86-64) = 1.1.8-22.el7,它被軟件包 pam-devel-1.1.8-22.el7.x86_64 須要
--> 正在檢查事務
---> 軟件包 pam.x86_64.0.1.1.8-12.el7 將被 升級
---> 軟件包 pam.x86_64.0.1.1.8-22.el7 將被 更新
--> 解決依賴關係完成

依賴關係解決

====================================================================================
 Package             架構             版本                     源              大小
====================================================================================
正在安裝:
 pam-devel           x86_64           1.1.8-22.el7             base           184 k
爲依賴而更新:
 pam                 x86_64           1.1.8-22.el7             base           720 k

事務概要
====================================================================================
安裝  1 軟件包
升級           ( 1 依賴軟件包)

總計:904 k
總下載量:184 k
Is this ok [y/d/N]: y
複製代碼

刪除軟件:yum [remove] 軟件

[root@master ~]# yum remove pam-devel.x86_64 
已加載插件:fastestmirror, langpacks
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 pam-devel.x86_64.0.1.1.8-22.el7 將被 刪除
--> 解決依賴關係完成

依賴關係解決

====================================================================================
 Package             架構             版本                    源               大小
====================================================================================
正在刪除:
 pam-devel           x86_64           1.1.8-22.el7            @base           528 k

事務概要
====================================================================================
移除  1 軟件包

安裝大小:528 k
是否繼續?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在刪除    : pam-devel-1.1.8-22.el7.x86_64                                   1/1 
  驗證中      : pam-devel-1.1.8-22.el7.x86_64                                   1/1 

刪除:
  pam-devel.x86_64 0:1.1.8-22.el7                                                   

完畢!
複製代碼

YUM 配置文件

只要能夠鏈接互聯網,就能夠是使用 yum 在線安裝的功能,yum 會自動識別距離最近的鏡像站,也能夠手動修改 yum 的配置文件使用指定的軟件源地址

配置163鏡像地址幫助文檔

首先來比較系統默認的軟件源配置文件和 163 提供的配置文件的區別

系統默認配置文件存放路徑 /etc/yum.repos.d:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
複製代碼

[base]:表明軟件源名稱,名稱能夠隨便起,中括號必定要有

name:說明一下這個軟件源的意義,不重要

mirrorlist=:列出這個軟件源可使用的鏡像地址,若是不想使用能夠註釋掉

baseurl=:指定固定的一個軟件源地址,mirrorlist 是由 YUM 自行去識別鏡像站,這兩個須要註釋一個

enable=1:啓用該軟件源,不想啓用能夠設爲 enable=0

gpgcheck=1:指定是否須要查看 RPM 文件內的數字簽名

gpgkey=:數字簽名公鑰所在的位置

163 提供的配置文件

[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
複製代碼

能夠發現註釋掉了 mirrorlist 使用了 baseurl 自定義軟件源地址,如下圖片爲 163 配置文件提供的四個軟件源地址

在這四個軟件源地址中最重要的是 repodata 目錄,這個目錄下的文件就是分析 RPM 軟件依賴後獲得的信息表文件

實際上應該在 /etc/yum.repos.d/ 目錄下新建一個配置文件,文件拓展名必須是 .repo ,自定義軟件源配置,但咱們修改了默認配置文件,使用指定的軟件源地址, 因爲 YUM 以前已經將軟件源信息表下載到本機 /var/cache/yum 文件中,咱們只修改了網址卻沒有修改軟件源名稱,可能會形成本機的信息列表和 YUM 服務器信息表不一樣步,須要清除本機舊有數據

[root@master ~]# yum clean [packages|headers|all]
選項與參數
packages:將已下載的安裝文件刪除
headers:將已下載的信息表刪除
all:將全部軟件源相關數據刪除

而後從新緩存信息表
yum makecache
複製代碼

YUM的軟件羣組

[root@master ~]# yum [選項] [軟件羣組]
選項與參數
grouplist:列出全部可用的羣組
groupinfo:後面接 group name ,瞭解羣組內的全部軟件名
groupinstall:安裝一個羣組
groupremove:刪除某個羣組

[root@master ~]# yum grouplist
已加載插件:fastestmirror, langpacks
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.huaweicloud.com
Available environment groups:
   最小安裝
   基礎設施服務器
   計算節點
   文件及打印服務器
   基本網頁服務器
   虛擬化主機
   帶 GUI 的服務器
   GNOME 桌面
   KDE Plasma Workspaces
   開發及生成工做站
可用組:
   傳統 UNIX 兼容性
   兼容性程序庫
   圖形管理工具
   安全性工具
   開發工具
   控制檯互聯網工具
   智能卡支持
   科學記數法支持
   系統管理
   系統管理工具
完成

[root@master ~]# yum groupinfo 科學計數法支持
已加載插件:fastestmirror, langpacks
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.huaweicloud.com
[root@master ~]# yum groupinfo 科學記數法支持
已加載插件:fastestmirror, langpacks
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.huaweicloud.com

組:科學記數法支持
 組編號:scientific
 描述:用於數學和科學計算以及平行計算的工具。
 可選的軟件包:
   atlas
   fftw
   fftw-devel
   fftw-static
   gnuplot
   gsl-devel
   lapack
   mpich-3.0-devel
   mpich-3.2-devel
   mpitests-mvapich2
   mpitests-openmpi
   mpitests-openmpi3
   mvapich2-2.0-devel
   mvapich2-2.0-doc
   mvapich2-2.0-psm-devel
   mvapich2-2.2-devel
   mvapich2-2.2-doc
   mvapich2-2.2-psm-devel
   mvapich2-2.2-psm2-devel
   numpy
   openmpi
   openmpi-devel
   openmpi3
   openmpi3-devel
   scipy
   units
   
[root@master ~]# yum groupinstall "Scientific Support"
已加載插件:fastestmirror, langpacks
沒有安裝組信息文件
Maybe run: yum groups mark convert (see man yum)
base                                                         | 3.6 kB  00:00:00     
extras                                                       | 3.4 kB  00:00:00     
updates                                                      | 3.4 kB  00:00:00     
updates/7/x86_64/primary_db                                  | 5.0 MB  00:00:12     
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.jdcloud.com
 * updates: mirrors.huaweicloud.com
警告:分組 scientific 不包含任何可安裝軟件包。
Maybe run: yum groups mark install (see man yum)
指定組中沒有可安裝或升級的軟件包
複製代碼

正常狀況下系統會幫你安裝好羣組中的各項軟件,而 Scientific Support 中的軟件都是【可選】軟件,而不是 【mandatory】軟件,可選軟件是不會被安裝的,若是須要安裝,只能yum install 去安裝,若是想讓 groupinstall 默認安裝 optional 軟件,須要修改配置文件

distroverpkg=centos-release
......
distroverpkg=centos-release  #找到這一行,下面新增
group package types=default,mandatory,optional
......
複製代碼

EPEL/ELRepo 外掛軟件

有些軟件並不在默認的 CentOS7 軟件源中,Fedora 基金會發展了一個 extra Packages for Enterprise Linux (EPEL)計劃,該計劃主要針對 Red Hat Enterprise Linux 來開發,而 CentOS 是基於 RHEL 從新編譯發佈的,因此該計劃的軟件可以正常在 CentOS 操做系統上使用,該計劃的主站連接以下:

fedoraproject.org/wiki/EPEL

而 CentOS7 主要可使用的軟件源地址爲

dl.fedoraproject.org/pub/epel/7/…

除了 Fedora 提供的軟件源以外,也有社區志工提供的其餘軟件源,例如:ELRepo 軟件源與提供給 CentOS7.x 的網址以下:

elrepo.org/linux/linux…

ELRepo 這個軟件源提供的數據大可能是與內核、內核模塊、虛擬化有關的軟件,例如: NVIDIA 的驅動程序

自定義配置文件

自定義軟件源配置文件
[root@master yum.repos.d]# vim epel.repo
[epel]
name = epel packages
baseurl = https://dl.fedoraproject.org/pub/epel/7/x86_64/
gpgcheck = 0
enabled = 0

故意不啓用這個軟件源,只是將來有須要的時候才使用這個軟件源,默認不去使用這個軟件源

使用這個軟件源安裝 R 軟件

[root@study yum.repos.d]# yum --enablerepo=epel install R
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirrors.huaweicloud.com
 * updates: ap.stykers.moe
epel                                                     | 4.7 kB     00:00     
(1/2): epel/updateinfo                                     | 1.0 MB   02:06     
epel/primary_db                FAILED                                           
https://dl.fedoraproject.org/pub/epel/7/x86_64/repodata/6b27d1307f78c577b19cb24604a3291b019c3f8ed19cf49ae63ad4418d60cc3d-primary.sqlite.bz2: [Errno 12] Timeout on https://dl.fedoraproject.org/pub/epel/7/x86_64/repodata/6b27d1307f78c577b19cb24604a3291b019c3f8ed19cf49ae63ad4418d60cc3d-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
正在嘗試其它鏡像。
(2/2): epel/primary_db                                     | 6.7 MB   03:15     
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 R.x86_64.0.3.5.2-2.el7 將被 安裝
--> 正在處理依賴關係 R-devel = 3.5.2-2.el7,它被軟件包 R-3.5.2-2.el7.x86_64 須要
--> 正在處理依賴關係 libRmath-devel = 3.5.2-2.el7,它被軟件包 R-3.5.2-2.el7.x86_64 須要
......
依賴關係解決

================================================================================
 Package               架構   版本                                源       大小
================================================================================
正在安裝:
 R                     x86_64 3.5.2-2.el7                         epel     30 k
爲依賴而安裝:
 R-core                x86_64 3.5.2-2.el7                         epel     56 M
 R-core-devel          x86_64 3.5.2-2.el7                         epel    108 k
 R-devel               x86_64 3.5.2-2.el7                         epel     29 k
 R-java                x86_64 3.5.2-2.el7                         epel     30 k
 R-java-devel          x86_64 3.5.2-2.el7                         epel     30 k
事務概要
================================================================================
安裝  1 軟件包 (+251 依賴軟件包)
升級           (   8 依賴軟件包)

總計:229 M
總下載量:194 M
Is this ok [y/d/N]: N


複製代碼

使用本機安裝光盤進行安裝

若是主機沒有網絡,只有安裝光盤,能夠將光盤掛載到某個目錄,假設掛載到 /mnt/cdrom 目錄,而後進行編輯 yum 配置文件

[root@master yum.repos.d]# vim cdrom.repo
[mycdrom]
name = mycdrom
baseurl = file:///mnt/cdrom
gpgcheck = 0
enabled = 0
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

[root@master ~]# yum enablerepo=mycdrom install software name
複製代碼

在光盤中有幾個重要的文件

[root@practice cdrom]# ll
總用量 614
-rw-r--r--. 1 root root     16 4月   1 2015 CentOS_BuildTag
drwxr-xr-x. 3 root root   2048 3月  28 2015 EFI
-rw-r--r--. 1 root root    215 3月  28 2015 EULA
-rw-r--r--. 1 root root  18009 3月  28 2015 GPL
drwxr-xr-x. 3 root root   2048 3月  28 2015 images
drwxr-xr-x. 2 root root   2048 3月  28 2015 isolinux
drwxr-xr-x. 2 root root   2048 3月  28 2015 LiveOS
drwxr-xr-x. 2 root root 589824 4月   1 2015 Packages #各類 RPM 包
drwxr-xr-x. 2 root root   4096 4月   1 2015 repodata #依賴關係文件所在目錄
-rw-r--r--. 1 root root   1690 3月  28 2015 RPM-GPG-KEY-CentOS-7  #光盤中軟件包數字簽名的公鑰
-rw-r--r--. 1 root root   1690 3月  28 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 4月   1 2015 TRANS.TBL
複製代碼

製做 http 服務,發佈網絡 yum 源

  1. 在一臺服務器上有 rpm 軟件包(能夠自建,也能夠掛載光盤直接使用光盤裏的軟件包)
  2. 在這臺機器上安裝 http 服務
[root@practice etc]# yum list httpd
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.njupt.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirror.bit.edu.cn
可安裝的軟件包
httpd.x86_64                        2.4.6-90.el7.centos                         base
[root@practice etc]# yum -y install httpd
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.njupt.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirror.bit.edu.cn
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 httpd.x86_64.0.2.4.6-90.el7.centos 將被 安裝
--> 正在處理依賴關係 httpd-tools = 2.4.6-90.el7.centos,它被軟件包 httpd-2.4.6-90.el7.centos.x86_64 須要
--> 正在處理依賴關係 /etc/mime.types,它被軟件包 httpd-2.4.6-90.el7.centos.x86_64 須要
--> 正在檢查事務
---> 軟件包 httpd-tools.x86_64.0.2.4.6-90.el7.centos 將被 安裝
---> 軟件包 mailcap.noarch.0.2.1.41-2.el7 將被 安裝
--> 解決依賴關係完成

依賴關係解決

====================================================================================
 Package             架構           版本                         源            大小
====================================================================================
正在安裝:
 httpd               x86_64         2.4.6-90.el7.centos          base         2.7 M
爲依賴而安裝:
 httpd-tools         x86_64         2.4.6-90.el7.centos          base          91 k
 mailcap             noarch         2.1.41-2.el7                 base          31 k

事務概要
====================================================================================
安裝  1 軟件包 (+2 依賴軟件包)

總下載量:2.8 M
安裝大小:9.6 M
Downloading packages:
(1/3): mailcap-2.1.41-2.el7.noarch.rpm                       |  31 kB  00:00:00     
(2/3): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm            |  91 kB  00:00:00     
(3/3): httpd-2.4.6-90.el7.centos.x86_64.rpm                  | 2.7 MB  00:00:05     
------------------------------------------------------------------------------------
總計                                                   533 kB/s | 2.8 MB  00:05     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : httpd-tools-2.4.6-90.el7.centos.x86_64                          1/3 
  正在安裝    : mailcap-2.1.41-2.el7.noarch                                     2/3 
  正在安裝    : httpd-2.4.6-90.el7.centos.x86_64                                3/3 
  驗證中      : mailcap-2.1.41-2.el7.noarch                                     1/3 
  驗證中      : httpd-tools-2.4.6-90.el7.centos.x86_64                          2/3 
  驗證中      : httpd-2.4.6-90.el7.centos.x86_64                                3/3 

已安裝:
  httpd.x86_64 0:2.4.6-90.el7.centos                                                

做爲依賴被安裝:
  httpd-tools.x86_64 0:2.4.6-90.el7.centos       mailcap.noarch 0:2.1.41-2.el7      

完畢!
[root@practice etc]# systemctl start httpd
[root@practice etc]# service httpd status
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2019-11-17 12:05:57 CST; 1s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 10075 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─10075 /usr/sbin/httpd -DFOREGROUND
           ├─10081 /usr/sbin/httpd -DFOREGROUND
           ├─10082 /usr/sbin/httpd -DFOREGROUND
           ├─10083 /usr/sbin/httpd -DFOREGROUND
           ├─10084 /usr/sbin/httpd -DFOREGROUND
           └─10085 /usr/sbin/httpd -DFOREGROUND

11月 17 12:05:57 practice systemd[1]: Starting The Apache HTTP Server...
11月 17 12:05:57 practice httpd[10075]: AH00558: httpd: Could not reliably det...ge
11月 17 12:05:57 practice systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

[root@practice yum.repos.d]# cd /var/www #http服務安裝成功後文件存放路徑
[root@practice www]# ll
總用量 0
drwxr-xr-x. 2 root root 6 8月   8 19:42 cgi-bin
drwxr-xr-x. 2 root root 6 8月   8 19:42 html
[root@practice www]# cd html/
[root@practice html]# ll
總用量 0  #初始化狀態這個文件夾中文空
[root@practice html]# ln -s /mnt/cdrom ./centos #建立對RPM包的軟連接,也能夠直接將軟件包複製到這個目錄下

[root@practice html]# cd /etc/yum.repos.d/
[root@practice yum.repos.d]# vim http-repo.repo

[httprepo]
name = httprepo
baseurl = http://practice/centos
gpgcheck = 0
enabled = 1
gpgcheck=1
gpgkey=http://practice/RPM-GPG-KEY-CentOS-7

複製代碼

http發佈的軟件源以下:

相關文章
相關標籤/搜索