1. 程式人生 > >2018-05-28筆記(軟件包安裝和卸載)

2018-05-28筆記(軟件包安裝和卸載)

linux

第七章 軟件包安裝和卸載

7.1 安裝軟件包的三種方法

linux下安裝軟件包有三種方式,rpm安裝,yum在線安裝,下載源碼包安裝
rpm工具
rpm(Redhat Package Manager)RPM軟件包管理器,是以一種數據庫記錄的方式來將我們所需要的套件安裝到Linux主機的一套管理程序。rpm包是預先在Linux機器上編譯好並打包好的文件,安裝起來非常快捷。但是有一個缺點:安裝環境必須與編譯時的一致或相當;包與包之間存在著相互依賴的情況,安裝或卸載包時需要先把依賴的包安裝/卸載,如果依賴的包時系統所必須的,那就不能卸載這個包。

yum工具
yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

源碼包安裝
Linux軟件的源代碼分發是指提供了該軟件所有程序源代碼的發布形式,需要用戶自己編譯成可執行的二進制碼並進行安裝。其優點是配置靈活,可以隨意去掉或保留某些功能/模塊,適應多種硬件/操作系統平臺及編譯環境;缺點是難度較大

7.2rpm工具安裝軟件包

首先可以 mount /dev/cdrom /mnt 命令把光驅掛載到/mnt目錄下,那麽你會在/mnt/Packages目錄下看到很多.rpm的文件,這些就是RPM包

[root@localhost ~]# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost Packages]# ll /mnt
總用量 664
-rw-rw-r-- 3 root root     14 9月   5 2017 CentOS_BuildTag
drwxr-xr-x 3 root root   2048 9月   5 2017 EFI
-rw-rw-r-- 3 root root    227 8月  30 2017 EULA
-rw-rw-r-- 3 root root  18009 12月 10 2015 GPL
drwxr-xr-x 3 root root   2048 9月   5 2017 images
drwxr-xr-x 2 root root   2048 9月   5 2017 isolinux
drwxr-xr-x 2 root root   2048 9月   5 2017 LiveOS
drwxrwxr-x 2 root root 641024 9月   5 2017 Packages
drwxr-xr-x 2 root root   4096 9月   5 2017 repodata
-rw-rw-r-- 3 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 3 root root   1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root   2883 9月   6 2017 TRANS.TBL
[root@localhost Packages]# ls /mnt/Packages/|head            
389-ds-base-1.3.6.1-16.el7.x86_64.rpm
389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm
abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm
abrt-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-kerneloops-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-pstoreoops-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-python-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm
abrt-addon-xorg-2.1.11-48.el7.centos.x86_64.rpm

每一個rpm包的名稱都由 - 和 . 分成了若幹部分。像“abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm” 這個包, “abrt-addon-vmcore” 為包名, “2.1.11” 則為版本信息, “48.el7.centos” 為發布版本號, “x86_64” 為運行平臺。其中運行平臺常見的有i386, i586, i686, x86_64 ,需要你註意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平臺,x86_64則代表為64位的平臺。另外有些rpm包並沒有寫具體的平臺而是noarch,這代表這個rpm包沒有硬件平臺限制。

rpm工具用法
安裝一個rpm包
語法: rpm [options] [參數]
Options:
-i:=install,安裝
-v:可視化
-h:顯示安裝進度
在安裝一個rpm包時常用附帶選項:
--force:強制安裝
--nodeps:=no dependent 無依賴安裝(忽視與其他包之間的依賴關系)

[root@localhost Packages]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm 
準備中...                          ################################# [100%]
正在升級/安裝...
   1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]

說明: 安裝有依賴關系的包時,可以先安裝其所依賴的包再安裝目標包(同時安裝存在依賴關系的包),或者使用--force或--nodeps選項進行強行安裝。
升級rpm包
語法: rpm [-U] [包名]

[root@localhost Packages]# rpm -Uvh /mnt/Packages/libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
準備中...                          ################################# [100%]
    軟件包 libjpeg-turbo-devel-1.2.90-5.el7.x86_64 已經安裝

說明: 如果升級一個已經安裝的最新版本的包,執行該命令後無任何操作
卸載一個rpm包
語法: rpm [-e] [包名]
卸載時可以直接跟包名,無需加包的信息;當包之間存在依賴關系時也需要先卸載其依賴包。

[root@localhost Packages]# rpm -e libjpeg-turbo-devel                  #直接卸載了,沒有信息輸出

查詢已安裝的rpm包
語法:
rpm [-q] [包名] 查詢指定包
rpm [-qa] 查詢所有已安裝包

[root@localhost Packages]# rpm -q libjpeg-turbo
libjpeg-turbo-1.2.90-5.el7.x86_64
[root@localhost Packages]# rpm -qa |grep libjpeg-turbo       #rpm -qa會把所有安裝的包列出來,太多了,可以通過管道|和grep過濾出來
libjpeg-turbo-1.2.90-5.el7.x86_64

查詢已安裝包的相關信息
語法: rpm [-qi] [包名]
q查詢,i信息information

[root@localhost Packages]# rpm -qi libjpeg-turbo
Name        : libjpeg-turbo
Version     : 1.2.90
Release     : 5.el7
Architecture: x86_64
Install Date: 2018年05月29日 星期二 20時25分57秒
Group       : System Environment/Libraries
Size        : 350387
License     : IJG
Signature   : RSA/SHA256, 2014年07月04日 星期五 10時55分27秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : libjpeg-turbo-1.2.90-5.el7.src.rpm
Build Date  : 2014年06月10日 星期二 11時48分52秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://sourceforge.net/projects/libjpeg-turbo
Summary     : A MMX/SSE2 accelerated library for manipulating JPEG image files
Description :
The libjpeg-turbo package contains a library of functions for manipulating
JPEG images.

查詢某個包安裝了哪些文件
語法: rpm [-ql] [包名]

[root@localhost Packages]# rpm -ql libjpeg-turbo
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.1.0
/usr/share/doc/libjpeg-turbo-1.2.90
/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt
/usr/share/doc/libjpeg-turbo-1.2.90/README
/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt
/usr/share/doc/libjpeg-turbo-1.2.90/change.log

查看某文件的安裝包

語法: rpm [-qf] [文件絕對路徑]

[root@localhost Packages]# rpm -qf /usr/bin/cd
bash-4.2.46-28.el7.x86_64

當不知道其絕對路徑時,使用which命令查詢

[root@localhost Packages]# rpm -qf `which cd`
bash-4.2.46-28.el7.x86_64
[root@localhost Packages]# which cd
/usr/bin/cd
[root@localhost Packages]# rpm -qf /usr/bin/cd           #可以看到這裏和rpm -qf `which cd`結果是一樣的
bash-4.2.46-28.el7.x86_64

反引號``是得到那個命令的結果
列出所有rpm包
命令: yum list

[root@localhost ~]#yum list 
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
Installed Packages
NetworkManager-libnm.x86_64                1:1.4.0-12.el7              @anaconda
NetworkManager-team.x86_64                 1:1.4.0-12.el7              @anaconda
zsh.x86_64                                        5.0.2-25.el7_3.1                    updates  
zsh-html.x86_64                                   5.0.2-25.el7_3.1                    updates  
zziplib.i686                                      0.13.62-5.el7                       base     
zziplib.x86_64                                    0.13.62-5.el7                       base   
……
Exiting on Broken Pipe
註: 第一列是包名,第二列是版本號,第三列是庫

說明: 庫所在位置有“@”表示已安裝;“updates”表示已安裝,有新版本,需要升級;其他的表示可安裝但還未安裝的rpm包。
yum配置文件

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo  epel-testing.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  epel.repo

搜索rpm包

語法: yum search [關鍵詞]或者yum list |grep [關鍵詞]

[root@localhost ~]# yum search vim
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.shu.edu.cn
 * updates: centos.ustc.edu.cn
