Linux软件包管理(YUM)及编译安装

YUM

一、yum安装使用:

1Yumrpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包,up2date的替代工具

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

3yum客户端配置文件:

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

/etc/yum.repos.d/*.repo:为仓库的指向提供配置

仓库指向的定义:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

默认为:roundrobin,意为随机挑选;

cost= 默认为1000

 blob.png

 配置好的文件后,做更新:

 blob.png

#yum clean all  清理本地缓存

#yum makecache  构建本地缓存

4yum-config-manager的使用:

1yum-config-manager的安装:

A、该命令在最小化安装的系统上是没有的,需要安装yum-utils-1.1.31-34.el7.noarch.rpm这个RPM包,如果是光盘安装,需要另外安装两个依赖包:python-chardet.noarch 0:2.2.1-1.el7_1 python-kitchen.noarch 0:1.1.1-5.el7;也可以通过网络安装或者本地的YUM仓库安装,命令为:yum localinstall yum-utils-1.1.31-34.el7.noarch.rpm

B、如果是yum安装,直接执行# yum install yum-utils -y

   2yum-config-manager的选项使用:

    yum-config-manager –add-repo=“仓库路径” 添加仓库

    yum-config-manager –disable “仓库名"      禁用仓库

    yum-config-manager –enable  “仓库名”     启用仓库

5yum的命令使用:

  1 #yum repolist (显示仓库列表)

   blob.png

  2#yum list (显示仓库的所有程序包)或者yum list all (显示仓库的所有程序包和系统已安装的程序包)

  3 #yum install (程序安装);yum reinstall(程序重新安装)

  4#yum update (程序升级);yum downgrade (程序降级)

  5#yum check-update (检查可升级)

  6#yum remove (卸载程序)

  7#yum info (查看程序的详细信息)

   blob.png

  8#yum provides (查看程序包由哪些程序提供)

   blob.png

  9#yum search (搜索程序包名,属于模糊搜索)

  blob.png

  10#yum replist (查看程序的依赖程序)

  blob.png

  11#yum history (查看yum安装的历史)

      到日志文件查看:

  blob.png

     使用命令yum history查看:

  blob.png

  12#yum history info 6

  blob.png

  13#yum history undo 7  (相当于把历史文件里面的卸载步骤给取消,即为安装。)

  blob.png

  blob.png

 blob.png

   yum的命令行选项:只能单一次安装,不能够同时启动多个安装命令

–nogpgcheck:禁止进行gpgcheck

-y: 自动回答为“yes

-q:静默模式

–disablerepo=repoidglob:临时禁用此处指定的repo

–enablerepo=repoidglob:临时启用此处指定的repo

–noplugins:禁用所有插件

二、本地包和包组的使用:

    1、安装及升级本地程序包:

yum localinstall rpmfile1 [rpmfile2] […]

(install替代)

yum localupdate rpmfile1 [rpmfile2] […]

(update替代)

   2、包组管理的相关命令:

yum groupinstall group1 [group2] […]  安装包组

yum groupupdate group1 [group2] […] 升级包组

yum grouplist [hidden] [groupwildcard] […] 查看包组情况(含安装与未安装)[hidden]为查看隐藏包组

yum groupremove group1 [group2] […]  删除包组

yum groupinfo group1 […]   包组信息页内容查看

三、如何使用本地光盘作为YUM仓库:

1、光盘挂载:

   #mount /dev/cdroom /mnt/cdrom  (手动挂载,机器重启就丢失)

   Centos6autofs自动挂载:/misc/cd  (访问即刻挂载上去)

2、创建本地配置文件:

   [cdrom]

baseurl=file:///mnt/cdrom(此处,建议优先使用这路径:baseurl=file:///misc/cd

gpgcheck=0

3yumrepo配置文件中可用的变量:

$releasever: 当前OS的发行版的主版本号

$arch: 平台,i386,i486,i586,x86_64

$basearch:基础平台;i386

$YUM0-$YUM9:自定义变量

4、创建yum仓库:

createrepo [options] <directory>

 

 

 

程序包编译

一、程序包编译安装:

1Application-VERSION-release.src.rpm–> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装

2)源代码–>预处理–>编译–>汇编–>链接–>执行

源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系

CC++make (项目管理器,configure –>

Makefile.in –> makefile)

c/c++编译器: gcc

java: maven    

3 开发工具:

      编译C源代码:

准备:提供开发工具及开发环境

开发工具:make, gcc

开发环境:开发库,头文件

glibc:标准库

  实现:通过“包组”提供开发组件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

4)安装步骤:(以下三个步骤必须在解压的源码目录下执行)

第一步:configure脚本

选项:指定安装位置、指定启用的特性   –help: 获取其支持使用的选项

选项分类:

安装路径设定:

–prefix=/PATH: 指定默认安装位置,默认为/usr/local/

–sysconfdir=/PATH:配置文件安装位置

System types:支持交叉编译

Optional Features: 可选特性

–disable-FEATURE

–enable-FEATURE[=ARG]

       Optional Packages: 可选包,

–with-PACKAGE[=ARG],依赖包

–without-PACKAGE,禁用依赖关系

    通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile

   autoconf: 生成configure脚本

   automake:生成Makefile.in

  注意:安装前查看INSTALLREADME

第二步:make   根据makefile文件,构建应用程序

 第三步:make install   复制文件到相应路径

5)安装后的配置:

A 二进制程序目录导入至PATH环境变量中;

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

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

B 导入库文件路径

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

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

让系统重新生成缓存:ldconfig[-v]

C 导入头文件

基于链接的方式实现:ln -sv

  D 导入帮助手册

编辑/etc/man.config|man_db.conf文件

添加一个MANPATH

 

编译安装事例:

1、  yum的配置和使用;包括yum repository的创建

blob.png

2、  编译安装apache 2.2源码包,并启动此服务(下面以安装http为例)

安装前的开发工具包组安装:

blob.png

 1)先从本地ftp服务器上下载源码包,如下图。

 blob.png

 (2)使用命令#tar xvf httpd-2.2.29.tar.bz2,如下图:

 blob.png

 (3)解压完成后,进入源码解压目录下:

 blob.png

 (4)执行前,先ls看看/usr/local目录下是否存在同名的目录;执行命令# ./configure –prefix=/usr/local/httpd –sysconfdir=/etc/httpd,指定了安装的目录和配置文件存放目录

 blob.png

 blob.png

 5)生成了Makefile文件,并没有报错,这说明前面的步骤正确,如下图:

 blob.png

 (6)至此,可以开始编译;#make #make install 可以分开执行。在这,就一起执行。

 blob.png

 (7)完美编译安装完成:

 blob.png

 blob.png

 (8)安装后的配置管理部署:

  A、配置环境变量:

 blob.png

 blob.png

  B、库文件的配置:

 blob.png

 blob.png

  Cinclude头文件的配置:

   #cd /usr/include

   #ln -s /usr/local/httpd/include httpd

 blob.png

  Dman帮助文件的配置:

 blob.png

 

 http启动、重启、停止测试:

 blob.png

 

 

 

原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/40189

(1)
Aaron_wangAaron_wang
上一篇 2016-08-26
下一篇 2016-08-26

相关推荐

  • 标准I/O和管道

    程序包含指令和数据,经常需要读入数据和输出数据 打开的文件都有一个fd:file descriptor(文件描述符) 用nano打开一个文件,查看其PID  0,1,2就是所谓的文件描述符。 在Linux里输入输出和错误都由这三个描述符来表示 标准输入(STDIN) -0 默认接受来自键盘的输入 标准输出(STDOUT)-1 默认输出到终端窗口 标…

    Linux干货 2016-08-08
  • DNS基础及使用BIND搭建域名服务器

        本文主线是DNS服务相关概念和服务器搭建,在此之前了解一下域名这个东东很有其必要性,因为DNS服务就是应域名而生的。那么域名是什么哪?     域名     域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,用于在数据传输时标识计算机的电子方位。举…

    Linux干货 2015-06-11
  • 四大开源协议的异同:GPL、LGPL、BSD、Apache

    便于自身理解四大常用开源协议的异同之处。

    Linux干货 2017-10-25
  • 马哥教育网络班第21期+第四周课程作业

    1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod –R 700 /home/tuser1 2. 编辑/etc/group文件,添加组hadoop。 echo &q…

    Linux干货 2016-08-01
  • iptables

    iptables: Firewall:隔离工具;Packets Filter Firewall;工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件; 硬件防火墙:在硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现;  软件防火墙:应用软件处理逻辑运行于通用硬…

    Linux干货 2016-12-05
  • VIM命令 总结

    VIM命令总结

    2017-11-25