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.rpm

i install 安装包(可接网络地址)

v verbose 安装详情

h hash sign #表示的安装进度 2%一个#号

--nodeps 忽略包之间的依赖关系

ii) 移除rpm -e mysql

e erase 移除当前包

--nodeps 移除包忽略包之间的依赖关系

iii) 查询

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) 校验

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

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

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

确保我们所使用的包都是没有病毒后门程序的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 KEY

cost=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.gz

bye

# 1 解压缩nginxtar -xf nginx-1.4.2.tar.gz

rm -rf nginx-1.4.2.tar.gz

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

# 3 完成pcre-delel后,指定nginx编译bin目录及conf文件目录./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf

# 4 编译并安装nginxmake && make install

# 5 启动nginx服务/usr/local/nginx/sbin/nginx

# 6 查看端口状态,此时应该看到80端口的出现netstat -tnl | grep ":80"

# 7 命令测试及查看文件已证安装状态wget http://localhost

stat ./index.html

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

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

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

理一下这些问题.

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

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

使得用户在任意目录都可以直接敲出nginx命令vim /etc/profile.d/apache.sh

PATH=/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 ACCEPT

service 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 startstart() {

$SBINPATH -c $CONFIGFILE || echo -n "nginx already running"

}

# 03-f 关闭nginx命令  nginx stopstop() {

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 1

;;

esac

exit 0

# 完整代码 startup.sh#!/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编辑器 , 为当前脚本赋予执行权限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运行软件代码,Linux软件安装-详细源码安装过程相关推荐

  1. Linux下的软件安装方式+源码安装软件cmatrix代码雨

    Linux下的软件安装方式 1 rpm工具安装 2 yum工具安装 3 源码编译安装 软件包类型 1 二进制软件包(=rpm软件包) 无需编译,直接安装 根据计算机CPU架构类型和操作系统选择合适的软 ...

  2. 软件包的安装(源码安装)

    为什么要进行源码安装软件包呢? 由于我们系统自带都是一些已经编译好的rpm安装包,这些rpm包的更新的速度大约是每三年更新一次,对于那些具有新功能或者具有更多功能的的软件包,官方只提供给我们那些以c语 ...

  3. Linux软件安装管理---源码安装

    在Linux平台下,软件包的类型可以划分为两类:源码包.二进制包. 源码包: 即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包). 二进制包: 如 Red Hat ...

  4. Linux安装MySQL(源码安装)

    文章目录 一.下载 二.最小化安装配置 三.MySQL的安装的几种方式 1.MySQL安装方式 2. 三种安装方式的区别 四.MySQL的GLIBC版本安装 1. 上传软件包解压 2. 软件安装 3. ...

  5. linux cmake编译安装mysql_Linux源码安装MySQL 5.6.12 (Cmake编译)

    Linux源码安装MySQL 5.6.12 (Cmake编译) 1.安装make编译器(默认系统自带) 下载地址: tar zxvf make-3.82.tar.gz cd make-3.82 ./c ...

  6. (一)Graphvite源码编译安装——faiss 源码安装

    本文只介绍graphvite依赖库faiss 的安装,graphvite的详细安装过程请参考(二)Graphvite 安装过程整理 ---------------------------分割线---- ...

  7. 安装Aira2的三种方法(包括一键安装命令,epel源安装,源码安装)

    更多内容地址: http://alvincr.com/2020/05/vps%e4%bd%bf%e7%94%a8airang%e7%a6%bb%e7%ba%bf%e7%bc%93%e5%ad%98%e ...

  8. centos编译安装php7_centos7源码安装php7.2

    centos7源码安装方式安装搭建php7.2环境. 一.php7.2源码包官网下载wget -c http://cn2.php.net/distributions/php-7.2.4.tar.gz ...

  9. mysql 安装_源码安装mysql

    源码安装mysql 什么是源码 #! /bin/bash echo 'hello'高级语言 ➡️机器码01001001 源码安装mysql逻辑 1.源码包 ⬇ 2.预编译 1.检查当前的操作系统. 2 ...

最新文章

  1. error: unknown host service 的详细解决办法
  2. VS2010 定位文件在solution中的位置
  3. 高端技巧:怎样使用#define定义变量
  4. docker-compose常用命令整理及使用示例
  5. Collection(单列集合)
  6. maven添加tomcat插件
  7. 【PHP 面试知识梳理】
  8. tensorflow精进之路(十七)——python3网络爬虫(上)
  9. placeholder在某些浏览器下不垂直居中问题
  10. Python selenium 滚动页面以及滚动至元素可见(转载)
  11. Excel导入Sql Server出现Null的解决方法
  12. java语言有什么特点?
  13. matlab bar 填充花纹,[转载]Matlab绘制柱状图采用不同图案填充
  14. Syzmlw蜗居在线播放
  15. Java获取本机外网ip地址的方法
  16. 360修复高危漏洞可以修复吗_怎么关闭360高危漏洞修复提醒?
  17. 计算机桌面图标有小锁如何去掉,去掉电脑桌面图标小黄锁的两种方法
  18. .then()方法的意思和用法
  19. 【SQL】SQL语句积累
  20. QT开发的pdf阅读器资料

热门文章

  1. 跟上 Java 8 – 了解 lambda
  2. linux开发板ftp,用ftp从linux上下载文件到开发板的方法
  3. vscode配置备忘录
  4. A/D转换器(ADC)
  5. uniapp上传图片
  6. python返回列表中最大和第二大的元素
  7. 工业智能网关BL110应用之60:如何实现智能楼宇控制BACnet 接入阿里云平台
  8. 知识点滴 - 芯片主要封装类型介绍
  9. 咸鱼ZTMS实例—三轴加速传感器
  10. 腾讯搜搜高管吴军离职的传闻与真相