Linux软件安装-详细源码安装过程推荐

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) 安装/升级/重装

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

ii) 移除

rpm -e mysqle erase 移除当前包--nodeps 移除包忽略包之间的依赖关系

iii) 查询

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

iv) 校验

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

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

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

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

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参数一览

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

# yum 常用命令一览

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源码

lftp ftp://172.16.0.1/pub/Sources/sources/nginx/get nginx-1.4.2.tar.gzbye

# 1 解压缩nginx

tar -xf nginx-1.4.2.tar.gzrm -rf nginx-1.4.2.tar.gz

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

yum -y install pcre-devel

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

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

# 4 编译并安装nginx

make make install

# 5 启动nginx服务

/usr/local/nginx/sbin/nginx

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

netstat -tnl | grep ":80"

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

wget http://localhoststat ./index.html

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

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

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

理一下这些问题.

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

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

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

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

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

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

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

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

vim /etc/sysconfig/iptables-I INPUT -p tcp --dport 80 -j ACCEPTservice iptables restart

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

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

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

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

vim /etc/init.d/nginx

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

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

# 服务列表时起效果

# chkconfig: 2345 55 25

# description: nginx service

# chkconfig: 2345 55 25# description: nginx service

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

# 包括 路径

PATH=$PATH

# 软件名

NAME=nginx

# sbin路径

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

# 配置文件路径

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

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

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

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

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

[ -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

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

# 03-f 关闭nginx命令 nginx stop

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

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

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 1exit 0

# 完整代码 startup.sh

#!/bin/bashPATH=$PATHNAME=nginxSBINPATH=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/$NAME.confPIDFILE=/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 1exit 0

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

chmod +x /etc/init.d/nginx

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

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

chkconfig --add nginx

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

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

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

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

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

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

chkconfig --level 345 nginx on

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

# 停止也不会有问题 🙂

nginx start

d) bin文件安装

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

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

然后拍一些美得想哭的照片,留给老年的自己。

Linux软件安装-详细源码安装过程推荐

相关文章:

你感兴趣的文章:

标签云: