合适初学者CentOS下的一些案例

浏览次数:2211 关键词 ( 初学者  合适  案例  CentOS  )

1.简介

       软件的安装是linux学习时的重中之重,*nux上重要思维哲

学组合若干小功能进而成为一个可用可维护的系统平台.那么在

操作系统构建完成之时,除非内核等支持系统必需软件之外,可

拓展可维护的任务都是要交与管理员完成,这里面包括了基本的

软件安装.那今天我们就总结归纳一下在linux上软件安装的方式

方法.

 

2.分类

   a) 包管理工具

   rpm(redhet package manager),deb 与 yum 前端管理

   工具

   b) 源码形式

   提供src源码,常见 tar.gz,tar.xz,tar.zip 通常需要在

   机器上先编译之后才能去安装

   c) 二进制格式

   已经编译成为二进制格式,可以在没有编译环境下的机器上运行.

   当然这种形式随着包管理工具的成熟被逐渐消亡,并不在本文讨

   论的范围内.

 

3.使用

a) 包管理工具

   rpm包含类redhat系完整的一套关于软件的安装维护的可行性

   方案,所有rpm包遵循事实标准,这样避免了我们在使用时的成本

   .rpm包的命名也有一定规则,例如 mysql-5.1.66-2.el6_3.

   x86_64.rpm产品名称-产品版本号-rpm包版本号-适合操作系

   统-计算架构.rpm

       i) 安装/升级/重装

1 2 3 4 5 rpm -i/U/Fvh mysql-5.1.66-2.el6_3.x86_64.rpm i install 安装包(可接网络地址) v verbose 安装详情 h hash sign #表示的安装进度 2%一个#号 --nodeps 忽略包之间的依赖关系

       ii) 移除

1 2 3 rpm -e mysql e erase 移除当前包 --nodeps 移除包忽略包之间的依赖关系

       iii) 查询

 

1 2 3 4 5 6 7 8 9 rpm -q mysql q query 查询包是否以安装 qa query all 查询所有安装的包 qd query document 查询安装过后的文档信息 如man信息 qi query information 安装后查询包信息 包括包名,版本 ,大小组别信息,url,license,url,描述信息等等 qc query configure  安装后配置文件所在位置 ql query list 安装所产生所有文件列表 # p 参数可以与之前参数配合 qpa  qpi等等

       iv) 校验

       我们维护的绝大数机器都是生产工具,不容懈怠.所以对于软件

       的管理不容出现纰漏,那么对于互联网内容我们只能怀着批判

       的情怀来进行使用.这里就需要做包完整校验与身份校验,用来

       确保我们所使用的包都是没有病毒后门程序的

