软件包管理、自建yum源与LAMP架构的自动编译安装

  • 软件包管理

    CentOS采用RedHat开发的rpm包管理器管理应用程序包。rpm包是由二进制可执行程序、库、配置文件、帮助文件等组成,支持安装、卸载、查询、升级、降级、校验等操作。

    从组成结构上,rpm包由文件清单、安装和卸载时运行的脚本构成。

    包管理器有其自带的公共数据库。其数据包括:程序包的名称、版本、依赖关系,功能说明,及各个文件的路径及校验码信息等。存放于/var/lib/rpm路径下,由多个库组成。

  • 包管理命令RPM

    命令范式: rpm [options] [package_file]

    安装: rpm {-i|–install} [install-options]  package_file

    通用选项:

    -v 详细信息

    -vv 更详细输出(非常详细,执行了哪些脚本都有)

     [install-options]:

    -h hash marks输出进度条; 每个#表示2%的进度.

    –test 测试安装,并不安装.可以用于检测冲突, 依赖关系等.

    –nodeps 忽略依赖关系. 不建议.

    –replacepkgs 重装.可覆盖配置文件重装包, 用于反悔配置文件改错的情况.

   注意:rpm包会自带脚本(制作包用),共四类(–noscripts跳过):

     1)preinstall 安装前脚本, %pre来标记, –nopre跳过

     2)postinstall 安装后脚本, %post来标记 –nopost跳过

     3)preunistall 卸载过程真正开始执行之前运行的脚本, %preun –nopreun

     4)postuninstall卸载过程后运行脚本, %postun –nopostun

      –nosignature 不做签名检查, 不做来源合法性

      –nodigest 不检查包完整信息

  升级:

    rpm {-U|–install} [install-options]  package_file 可理解为安装的ixx替换为Uxx.

    rpm {-F|–install} [install-options]  package_file -Fvh

     -U 升级或安装

     -F 只升级.无老包不执行安装.

    –oldpackage 降级操作

    –force 强制升级.忽略依赖关系等产生的问题.

  注意:

    1) 不要对内核做升级操作,因为可能需要重启, 还会带来软件版本不兼容问题;而Linux支持多内核版本共存, 故可直接安装新版本内核

    2) 如果原包的配置文件安装后改过, 升级时, 新版本的同配置文件不会覆盖原有的,而是把新的配置文件重命名后给出.一般是filename.rpmnew.

  卸载:

rpm {-e | –erase} [–allmatches] [–nodeps] [–test] package_name

 –allmatches 卸载所有匹配指定名称的程序包各版本.

 –nodeps 忽略依赖关系

 –test 测试模式

  查询:

rpm {-q| –query} [select-options] [query-options]

   [select-options]

    package_name 查询指定的程序包是否已经安装, 及版本.

    -a, –all 查询所有已经安装的包

    -f file 查询指定的文件由哪个程序安装生成的. 如rpm -qf /etc/fstab

    -p, –package packagefile 用于实现对未安装的程序包执行查询操作

    -whatprovides capability 查询指定的capaility(命令,功能?)由哪个程序包提供

    -whatrequires capability 查询指定的capaility被哪个包所依赖

   [query-options]

    –changelog 查询rpm包的changelog(非源码包的).

    -l,–list 程序安装生成的所有文件列表.

    -i,–info 程序包相关的信息, 版本号, 大小,所述包组等.

    -c, –coufigfiles查询程序提供的配置文件 如rpm -qc xxx 可以看到所有配置文件

    -d,–docfiles 查询程序包提供的文档

    –provides 列出程序包提供的所有CAPABILITY

    -R, –requires 查询程序包的依赖关系

    –scripts 查看程序包自带的脚本片段

   常用用法:

    -qi package, -qf file, -qc package, -ql package, -qd package

    -qpi -qpl -qpf….

  校验:

    rpm {-V|–verify} [select-options] [verify-options]

     rpm -V 文件校验可查看包安装后, 哪些文件改过.如rpm -V dnsmasq可看到dnsmasq.conf改动了, 有用! 其提示信息:

     S 文件大小改变

     M 权限发生改变

     5digest校验码改变, 文件内容改变

     U 属主改变

     G 属组改变

     T 时间戳改变

     P capabilities改变

  包来源合法性验证和完整性验证:

