Linux系统程序包的管理-Yum及编译安装

      Yum 是通过分析RPM的标头数据后,根据各软件的依赖关系制作出有依赖关系时的的解决方案,然后可以自动处理软件的依赖性问题,以解决软件安装或移除与升级的问题。

      由于发行版必须要先释放软件,然后将软件放置于yum服务器上面,以提供用户端用来安装与升级。因此,我们想要使用yum的功能时,必须要先找到适合的yum server才行。事实上,CentOS在释放软件的时候已经制作好了yum源,只要能够连上Internet,就可以使用yum。在这里,向大家介绍一下yum本地仓库的配置。

      制作本地yum源有两种方式:第一种直接使用光盘镜像,不过此方法只适用于本机;第二种创建本地yum仓库,使用http或ftp等方式向外部yum repository。

第一种:如何使用光盘作为yum repository

      1、先将光盘挂载到指定位置,例如:创建/media/cdrom这个目录用来作为挂载点,mount /dev/sr0 /media/cdrom。在这里要提一下/misc/cd这个特殊的目录,cd到这个目录下,光盘会自动挂载的该目录下。在CentOS6中已经默认安装此功能,而7中我们需要安装autofs:

Linux系统程序包的管理-Yum及编译安装 #安装autofs

Linux系统程序包的管理-Yum及编译安装 #启用autofs服务

Linux系统程序包的管理-Yum及编译安装 #将其设置为开机自启

通过df我们可以看到光盘的挂载情况

 Linux系统程序包的管理-Yum及编译安装

      2、在/etc/yum.repos.d/目录下创建.repo为后缀名的配置文件,基本内容如下所示(因为CentOS在释放软件的时候已经制作好了yum源,在这里我们可以将/etc/yum.repos.d/下的所有文件进行备份,然后将其删除):

Linux系统程序包的管理-Yum及编译安装

第二种:创建本地yum仓库

      如果你作为一个企业的管理人员,为了方便公司内部网络中的服务器安装软件,同时也节省网络带宽,此时可以在公司内部创建一个yum仓库。此处以CentOS6为例(CentOS7步骤与6基本相同):

ftp服务:

  1、首先安装并启用vsftpd服务

       yum -y install vsftpd 安装vsftpd

       service vsftpd start 启用vsftpd服务 (在7中 用 systemctl start vsftpd)

       chkconfig vsftpd start 将其添加至开机启动项(在7中用systemctl enable vsftpd)

       iptables -F  清空防火墙规则

       service iptables stop (在7中用systemctl  stop  iptables)

       chkconfig iptables off 不将防火墙开机自启(在7中用systemctl disable firewalld.service)

  2、打开ftp服务器的目录:cd  /var/ftp/pub/

  3、创建一个app目录用来存放rpm包:mkdir app

  4、安装createrepo工具:yum install createrepo

  5、复制rpm包到 app目录下:cp /misc/cd/Packages  /var/ftp/pub/app/

  6、创建rpm元数据存储库:createrepo  /var/ftp/pub/app/

  7、此时访问ftp://你的CentOS6的地址就可以了

 Linux系统程序包的管理-Yum及编译安装

http服务:

Linux系统程序包的管理-Yum及编译安装

因为httpd服务安装好会有一个欢迎界面,要不显示此页面可注释/etc/httpd/conf.d/welcome.conf 里的所有行

在这里要提一下,rpm包的存放位置在/var/www/html

以ftp服务为例创建yum库:

Linux系统程序包的管理-Yum及编译安装

 注意,ftp地址要到存在repodata的目录

yum命令的使用:

       yum [options] [command] [package…]

              repolist  [all|enable|disabled] 显示仓库列表

              list [available|installed|updates]
显示程序包

              install package1 [package2]
[…] 安装程序包

              reinstall package 重新安装

              update package  升级安装

              downgrade package 降级安装

              check-update 检查可用升级

              remove | erase package 卸载程序包

              info package 查看程序包的信息

              provides | whatprovides  feature1 … 查看指定的特性(可以是某文件)是由哪个包提供的

              clean all 清理本地缓存

       查看yum的历史:

              history [info|list|packages-list|packages-info]

       撤销对应的第#个历史中命令

              history undo #

       查看对应的第#个历史的信息

              history info #

       包组的管理:

              groupinstall group1(包组的名字中存在空格,要用” ”,在这里不区分大小写)    

              groupremove group1 卸载包组

grouplist  group1显示包组的列表

yum的命令行选项:

       –nogpgcheck:不进行gpg 检查

       -y:自动回答“yes”

       -q:静默模式

