yum程序包管理和程序包编译安装

yum程序包管理和程序包编译安装

一、yum程序包的管理

1、yum repo 存储了许多的rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)

yum客户端:配置文件:

/etc/yum.conf:为所有仓库提供公共配置。

/etc/yum.repos.d/*.repo:为仓库的指向提供配置,如果自建yum仓库的话,要在/yum.repos.d/下面自定义建立repo结尾的文档,然后进行配置工作。

2、定义yum仓库配置文件需要定义的内容有:

[repositoryID]   公共的主配置段

name=Some name for this repository  仓库完整名称

baseurl=url://path/to/repository/  仓库访问的URL路径,可以访问本地自建的路径。

        url://path/to/repository/  可以指向多个URL路径,可以是ftp:// http:// 

enabled={1|0} 是否启用此功能,默认是启用的。1为启用,0为不启用。

gpgcheck={1|0} 是否检查程序包的来源合法性。1为启用,0为不启用。

gpgkey=URL 指明秘钥文件,能访问秘钥文件的文件路径。

enablegroups={1|0} 是否支持在此仓库上支持组管理程序包。默认为是可以的。1为可以,0为部可以。

failovermethod={roundrobin|priority} 选择URL地址是否原则顺序,还是轮训。默认为随机的。

cost=   开销数字,默认为1000.

3、指向一个yum仓库

(1)进入配置文件cd /etc/yum.repos.d , vim 建一个以repo结尾的文件进行编辑

[root@mageedu yum.repos.d]# vim CentOS-local.repo 

[server2]

name=aliyun

baseurl=http://mirrors.aliyun.com/centos/6.7/os/x86_64/

gpgcheck=0

Enable=1

然后进行:wq 保存退出即可

 (2)查看yum 仓库列表 使用 yum repolist 即可查看:如下,结果已经显示,已经读取成功。

[root@mageedu yum.repos.d]# yum repolist


              wKioL1bup56iYUv-AAAMZeYREm0067.png

4、yum 命令的用法

(1)显示程序包:

yum repolist all 显示所有仓库列表

yum repolist enabled 显示已经启用的仓库列表

yum repolist disabled 显示未启用的仓库列表

yum list 显示程序包列表(可以配合通配符使用)例如:yum list php*

yum list available 显示可用的程序包,但是未安装 ,可以配合通配符过滤使用。

yum list installed 显示已经安装的程序包,可以配合通配符过滤使用。

yum list updates 显示可以升级的程序包,可以配合通配符过滤使用。

(2)安装程序包:

yum install + 程序包 +...

[root@mageedu yum.repos.d]# yum install gcc

已加载插件:fastestmirror, langpacks

server                                          | 2.9 kB     00:00     

server2                                         | 3.7 kB     00:00     

server3                                         | 3.6 kB     00:00     

server4                                         | 4.3 kB     00:00     

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.opencas.cn

 * extras: mirrors.opencas.cn

 * updates: mirrors.opencas.cn

软件包 gcc-4.8.5-4.el7.x86_64 已安装并且是最新版本

无须任何处理

(3)升级程序包:

yum update + 程序包 +...

(4)检查可用升级包:

yum check-update 

(5)卸载指定程序包:

yum remove | erase +程序包 +...

[root@mageedu yum.repos.d]# yum remove cpp

已加载插件:fastestmirror, langpacks

正在解决依赖关系

--> 正在检查事务

---> 软件包 cpp.x86_64.0.4.8.5-4.el7 将被 删除

--> 正在处理依赖关系 cpp = 4.8.5-4.el7,它被软件包 gcc-4.8.5-4.el7.x86_64 需要

--> 正在检查事务

---> 软件包 gcc.x86_64.0.4.8.5-4.el7 将被 删除

--> 正在处理依赖关系 gcc,它被软件包 systemtap-devel-2.8-10.el7.x86_64 需要

--> 正在处理依赖关系 gcc = 4.8.5,它被软件包 libtool-2.4.2-21.el7_2.x86_64 需要

--> 正在处理依赖关系 gcc,它被软件包 systemtap-devel-2.8-10.el7.x86_64 需要

--> 正在处理依赖关系 gcc = 4.8.5-4.el7,它被软件包 gcc-c++-4.8.5-4.el7.x86_64 需要

--> 正在处理依赖关系 gcc = 4.8.5-4.el7,它被软件包 libquadmath-devel-4.8.5-4.el7.x86_64 需要

--> 正在处理依赖关系 gcc = 4.8.5-4.el7,它被软件包 gcc-gfortran-4.8.5-4.el7.x86_64 需要

--> 正在检查事务

---> 软件包 gcc-c++.x86_64.0.4.8.5-4.el7 将被 删除

---> 软件包 gcc-gfortran.x86_64.0.4.8.5-4.el7 将被 删除

---> 软件包 libquadmath-devel.x86_64.0.4.8.5-4.el7 将被 删除

---> 软件包 libtool.x86_64.0.2.4.2-21.el7_2 将被 删除

---> 软件包 systemtap-devel.x86_64.0.2.8-10.el7 将被 删除

--> 正在处理依赖关系 systemtap-devel = 2.8-10.el7,它被软件包 systemtap-2.8-10.el7.x86_64 需要

--> 正在检查事务

---> 软件包 systemtap.x86_64.0.2.8-10.el7 将被 删除

--> 解决依赖关系完成


依赖关系解决


=======================================================================

 Package              架构      版本                源            大小

=======================================================================

正在删除:

 cpp                  x86_64    4.8.5-4.el7         @anaconda     15 M

为依赖而移除:

 gcc                  x86_64    4.8.5-4.el7         @anaconda     37 M

 gcc-c++              x86_64    4.8.5-4.el7         @anaconda     16 M

 gcc-gfortran         x86_64    4.8.5-4.el7         @anaconda     16 M

 libquadmath-devel    x86_64    4.8.5-4.el7         @anaconda     18 k

 libtool              x86_64    2.4.2-21.el7_2      @updates     2.2 M

 systemtap            x86_64    2.8-10.el7          @anaconda     44 k

 systemtap-devel      x86_64    2.8-10.el7          @anaconda    6.1 M


事务概要

=======================================================================

移除  1 软件包 (+7 依赖软件包)


安装大小:92 M

是否继续?[y/N]:


(6)查看程序包information:

info 

[root@mageedu yum.repos.d]# yum info gcc

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.opencas.cn

 * extras: mirrors.opencas.cn

 * updates: mirrors.opencas.cn

已安装的软件包

名称    :gcc

架构    :x86_64

版本    :4.8.5

发布    :4.el7

大小    :37 M

源    :installed

来自源:anaconda

简介    : Various compilers (C, C++, Objective-C, Java, ...)

网址    :http://gcc.gnu.org

协议    : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions

         : and LGPLv2+ and BSD

描述    : The gcc package contains the GNU Compiler Collection version

         : 4.8. You'll need this package in order to compile C code.

(7)provides :查看指定的特性是由哪个程序包所提供的。

[root@mageedu yum.repos.d]# yum provides gcc

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.btte.net

 * extras: mirrors.opencas.cn

 * updates: mirrors.btte.net

gcc-4.4.7-16.el6.x86_64 : Various compilers (C, C++, Objective-C, Java,

                        : ...)

源    :server2

gcc-4.8.5-4.el7.x86_64 : Various compilers (C, C++, Objective-C, Java,

                       : ...)

源    :base

gcc-4.8.5-4.el7.x86_64 : Various compilers (C, C++, Objective-C, Java,

                       : ...)

源    :server3

gcc-4.8.5-4.el7.x86_64 : Various compilers (C, C++, Objective-C, Java,

                       : ...)

源    :@anaconda

(8)清理本地的缓存:

clean 

(9)构建本地缓存:

makecache

(10)搜索

search string1 +...

[root@mageedu yum.repos.d]# yum search bash

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.btte.net

 * extras: mirrors.sina.cn

 * updates: mirrors.btte.net

========================== N/S matched: bash ==========================

bash-argsparse.noarch : An high level argument parsing library for bash

bash-completion.noarch : Programmable completion for Bash

bash-completion-extras.noarch : Additional programmable completions for

                              : Bash

bash-doc.x86_64 : Documentation files for bash

bashdb.noarch : BASH debugger, the BASH symbolic debugger

bashmount.noarch : A menu-driven bash script for mounting removable

                 : media

libguestfs-bash-completion.noarch : Bash tab-completion scripts for

                                  : libguestfs tools

pcp-pmda-bash.x86_64 : Performance Co-Pilot (PCP) metrics for the Bash

                     : shell

python-django-bash-completion.noarch : bash completion files for Django

bash.x86_64 : The GNU Bourne Again shell

bats.noarch : Bash Automated Testing System

python-argcomplete.noarch : Bash tab completion for argparse

sys_basher.x86_64 : A multithreaded hardware exerciser

(11)重新安装程序包:

reinstall +程序包 +...

(12)查看指定包所依赖的关系(capabilities)

yum deplist +程序包名

[root@mageedu yum.repos.d]# yum deplist gcc

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.opencas.cn

 * extras: mirrors.opencas.cn

 * updates: mirrors.opencas.cn

软件包:gcc.x86_64 4.8.5-4.el7

   依赖:/bin/sh

   provider: bash.x86_64 4.2.46-19.el7

   依赖:/sbin/install-info

   provider: info.x86_64 5.1-4.el7

   依赖:binutils >= 2.20.51.0.2-12

   provider: binutils.x86_64 2.23.52.0.1-55.el7

   依赖:cpp = 4.8.5-4.el7

   provider: cpp.x86_64 4.8.5-4.el7

   依赖:glibc-devel >= 2.2.90-12

   provider: glibc-devel.x86_64 2.17-106.el7_2.4

   provider: glibc-devel.i686 2.17-106.el7_2.4

   provider: libgomp.x86_64 4.8.5-4.el7

   provider: libgomp.i686 4.8.5-4.el7

   依赖:libgomp.so.1()(64bit)

   provider: libgomp.x86_64 4.8.5-4.el7

   依赖:libm.so.6()(64bit)

 

(13)yum history 

    yum history packages-list

    yum history info

(14)localinstall

    localupdate

四、包组管理的程序包:


groupinstall group1 [group2] [...] 安装包组

groupupdate group1 [group2] [...]更新包组

yum groupdate  升级包组

grouplist [hidden] [groupwildcard] [...] 列出包组列表

groupremove group1 [group2] [...] 删除包组

groupinfo group1 [...] 显示包组的信息

五、创建一个本地的YUM仓库:

(1)先建一个目录存放RPM包,mkdir -p /yum/repo

  然后将其xen 下的所有RPM包放到 /yum/repo 目录下。

ls /yum/repo 查看一下是否已经有所有的程序包 ,RPM包已经存在。

yum程序包管理和程序包编译安装_第1张图片

(2)创建包组 createrepo ./ 执行完成后会生成repodata 目录

[root@mageedu repo]# createrepo ./

Spawning worker 0 with 54 pkgs

Spawning worker 1 with 54 pkgs

Spawning worker 2 with 54 pkgs

Spawning worker 3 with 53 pkgs

Workers Finished

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

(3)进入cd repodata 目录里面去,查看一下内容ls 

[root@mageedu repo]# cd repodata/

[root@mageedu repodata]# ls

08b988bec63dbb8b476890070da0e7b1bc8506d506fd07381592e69ac39029ad-primary.xml.gz

64e03fa19b70d01b9dc3618a3967993d9edc2107d1522f78684538f90424c5b6-other.xml.gz

95195bf6953a8b596668938f5c313cba45bf83508c0fa350ba953bd57f1d1fc9-primary.sqlite.bz2

ae734d43ef5877bfb1d913c516f1bf0c62035bd9d15d3eaeebce92960ffcdd40-filelists.xml.gz

baf986873befe7ab4b59e3a01a3fbd6d8fb69c061ba36869e17b769e860302a4-filelists.sqlite.bz2

dfb93d132de8da0c3c622c8fe8d3ddcb18d5e0c7cd8e2a4501b3ab69ce4641d1-other.sqlite.bz2

repomd.xml

(4)进入 cd /etc/yum.repos.d/下  编辑 vim CentOS-local.repo 

[server]

name=xen  指明仓库的名字

baseurl=file:///yum/repo  仓库的URL位置

gpgcheck=0 是否需要合法性检查

Enable=1 启用

编辑完成后之后保存退出:wq

(5)查看一下启用的仓库列表 使用命令yum repolist   查看结果中已经有 xen,说明yum仓库已经启用了。


[root@mageedu yum.repos.d]# yum repolist

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

 * base: mirrors.btte.net

 * centosplus: mirrors.opencas.cn

 * extras: mirrors.opencas.cn

 * updates: mirrors.opencas.cn

源标识                                                          源名称                                                          状态

base/7/x86_64                                                   CentOS-7 - Base                                                 9,007

centosplus/7/x86_64                                             CentOS-7 - Plus                                                    53

extras/7/x86_64                                                 CentOS-7 - Extras                                                 226

server                                                          xen                                                               215

server2                                                         aliyun os                                                       6,575

server3                                                         iso                                                             9,007

server4                                                         epel                                                            9,664

updates/7/x86_64                                                CentOS-7 - Updates                                                942

repolist: 35,689


程序包的编译安装


    第一步:configure脚本

    选项:指定安装位置、指定启用的特性

     --help: 获取其支持使用的选项

    选项分类:

    安装路径设定:

    --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

    --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

    System types:

    Optional Features: 可选特性

    --disable-FEATURE

    --enable-FEATURE[=ARG]

    Optional Packages: 可选包

    --with-PACKAGE[=ARG]

    --without-PACKAGE

    第二步:make

    第三步:make install

    安装后的配置:

    (1) 导出二进制程序目录至PATH环境变量中;

    编辑文件/etc/profile.d/NAME.sh

    export PATH=/PATH/TO/BIN:$PATH


    (2) 导出库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf

    添加新的库文件所在目录至此文件中;


    让系统重新生成缓存:

    ldconfig [-v]


    (3) 导出头文件

    基于链接的方式实现:

    ln -sv 


    (4) 导出帮助手册

    编辑/etc/man.config文件

    添加一个MANPATH

案例如下:编译安装apache 2.2; 启动此服务;

  1. 在根目录新建一个目录为mkdir apache,然后将其httpd-2.2.29.tar.bz2放进apache目录中。

  2. 进入apache目录中,然后进行对原文件进行解压,tar -xf httpd-2.2.29.tar.bz2,加压完成后

    会显示httpd-2.2.29文件类表如下:

    wKiom1buvy7DHq9JAAAPv7nvqVw886.png

3.  然后进入httpd-2.2.29文件中,然后进行查看一下,ls 然后指定安装路径和配置文件的安装路径,命令如下,里面没有Makefile文件,第一步编译安装后,就会生成。

    

[root@mageedu httpd-2.2.29]# ls

ABOUT_APACHE  buildconf      config.status  httpd.dep   InstallBin.dsp   modules.o         README-win32.txt  VERSIONING

acinclude.m4  buildmark.o    configure      httpd.dsp   LAYOUT           NOTICE            ROADMAP

Apache.dsw    CHANGES        configure.in   httpd.mak   libhttpd.dep     NWGNUmakefile     server

build         config.layout  docs           httpd.spec  libhttpd.dsp    modules       os                srclib

BuildAll.dsp  config.log     emacs-style    include     libhttpd.mak    modules.c     README            support

BuildBin.dsp  config.nice    httpd          INSTALL     LICENSE         modules.lo    README.platforms  test

4.进行编译安装的第一步:

[root@mageedu httpd-2.2.29]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2

5.进行编译安装的第二步:

[root@mageedu httpd-2.2.29]#make

6.进行编译安装的第三步;

[root@mageedu httpd-2.2.29]#make install 

7.对apachect1 进行服务的启动

[root@mageedu apache2]# ./bin/apachectl start

8.查看80端口是否已经启动,查看命令netstat -tan 

[root@mageedu apache2]# netstat -tan

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     

tcp        0     52 192.168.1.123:22        192.168.1.112:61355     ESTABLISHED

tcp6       0      0 :::80                   :::*                    LISTEN     

tcp6       0      0 :::22                   :::*                    LISTEN     

tcp6       0      0 ::1:25                  :::*                    LISTEN 

9.然后进行测试,用windows的电脑网页地址中输入linux虚拟机电脑的地址,查看结果如下;

yum程序包管理和程序包编译安装_第2张图片

总结,以上就是apache2.2程序的包的编译安装过程和测试结果。

继续努力。




你可能感兴趣的:(配置文件,enabled,合法性)