来源合法性验证: 获得公钥其实很难.这要通过CA认证.记得导入光盘根目录下的类似:

    RPM-GPG-KEY-CentOS-Testing-7的Key就可用于验证数据包, 不会提示NOKEY了:

     rpm –import /media/cdrom/ RPM-GPG-KEY-CentOS-Testing-7

    这样可以在安装时自动验证,手动验证: rpm -K xxx.rpm.

  数据库重建:

    rpm管理器数据库路径: /var/lib/rpm/

    查询操作: 通过此处的数据库进行

    rpm {–initdb | –rebuilddb} [–dbpath DIRECTORY] [–root DIRECTORY]

     –initdb: 初始化数据库, 当前无任何数据库可初始化创建一个新的; 当前有时不执行任何操作.

     –rebuilddb: 重新构建, 通过读取当前系统上所有已经安装过的程序包重新创建;

  • 自建YUM源

    YUM程序支持多种渠道获取软件包。如本地光盘,硬盘,HTTP方式,FTP方式等,非常灵活。且支持多仓库共存,在安装软件时,会下载各仓库中版本最新的软件。以下是三种自建YUM源的方式范例:

    本地光盘方式

   1)首先,挂载光盘/光盘镜像到本地某目录如/media:

   mount -r /dev/cdrom /media

   2)创建repo配置文件

    ~]#cd /etc/yum.repos.d/

   ~]#touch Local.repo

     添加如下行:

     [base]

     name=CentOS 7 Release 7.1

     baseurl=file:///media/cdrom

     enabled=1

     gpgcheck=0       

   3)之后,就可以像网络YUM源一样使用本地光盘源了。

  HTTP方式

   1)首先,要有从上游YUM源或光盘等渠道获得的,完整的包目录,将其复制到服务器本地,如/opt/yum

   2)然后,建立WEB服务器,如httpd,并配置/etc/httpd/conf/httpd.conf

    修改DocumentRoot为 "/opt/yum"

    修改ServerName为0.0.0.0    #因测试无域名,故只用IP,服务器监听本地所有IP的80端口

   3)创建YUM仓库

    ~]#cd /opt/yum

     ~]#createrepo ./

    命令完成后,仓库目录即可生成,新建了几个bz2文件和repo.xml文件。

   4)添加仓库

    修改Local.repo文件,添加如下行:

     [base]

     name=CentOS 7 Release 7.1

     baseurl=http://192.168.100.100/yum

     enabled=1

     gpgcheck=0  

  FTP方式

   1)首先,获得完整的包目录及其文件,复制到服务器本地,同上如/opt/yum

   2)新建FTP服务器,并修改配置文件,添加虚拟目录

   3)创建YUM仓库,细节同上

   4)添加仓库

    修改Local.repo文件,添加如下行:

     [base]

     name=CentOS 7 Release 7.1

     baseurl=ftp://192.168.100.100/yum

     enabled=1

     gpgcheck=0  

  • LAMP网站架构的编译安装

 yum安装必要工具

1、安装编译工具gcc gcc-c++make automake autoconf kernel-devel

2、安装PHP所需依赖,如libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel等

yum -y install gcc gcc-c++ make cmake automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2-devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel

到以下网站下载所需源码

apache:http://httpd.apache.org/

mysql:http://mysql.com/downloads/mysql/

php:http://php.net/downloads.php