yum有一些内置变量,用于保存当前平台的相关信息:

       $releasever:当前的CentOS的版本

       $basearch:基础平台 例如i386(32位)、x86_64

如可在yum的配置文件中适当使用:

       例如:定义baseurl路径时 baseurl= http://172.18.0.1/fedora-epel/$releasever /$basearch /

                   其实际路径为http://172.18.0.1/fedora-epel/6/x86_64/

源代码编译安装程序

       源码安装首先依赖于环境的支持,即编译开发工具、以及各个被依赖到的程序包的开发组,另外还需要定制的编译参数来进行编译安装

       1、编译开发工具(包组)有:

              Development tools

              Server Platform Development

              Desktop Platform Development

              Debug Tools

       2、被依赖的程序包的开发组件:

              1)、编译安装被依赖的程序

              2)、安装相关程序的名称中包含devel的子包

       源代码程序中会将程序分隔保存在多个文件中,文件间或许存在依赖关系,因此,编译时可能需要按照特定次序进行编译;此时,一般会使用项目管理工具(通常也会称为构建工具GNU make)对其进行管理;构建工具会调用合适的编译器,并根据配置文件(Makefile)中定义的次序对源代码文件进行编译。需要注意的是:

       1、每个项目的程序员开发完成某版本后,会使用autoconf为程序代码生成一个脚本文件:configuer;其功能:此脚本会收集当前系统上的开发环境中所依赖的各组件的版本、特性等,并检查所依赖的环境是否能满足,最后会根据Makefile.in文件生成一个makefile文件;

       2、每个项目的开发员开发完成某个版本后,会使用automake为程序代码生成一个makefile模板文件,即Makefile.in

编译安装过程如下:

       1、运行configure脚本;

              Configure脚本的运用:

                     –help:查看帮助信息;

                     –prefix=/path/:指定默认安装路径

                     –sysconfdir=/path/ :指定配置文件的安装路径

                     –with/without-CAPABILITY : 依赖/不依赖的程序包

                     –enable/disable-FEATURE : 启用/禁用某个特性

 运行过程中会需要手动安装依赖包,将提示缺少的包后加上-devel 手动安装(yum)即可

       2、运行make命令,完成项目构建;

       3、运行make install命令,完成安装。

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

(0)
Immortals、zcyImmortals、zcy
上一篇 2017-05-02 21:11
下一篇 2017-05-02 22:13

相关推荐

  • 磁盘配额的限制

    用一个块新的分区当做硬盘进行磁盘的配额限制实验 堆一块新的硬盘进行三步骤 分区,格式化,挂载 以/dev/sdb为例  (1) 分区: fdisk /dev/sdb sdb 8:16 0 200G 0 disk └─sdb1 8:17 0 10G 0 part (2) 格式化: mkfs.ext4 /dev/sdb1 /dev/sdb1: UUID…

    Linux干货 2017-04-30
  • lvs集群搭建

    Linux Cluster: Cluster:计算机集合,为解决某个特定问题组合起来形成的单个系统; Linux Cluster类型:LB:Load Balancing,负载均衡;HA:High Availiablity,高可用;A=MTBF/(MTBF+MTTR)(0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%…

    2017-05-09
  • Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小…

    Linux干货 2016-08-15
  • DNS相关配置

    DNS基础概念: DNS全称为Domain Name System。它作为将域名和IP地址相互映射的得一个分布式数据库,能够使人更方便的访问互联网 DNS使用TCP和UDP得53号端口 BIND是DNS得实现方式之一 named是bind程序得运行的进程名 named进程的主要运行者是named用户,为了安全起见,它的程序也应该以named用户运行 配置正向…

    Linux干货 2017-05-30
  • GRUB启动故障排除和内核编译

    如何进入光盘应急系统(以下修复操作仅适用于GRUB legacy, 不适用于GRUB2): 步骤一:给主机挂上安装光盘, 或者有相应启动镜像的硬盘分区(可移动的分区) 步骤二:开机时选择CDROM先启动 步骤三:进入光盘启动界面选择应急救援模式 步骤四: 不选择设置网络接口, 直接读取磁盘分区并以读写方式挂载 步骤五: 选择shell进入bash中对磁盘进行…

    Linux干货 2016-09-12
  • 用户,管理,权限

    主要是介绍一些 关于创建用户 ,更改用户信息及密码 ,还有权限管理等等。可能介绍的不全还请大佬们多多关照新人!

    Linux干货 2017-11-24