源码编译安装nginx和python
2017-12-03 16:18
363 查看
本文所有实验均在CentOS6.8环境下验证成功
1. 进入库配置文件修改baseurl为有效URL(vi /etc/yum.repo.d/xxx.repo)
2. 进入/etc/hosts写入有效DNS服务器,如电信nameserver 114.114.114.114.
进入vi /usr/bin/yum修改编译器(第一行)为#!/usr/bin/python2.6
源代码 (编译器) 链接 目标代码
1. 根据用户需要修改软件;
2. 二次开发;
gcc:C编译工具;
automake:自动编译工具;
pcre-devel:正则表达式的支持,必装;
openssl-devel:支持ssl加密
zlib-devel: zlib库对响应的数据压缩;
-devel一般表示 表示源码包
绝大多数来自“源头”的源代码都是封装成所谓的tarball格式,其扩展名是.tar.gz 或 .tgz
为何是tarball?
我们知道Open Source软件包括源代码、说明文件、编译支持文件、配置文件样本等很多很多文件,要将数量如此之大的文件完整的发布出去,最典型的做法是以tar将它们封装成单一文件,再以gzip压缩。而经过这两道处理手续的文件,就称为tarball文件。
./configure –help可以查看到选项;
由上可知,生成一个make编译时需要用到Makefile,来定义软件功能开关,检查源码依赖的库是否齐全,说明安装顺序等。我们可以通过vim obis查看源代码
注意: 这条命令表示运行目录nginx-1.12.2下的一个脚本文件,因此需要进入该目录运行,且运行前需要保证有x权限 ,否则将出现以下错误提示
-bash: ./configure: No such file or directory
手动执行文件 /usr/local/ngnix/sbin/nginx
直接在cmd上敲 nginx
关闭
nginx -s stop
重启
nginx -s reload
注意:必须要开启了才能重启,否则将出现以下报错
[root@www ~]# nginx -s reload
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
查看/usr/local/nginx目录
[root@www nginx]# ls
conf html logs sbin
源码编译后的软件放在conf,即主配置文件为/usr/local/nginx/conf/nginx.conf;
Pyth
yum安装所遇问题
无效URL
[root@localhost ~]# yum install vim Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot find a valid baseurl for repo: base [root@localhost ~]# yum repolist Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=extras&infra=stock error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
1. 进入库配置文件修改baseurl为有效URL(vi /etc/yum.repo.d/xxx.repo)
2. 进入/etc/hosts写入有效DNS服务器,如电信nameserver 114.114.114.114.
yum编译器错误
[root@www ~]# yum install mysql-server bash: /usr/bin/yum: /usr/bin/python2.4: bad interpreter: No such file or directory
进入vi /usr/bin/yum修改编译器(第一行)为#!/usr/bin/python2.6
没有挂载
[root@localhost ~]# mount -a mount: no medium found on /dev/sr0 [root@localhost ~]# mount -t iso9660 /dev/sr0 /media/cdrom
未删除官方仓库
[root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo [root@localhost yum.repos.d]# rm -rf /etc/yum.repos.d/*
何为源代码?
源代码就是经过编译器编译之后形成的中间代码或者及其语言代码;源代码 (编译器) 链接 目标代码
何为源码包?
源码包就是源代码 的可见软件包,基于Linux和BSD系统的软件最常见;源代码有什么用?
源代码就相当于说明书,一个软件如果有源码,我们就可以知道它是怎么开发出来的,一般来说它的用处有2点:1. 根据用户需要修改软件;
2. 二次开发;
如何进行源码编译安装
nginx
安装依赖工具:
[root@www ~]#yum install gcc automake pcre-devel openssl-devel zlib-devel
gcc:C编译工具;
automake:自动编译工具;
pcre-devel:正则表达式的支持,必装;
openssl-devel:支持ssl加密
zlib-devel: zlib库对响应的数据压缩;
-devel一般表示 表示源码包
下载源码包并解压
[root@www ~]#wget http://nginx.org/download/nginx-1.13.5.tar.gz [root@www ~]#tar -xf FILE
绝大多数来自“源头”的源代码都是封装成所谓的tarball格式,其扩展名是.tar.gz 或 .tgz
为何是tarball?
我们知道Open Source软件包括源代码、说明文件、编译支持文件、配置文件样本等很多很多文件,要将数量如此之大的文件完整的发布出去,最典型的做法是以tar将它们封装成单一文件,再以gzip压缩。而经过这两道处理手续的文件,就称为tarball文件。
生成Makefile
configure是用户个性配置的工具, –表示要配置的选项,后面所跟参数可以指定某些配置文件所在路径,如:–prefix安装路径、日志路径等;也可以启动或者禁用某些模块,如http、ssl等;./configure –help可以查看到选项;
[root@www nginx-1.12.2]#./configure --prefix=/usr/local/nginx --with-ssl-module --with-pcre --with-zlib [root@www nginx-1.12.2]#vim Makefile 1 2 default: build 3 4 clean: 5 rm -rf Makefile objs 6 7 build: 8 $(MAKE) -f objs/Makefile 9 10 install: 11 $(MAKE) -f objs/Makefile install 12 13 modules: 14 $(MAKE) -f objs/Makefile modules 15 16 upgrade: 17 /usr/local/nginx/sbin/nginx -t 18 19 kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` 20 sleep 1 21 test -f /usr/local/nginx/logs/nginx.pid.oldbin 22 23 kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` "Makefile" 23L, 376C 23,1-8 All
由上可知,生成一个make编译时需要用到Makefile,来定义软件功能开关,检查源码依赖的库是否齐全,说明安装顺序等。我们可以通过vim obis查看源代码
注意: 这条命令表示运行目录nginx-1.12.2下的一个脚本文件,因此需要进入该目录运行,且运行前需要保证有x权限 ,否则将出现以下错误提示
-bash: ./configure: No such file or directory
安装makefile定义的内容编译源码生成文件
[root@www nginx-1.12.2]# make将目录代表安装到系统中
[root@www nginx-1.12.2]# make install添加nginx命令到环境变量
[root@www nginx-1.12.2]# vim ~/.bashrc export PATH=$PATH:/usr/local/nginx/sbin #环境变量通过冒号:连接; [root@www nginx-1.12.2]# source ~/.bashrc #使环境变量生效 [root@www nginx-1.12.2]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin #echo查看PATH中出现/usr/local/nginx/sbin即可;
测试
执行手动执行文件 /usr/local/ngnix/sbin/nginx
直接在cmd上敲 nginx
关闭
nginx -s stop
重启
nginx -s reload
注意:必须要开启了才能重启,否则将出现以下报错
[root@www ~]# nginx -s reload
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
查看/usr/local/nginx目录
[root@www nginx]# ls
conf html logs sbin
源码编译后的软件放在conf,即主配置文件为/usr/local/nginx/conf/nginx.conf;
Pyth
4000
on
yum install gcc automake pcre-devel openssl-devel zlib-devel wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz tar xf Python-3.5.1 ./configure --prefix=/usr/local/python #定义python的编译器的安装路径,即是用C语言写的源代码; make make install vim ~/.bashrc //export PATH=$PATH:/usr/loacl/python/bin #将python3.5.1执行路径导入环境变量 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/python/bin/python3.5 /usr/bin/python#将系统默认的python版本改为3.5.1 python -V #查看python版本显示3.5.1即可 vim /usr/bin/yum // #!/usr/bin/python2.6 #将编译器改为此即可解决python升级后yum无法使用的问题
相关文章推荐
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- 源码编译安装nginx和python
- lnmp源码编译安装Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)
- 使用源码编译安装Nginx服务器
- Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)源码编译安装(参考)
- CentOS源码编译安装Nginx
- Linux系统 - 源码编译安装Nginx
- llinux 环境安装编译 nginx (源码安装包)
- RHEL/CentOS 7 系统上源码编译安装nginx,并隐藏替换nginx名称
- CentOS7.2 源码包编译安装Python3.6交互界面按Backspace键和方向键出现乱码