========================================== N/S matched: vim ===========================================
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib tests in VIM editor
fluxbox-vim-syntax.noarch : Fluxbox syntax scripts for vim
neovim.x86_64 : Vim-fork focused on extensibility and agility
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
python2-neovim.noarch : Python client to Neovim
python34-neovim.noarch : Python client to Neovim
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-go.x86_64 : Go development plugin for Vim
vim-gtk-syntax.noarch : Vim syntax highlighting for GLib, Gtk+, Gstreamer, and more
vim-jellybeans.noarch : A colorful, dark color scheme for Vim
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-toml.noarch : Vim syntax for TOML
vim-vimoutliner.noarch : Script for building an outline editor on top of Vim
xtuple-csvimp-devel.x86_64 : CSVImp development files
apvlv.x86_64 : PDF viewer which behaves like Vim
vim-fugitive.noarch : A Git wrapper so awesome, it should be illegal
vim-halibut.noarch : Syntax file for the halibut manual tool
xtuple-csvimp.x86_64 : xTuple data import utility
[root@localhost ~]# yum list |grep vim
vim-minimal.x86_64                       2:7.4.160-2.el7               @anaconda
beakerlib-vim-syntax.noarch              1.17-13.el7                   epel     
fluxbox-vim-syntax.noarch                1.3.7-1.el7                   epel     
neovim.x86_64                            0.2.0-2.el7                   epel     
protobuf-vim.x86_64                      2.5.0-8.el7                   base     
python2-neovim.noarch                    0.1.13-3.el7                  epel     
python34-neovim.noarch                   0.1.13-3.el7                  epel     
vim-X11.x86_64                           2:7.4.160-4.el7               base     
vim-common.x86_64                        2:7.4.160-4.el7               base     
vim-enhanced.x86_64                      2:7.4.160-4.el7               base     
vim-filesystem.x86_64                    2:7.4.160-4.el7               base     
vim-fugitive.noarch                      2.2-8.el7                     epel     
vim-go.x86_64                            1.8-3.el7                     epel     
vim-gtk-syntax.noarch                    20130716-1.el7                epel     
vim-halibut.noarch                       1.2-1.el7                     epel     
vim-jellybeans.noarch                    1.6-1.el7                     epel     
vim-minimal.x86_64                       2:7.4.160-4.el7               base     
vim-toml.noarch                          0-0.1.20180306git624f024.el7  epel     
vim-vimoutliner.noarch                   0.4.0-8.el7                   epel     
xtuple-csvimp.x86_64                     0.5.4-8.el7                   epel     
xtuple-csvimp-devel.x86_64               0.5.4-8.el7                   epel 

列出rpm包組
語法: yum grouplist

[root@localhost ~]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.shu.edu.cn
 * updates: centos.ustc.edu.cn
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Cinnamon Desktop
   MATE Desktop
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Educational Software
   Electronic Lab
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   Legacy UNIX Compatibility
   Milkymist
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
   TurboGears application framework
   Xfce
Done

安裝rpm包

語法: yum install [-y] [包名]
說明: 如果有依賴的包,會把依賴的包同時安裝上,如果不加‘-y’選項,則會以與用戶交互的方式安裝。首先是列出需要安裝的rpm包,然後會問用戶是否需要安裝,輸入‘y’則安裝,輸入‘n’則不安裝,這樣太麻煩,所以直接加上‘-y’選項,省略與用戶之間的交互。

安裝rpm包組

語法: yum groupinstall [-y] [包的組名]
如果不知道組名,可用yum grouplist查看(註:進行安裝時只能用英文名)。

卸載rpm包

語法: yum remove [-y] [包名]
說明: ‘-y’選項同install的用法,需要註意的是,在使用該命令進行卸載時會將目標文件所依賴的所有包同時刪除,所以要謹慎使用!

升級rpm包