phpmyadmin:http://www.phpmyadmin.net/home_page/downloads.php

  安装 apache-2.4.9

    解压源码

    tar zxvf httpd-2.4.9.tar.gz

    cd /lamp/httpd-2.4.9

    编译并安装

    ./configure –prefix=/usr/local/apache –enable-so –with-included-apr –enable-deflate=shared –enable-expires=shared –enable-headers=shared –enable-rewrite=shared –enable-static-support

    make

    make install

    设置启动脚本及服务

    cp build/rpm/httpd.init /etc/init.d/httpd

    chmod 755 /etc/init.d/httpd

    chkconfig –add httpd

    chkconfig httpd on

    

 安装 mysql-5.6.12

    cd /lamp/mysql-5.6.12

    

   编译并安装

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data

    

    make

    make install

   设置启动脚本及服务cd /usr/local/mysql

    cp support-files/mysql.server /etc/init.d/mysqld

    chmod 755 /etc/init.d/mysqld

    chmod 755 scripts/mysql_install_db

    chkconfig –add mysqld

    chkconfig –level 345 mysqld on

   初始化数据库

    scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/var/mysql/data

    

  安装 php-5.5.0

    cd /lamp/php-5.5.0

    ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc –with-config-file-scan-dir=/usr/local/php/etc/conf.d –with-mysql=/usr/local/mysql –with-bz2 –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-jpeg-dir –with-mcrypt –with-mhash –with-mysql –with-mysqli –with-openssl –with-pdo-mysql –with-pear –with-png-dir –with-zlib –enable-bcmath –enable-calendar –enable-exif –enable-fpm –with-fpm-user=www –with-fpm-group=www –enable-ftp –enable-gd-native-ttf –enable-mbstring –enable-soap –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-zip

   配置文件修正:

    rm -rf /etc/php.ini

    ln -s /usr/local/php/etc/php.ini /etc/php.ini

   设置php-fpm服务

    cp /lamp/php-5.5.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

    chmod 755 /etc/init.d/php-fpm

    chkconfig –add php-fpm

    chkconfig php-fpm on

    service php-fpm start

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

(0)
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • 第六周课程作业

    1、复制/etc/rc.d/init.d/functions文件至/tmp目录,将/tmp/functions文件中 的以至少一个空白字符开头的行的行首加# ~]# cp /etc/rc.d/init.d/functions /tmp~]# vim /tmp/functions %s@^[[:space:]]\+@#@g 2、复制/boot/gru…

    Linux干货 2016-12-12
  • 计算机组成及Linux入门知识

    计算机的基本组成: 存储器:     实现记忆功能的部件用来存放计算程序及参与运算的各种数据 运算器:     负责数据的算术运算和逻辑运算即数据的加工处理 控制器:     负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问 输入设备:    实现计算程序和原始数据的输入 输出设备:    实现计算结果输出 组成的联系: 图一 图二 计算…

    Linux干货 2016-09-16
  • Linux Basics–part4

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 ~]# cp -rf /etc/skel/ /home/tuser1 && chmod -R go=— /home/tuser1 [root@ronny1 ~]# ll -d /home/tuser…

    Linux干货 2017-08-07
  • 文本处理工具之grep

                    文本处理工具之grep 一、grep的简介 1、grep是一个文本过滤器的工具,它根据用户指定的模式(pattern)对目标文本进行匹配检查,并将匹配的行打印到标准输出或输出重定向。 2、模式:由文本字符或正则表达式组成 3、正则表达式分…

    2017-05-06
  • sed

    sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。 Sed主要用来自动…

    Linux干货 2017-04-26
  • 优云携手网易云 助力企业“互联网+”转型

    12月16日,网易旗下“网易云”首届“网易云聚,共创未来”合作伙伴大会在网易杭州园区举行,优云(uyun.cn)成为首批授牌20家企业之一,并作为核心合作伙伴代表现场签署了合作伙伴协议。 右二为优云软件运营经理 柴勇 现场签署合作伙伴协议 会上,网易杭州研究院执行院长汪源介绍了网易云的战略生态全境,提出“产品体系+培训体系+服务体系”的网易云三大核心竞争力,…

    Linux资讯 2017-03-15