1 2 rpm --import key  导入包制作者公钥 rpm -K mysql-5.1.66-2.el6_3.x86_64.rpm

 

   b) yum前端管理工具

       这是一个将前面的所有rpm包汇总成库在客户端查找库并进行软

       件管理的工具,将易用性进行大大提高,方便用户以多种形式进行

       rpm包的管理操作.常见的方式http,ftp,nfs,file等等.当然

       前提是配置好 /etc/yum.repos.d/*.repo 的参数.

       *.repo参数一览

1 2 3 4 5 6 7 [media]    repoid唯一 name=media name名称自定 baseurl=file:///media/协议路径 enabled=0 是否启用该库 gpgcheck=1    是否进行身份审查 gpgkey=file:///media/RPM-GPG-KEY-CentOS-6   KEY cost=1000                      使用库代价(多库)

       # yum 常用命令一览

1 2 3 4 5 6 7 8 yum install mysql  安装包 yum erase mysql  卸载包 yum update mysql  可升级一个或多个包 yum list mysql  查看库上所有包 yum repolist    查看库上包数量 yum grouplist   组别信息(分类管理包) yum groupinstall  安装组包 yum groupremove  删除组包

 

   c) 源码安装

       # 0 首先去内网ftp服务器中下载nginx的源码包,当然你也可以

       去 nginx官网这里download最新的nginx源码

1 2 3 lftp ftp://172.16.0.1/pub/Sources/sources/nginx/ get nginx-1.4.2.tar.gz bye

       # 1 解压缩nginx

1 2 tar -xf nginx-1.4.2.tar.gz rm -rf nginx-1.4.2.tar.gz

       # 2 在编译nginx之前,先安装nginx的依赖包pcre-devel

1 yum -y install pcre-devel

       # 3 完成pcre-delel后,指定nginx编译bin目录及conf文件目录

1 ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf

       # 4 编译并安装nginx

1 make && make install

       # 5 启动nginx服务

1 /usr/local/nginx/sbin/nginx

       # 6 查看端口状态,此时应该看到80端口的出现

1 netstat -tnl | grep ":80"

       # 7 命令测试及查看文件已证安装状态

1 2 wget http://localhost stat ./index.html

       # 00 到此为止nginx的安装告一段落,我们可以再处理一些其他事情,

       在 # 5 步骤启动nginx服务的时候,大家可能会发现启动目录过长,

       并且无法去停止nginx,这些问题继续困扰着我们.我们接下来继续处

       理一下这些问题.

 

       # 01 目录过长解决反感,其实我们希望使用最短命令实现效果,win32

       与linux目标一致,都会有环境变量,这里便是在修改nginx的环境变量,

       使得用户在任意目录都可以直接敲出nginx命令

1 2 3 vim /etc/profile.d/apache.sh PATH=/usr/local/nginx/sbin:$PATH .source /etc/profile.d/apache.sh  # 重新读取

       # 02 搭建好了web服务器,我们希望其他人也能访问这里,于是我们

       需要在linux的防火墙上给它留个出口(ps: 大家可以想象互联网就是

       一个大版图,每一台计算机都是一座城池,某天其他城邦的使者来访

       问我,那我必须给它留一个入口)

1 2 3 vim /etc/sysconfig/iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables restart

       # 03 开机启动(大家可能会发现刚才配置好的nginx,在机器重启了

       之后不能再用了,检查发现重启后80端口的监听已失效 # 6 操作,

       这些我们需要自己动手去完成一个简单的脚本,使其能够开机启动,

       当然一般情况下nginx会自带这个脚本,我们来去熟悉一下过程 :)

1 vim /etc/init.d/nginx

       # 03-a 重中之重  linux与win32一样也会有服务这个说法

       # 这里的意思是告诉机器,当前这是一个服务脚本,将来需要添加到

       # 服务列表时起效果

       # chkconfig: 2345 55 25

       # description: nginx service

1 2 # chkconfig: 2345 55 25 # description: nginx service

       # 03-b 首先定义了一些基本的变量

       # 包括 路径

1 PATH=$PATH

       # 软件名

1 NAME=nginx

       # sbin路径

1 SBINPATH=/usr/local/nginx/sbin/$NAME

       # 配置文件路径

1 CONFIGFILE=/usr/local/nginx/$NAME.conf

       # pid文件(linux守护进程文件,简言之线程编号,此文件存在证明nginx

       # 启动了,如果它不在了,nginx可能也不能访问)

1 PIDFILE=/usr/local/nginx/logs/$NAME.pid

       # 03-d 判断sbin文件与匹配文件是否存在,否则提示

1 2 [ -e "$SBINPATH" ] || echo -n "$SBINPATH No such file or directory" [ -e "$CONFIGFILE" ] || exit -n "$CONFIGFILE No such file or directory"

       # 03-e 启动nginx命令  nginx start

1 2 3 start() {     $SBINPATH -c $CONFIGFILE || echo -n "nginx already running" }

       # 03-f 关闭nginx命令  nginx stop

1 2 3 stop() {     kill -INT `cat $PIDFILE` || echo -n "nginx not running" }

       # 03-g 判断用户输入执行不同的命令

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 case "$1" in     start )         echo -n "$NAME Starting..."         start         ;;     stop )         echo -n "$NAME Stopping..."         stop         ;;     restart )         echo -n "$NAME Restarting..."         stop         start         ;;     * )         echo "Usage: /etc/init.d/$NAME  {start | stop | restart }" &> /dev/null         exit 1         ;; esac exit 0

 

       # 完整代码 startup.sh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/bin/bash # PATH=$PATH NAME=nginx SBINPATH=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid [ -e "$SBINPATH" ] || echo -n "$SBINPATH No such file or directory" [ -e "$CONFIGFILE" ] || exit -n "$CONFIGFILE No such file or directory" start() {     $SBINPATH -c $CONFIGFILE || echo -n "nginx already running" } stop() {     kill -INT `cat $PIDFILE` || echo -n "nginx not running" } case "$1" in     start )         echo -n "$NAME Starting..."         start         ;;     stop )         echo -n "$NAME Stopping..."         stop         ;;     restart )         echo -n "$NAME Restarting..."         stop         start         ;;     * )         echo "Usage: /etc/init.d/$NAME  {start | stop | restart }" &> /dev/null             exit 1         ;; esac exit 0

 

       # 03-h 退出vim编辑器 , 为当前脚本赋予执行权限

1 chmod +x /etc/init.d/nginx

       # 03-i 在服务列表中添加nginx服务,如果刚才 #03-a 的重中之重

       你没有听取意见的话这里是没有办法完成的 :)

1 chkconfig --add nginx

       # 03-j 讲nginx的服务添加的开机选项的345级别

       # 原谅我在最后激动的时刻再啰嗦一下,善哉善哉 :)

       # chkconfig --level 一共分为 0-6 7个级别

       # 这个过程与linux的启动非常有关系,可以参考

       # http://apprectice.blog.51cto.com/2214645/1362564

       # 345 基本可以对应其上的加载过程

1 chkconfig --level 345 nginx on

       # 03-k 这时候你可以随心所欲的 nginx { start | stop | restart }

       # 停止也不会有问题 :)

1 nginx start

   d) bin文件安装

       bin文件的安装非常简单,因为它是shell与rpm的结合体,一般情况

       基本不用额外配置,直接执行bin就可以了.

 

本文出自 “Apprentice” 博客,请务必保留此出处http://apprentice.blog.51cto.com/2214645/1362887