語法: yum update [-y] [包名]
說明: 如果不加包名,則會升級系統內所有包以及系統本身(慎用,一般只在剛安裝完系統時使用

查看某個命令是由哪個包提供的
語法: yum provides "/*/命令名"

[root@localhost ~]# yum provides "/*/createrepo"
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * epel: mirrors.sohu.com
 * extras: mirrors.shu.edu.cn
 * updates: centos.ustc.edu.cn
createrepo-0.9.9-28.el7.noarch : Creates a common metadata repository
Repo        : base
Matched from:
Filename    : /usr/lib/python2.7/site-packages/createrepo
Filename    : /usr/share/createrepo
Filename    : /usr/bin/createrepo
Filename    : /etc/bash_completion.d/createrepo

createrepo-0.9.9-28.el7.noarch : Creates a common metadata repository
Repo        : @base
Matched from:
Filename    : /usr/bin/createrepo
Filename    : /etc/bash_completion.d/createrepo

說明:一般為/usr/bin/XXX的才是正確的
yum搭建本地光盤yum源
掛載光盤——刪除/etc/yum.repos.d/目錄所有repo文件——創建新文件dvd.repo——清除原有緩存‘yum clean all’

[root@localhost ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak   
備份原.repo文件
[root@localhost ~]# cd /etc/yum.repos.d   切換目錄
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Sources.repo  CentOS-fasttrack.repo
CentOS-CR.repo    CentOS-Media.repo      CentOS-Vault.repo
[root@localhost yum.repos.d]# rm -rf ./*
刪除原有repo文件
[root@localhost yum.repos.d]# vim dvd.repo
“
[dvd]
name=install dvd        
baseurl=file:///mnt
enable=1
gpgcheck=0
”
此部分內容除baseurl目錄根據個人實際操作更改外,其余內容固定。

[root@localhost yum.repos.d]# yum clean all
清除系統原有緩存
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Cleaning repos: dvd
Cleaning up everything
Cleaning up list of fastest mirrors
[root@localhost ~]# yum list 
……
Available Packages  還未安裝的可安裝rpm包的庫都變成dvd
ypserv.x86_64                                    2.31-8.el7                           dvd      
yum-langpacks.noarch                             0.4.2-7.el7                          dvd      
yum-plugin-aliases.noarch                        1.1.31-40.el7                        dvd      
yum-plugin-changelog.noarch                      1.1.31-40.el7                        dvd      
yum-plugin-tmprepo.noarch                        1.1.31-40.el7                        dvd      ……

如果不想使用本地yum源,需要刪除/etc/yum.repos.d/dvd.repo文件,然後恢復原來的配置文件
yum保留已經安裝過的包
可以設置使yum保留已經下載的rpm包,供以後升級或重新安裝時使用。
修改/etc/yum.conf即可:

[main]
cachedir=/home/soft1/yumcache
keepcache=1                              #這裏默認為0,修改成1
debuglevel=2

cachedir是放置下載的包的地方,可以修改成自己想放置的位置。
keepcache為1時表示保存已經下載的rpm包
也可以使用yumdownloader命令,只下載不安裝,默認下載到當前目錄,沒有這個命令可以安裝yum-util包

[root@localhost ~]# yum install -y yum-utils-1.1.31-45.el7.noarch
[root@localhost ~]# yumdownloader yum-utils.noarch 0:1.1.31-45.el7
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * epel: mirrors.sohu.com
 * extras: mirrors.shu.edu.cn
 * updates: centos.ustc.edu.cn
No Match for argument 0:1.1.31-45.el7
yum-utils-1.1.31-45.el7.noarch.rpm                                              | 119 kB  00:00:00     
[root@localhost ~]# ls
1.sh   2.sh   anaconda-ks.cfg        logdir2018-04-30.log   logfile
1.txt  2.txt  loddir_2018-04-30.log  logdir_2018-04-30.log  yum-utils-1.1.31-45.el7.noarch.rpm

利用http服務搭載局域網yum源(這裏使用nginx提供http服務)
需要註意的是如果你的nginx服務正常,端口也綁定了80,瀏覽器不能正常訪問的話,請關閉防火墻或者設置放行80端口,關閉selinux

[root@localhost ~]# systemctl stop firewalld
  1. 先創建一個目錄,作為存在rpm包的目錄
    mkdir /data/yumdata
  2. 拷貝ISO鏡像文件中的rpm包到/data/yumdata/
    mount /dev/cdrom /mnt/
    cp /mnt/Packages/*rpm /data/yumdata

    【小常識】 可以在/data/yumdata/下面創建子目錄,然後把rpm包放到子目錄下面,也可以被識別到

  3. 創建repository
    createrepo /data/yumdata/```
    如果rpm包有增加,需要執行

    createrepo --update /data/yumdata/

  4. 安裝nginx,提供http服務

    yum install epel-release
    yum install nginx

    當然,如果無法使用yum,需要下載nginx源碼包,並編譯安裝
    配置nginx.conf,使其可以通過IP地址訪問到/data/yumdata
    參考配置文件:
    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    servername ;
    root /data/yumdata;

    location / {
        autoindex on;  //這一步必須要有,這是為了提供目錄瀏覽
    }
    
    error_page 404 /404.html;
        location = /40x.html {
    }
    
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

    }

  5. 客戶端上配置repo文件
    cd /etc/yum.repos.d
    mkdir bak
    mv *.rep  bak/  //把系統自帶的repo挪走
    vim my.repo //內容如下
    [aming]
    name=myserver
    baseurl=http://192.168.133.140
    gpgcheck=0
    enabled=1
  6. 做一個鏡像yum源
    比如可以把系統默認的源給鏡像到局域網來,思路是用rsync工具把遠程的rpm包同步到這臺局域網的對應目錄下即可。
    rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/  /data/yumdata/
  7. 當局域網的rpm庫有更新時,除了服務端執行“createrepo –update /data/yumdata/”外,客戶端上也需要執行
    
    yum  clean all   //刪除緩存`

yum更換國內源

可以直接修改配置文件

vi /etc/yum.repos.d/CentOS-Base.repo
[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/               #把這一行的#號去掉,把後面的 http地址改成國內的源地址
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

也可以刪除默認yum源,然後使用wget或者 curl -O命令建立新yum源:

[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1572  100  1572    0     0   8959      0 --:--:-- --:--:-- --:--:--  8982
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo
說明: 執行完curl命令後,原有yum源文件CentOS-Base.repo被替換成CentOS7-Base-163.repo。查看該yum源文件:

[root@localhost yum.repos.d]# vim CentOS7-Base-163.repo

CentOS-Base.repo

The mirror system uses the connecting IP address of the client and the
update status of each mirror to pick mirrors that are updated to and
geographically close to the client.  You should use this for CentOS updates
unless you are manually picking other mirrors.

If the mirrorlist= does not work for you, as a fall back you can try the 
remarked out baseurl= line instead.

[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
 "CentOS7-Base-163.repo" 41L, 1572C          

安裝擴展源epel

安裝一個擴展源文件(epel-release)

[root@localhost yum.repos.d]yum install -y epel-release
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      epel.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo    epel-testing.repo
####安裝完成後,yum.repos.d/下增加“epel.repo”、“epel-testing.repo”兩個文件:
[root@localhost yum.repos.d]# cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
……

查看:

[root@localhost yum.repos.d]# yum list
……
zulucrypt-doc.noarch                             5.0.1-1.el7                          epel     
zulucrypt-libs.x86_64                            5.0.1-1.el7                          epel     
zvbi.x86_64                                      0.2.35-1.el7                         epel     ……

增加了很多來自epel庫的rpm包。

7.3源碼包安裝

一般來說,源碼包在解壓縮後,會有readme之類的說明文件,裏面會有安裝說明。我們可以通過查看這個文件來知道怎麽安裝,不過一般的安裝步驟基本分三步(./configuer配置參數,make編譯,makeinstall安裝)
先下載一個源碼包!
為了規範 定義所有源碼包放到目錄“/usr/local/src/”!!!

[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz

下載完後解壓該文件:

[root@localhost src]# tar zxvf httpd-2.2.32.tar.gz
[root@localhost src]# ls
httpd-2.2.32  httpd-2.2.32.tar.gz

查看文件httpd-2.2.32的內容:

[root@localhost src]# cd httpd-2.2.32
[root@localhost httpd-2.2.32]# ls
ABOUT_APACHE  CHANGES        httpd.dsp       libhttpd.dep  NOTICE            server
acinclude.m4  config.layout  httpd.mak       libhttpd.dsp  NWGNUmakefile     srclib
Apache.dsw    configure      httpd.spec      libhttpd.mak  os                support
build         configure.in   include         LICENSE       README            test
BuildAll.dsp  docs           INSTALL         Makefile.in   README.platforms  VERSIONING
BuildBin.dsp  emacs-style    InstallBin.dsp  Makefile.win  README-win32.txt
buildconf     httpd.dep      LAYOUT          modules       ROADMAP

安裝Apache:

[root@localhost httpd-2.2.32]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
checking for working mkdir -p... yes
……
checking for chosen layout... apr
checking for gcc... no
checking for cc... no

當某命令運行結束後,使用"echo $?"檢驗其是否正確:

[root@localhost httpd-2.2.32]# echo $?
1

當該值為0時表示上一條命令正確,如果值為1則錯誤。
此處值為1,即上面命令錯誤,查看其安裝過程發現“checking for gcc... no”——表示“gcc”編譯器不存在,所以需要先安裝gcc編譯器:

[root@localhost httpd-2.2.32]# yum install -y gcc
…………
完畢!
[root@localhost httpd-2.2.32]# ./configure --prefix=/usr/local/apache2
再次安裝。
[root@localhost httpd-2.2.32]# echo $?
0
檢測,正確。
[root@localhost httpd-2.2.32]# make   編譯!
……
[root@localhost httpd-2.2.32]# echo $?
0
[root@localhost httpd-2.2.32]# make install
……
[root@localhost httpd-2.2.32]# echo $?
0

每次命令執行完後用“echo $?”進行檢測,確保其正確。
安裝完成!

2018-05-28筆記(軟件包安裝和卸載)