2018-05-28笔记(软件包安装和卸载)

第七章 软件包安装和卸载

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 $?”进行检测,确保其正确。
安装完成!

猜你喜欢

转载自blog.51cto.com/13736286/2121808