linux命令:编译安装软件包(举例安装tengine nginx)

简介:

 编译安装的步骤:

   1、下载源码包

   2、解压缩下载的源码包

   3、进入解压缩目录    *必须进入到解压缩目录中

   4、./configure 软件配置与检查

      1)定义需要的功能选项

      2)检测系统环境是否符合安装要求

      3)把定义好的功能选项和检测系统环境的信息都写入makefile文件,用于后续的编辑。

      4)make编译  4.1)make clean清空编译文件

      5)make install 编译安装

   步骤:./configure --prefix=/usr/local/squid   --prefix指定软件安装位置

        --sysconfdir=/PATH/TO/CONFFILE_PATH  --sysconfdir指定配置文件路径

        --config-path=/PATH/TO/CONFFILE_PATH  指定配置文件路径

        --help 获取配置帮助文件

       make  编译    如有报错,执行make clean 删除编译临时文件         

       make install 编译安装

 Usage: 编译安装squid    

    1、首先现在squid源码包

    2、解压下载的源码包

    3、进入源码包的解压缩目录

    4、./configure --prefix=/usr/local/squid  指定安装路径

    5、make 编译生成makefile文件   6、make install 编译安装完成 

编译安装完成后必须注意的几个问题:

注:

  1、修改PATH环境变量,以便能够识别此程序的二进制文件路径即把程序的执行程序的路径加入到PATH变量中 在/etc/profile 中添加PATH=$PATH:/usr/local/tengine/sbin

  2、默认情况下,系统搜索哭文件的路径/lib,/usr/lib,要增加额外搜寻路径

     在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写入至此      文件中;

     #领导config通知系统重新搜寻库文件

        -v:显示重新搜寻库的过程

  3、头文件,输出给系统

       默认:/usr/include

       增添头文件搜寻路径,使用链接进行

    /usr/local/tengine/include/   /usr/include/

    两种方式:

     ln -s /usr/local/tengine/include/* /usr/include/ 

或者 ln -s /usr/local/tengine/include /usr/include/tengine

  4、man文件路径:安装在--prefix指定的目录下的man目录下;

    两种方式:

      1、man -M /PATH/TO/MAN_DIR  把生成的man文件加入到默认帮助文档中

      2、在/etc/man.conf文档中添加MANPATH /PATH/TO/MAN_DIR

 

执行编译安装前提必须安装编译环境:(开发工具和开发函数库最好安装系统时选择安装)

必须安装有“Development Tools”和“Development Libraries”开发工具组和开发函数库

  yum groupinstall "Development Tools"

  yum groupinstall "Development Libraries"

实例:编译安装tengine

#tar xf tengine-1.5.1.tar.gz

#cd tegnine-1.5.1

#./configure -prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.con

#make

#make install

#/usr/local/tengine/sbin/nginx 执行程序

  #tar zxvf tengine-1.5.1.tar.gz

[root@xuelinux ~]# cd tengine-1.5.1

[root@xuelinux tengine-1.5.1]# ls

AUTHORS.te  CHANGES.cn  conf       docs     Makefile  README           tests

auto        CHANGES.ru  configure  html     man       README.markdown  THANKS.te

CHANGES     CHANGES.te  contrib    LICENSE  objs      src

[root@xuelinux tengine-1.5.1]# ./configure --prefix=/usr/local/tengine-1.5.1

checking for OS

 + Linux 2.6.32-431.el6.i686 i686

checking for C compiler ... found

 + using GNU C compiler

 + gcc version: 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 

checking for gcc -pipe switch ... found

checking for gcc builtin atomic operations ... found

checking for C99 variadic macros ... found

checking for PCRE library in /opt/local/ ... not found


./configure: error: the HTTP rewrite module requires the PCRE library. #提示缺少pcre报错

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.


[root@xuelinux tengine-1.5.1]# yum install pcre-devel  安装相应的pcre函数库后再进行编译

Installed:

  pcre-devel.i686 0:7.8-6.el6                                                              

Complete!

[root@xuelinux tengine-1.5.1]# ./configure --prefix=/usr/local/tengine-1.5.1 指定安装路径

checking for OS

 + Linux 2.6.32-431.el6.i686 i686

checking for C compiler ... found

 nginx http uwsgi temporary files: "uwsgi_temp"

  nginx http scgi temporary files: "scgi_temp"


[root@xuelinux tengine-1.5.1]# make  进行编译

make -f objs/Makefile

make[1]: Entering directory `/root/tengine-1.5.1' 

make[1]: Entering directory `/root/tengine-1.5.1'

sed -e "s|%%PREFIX%%|/usr/local/tengine-1.5.1|" \

-e "s|%%PID_PATH%%|/usr/local/tengine-1.5.1/logs/nginx.pid|" \

-e "s|%%CONF_PATH%%|/usr/local/tengine-1.5.1/conf/nginx.conf|" \

-e "s|%%ERROR_LOG_PATH%%|/usr/local/tengine-1.5.1/logs/error.log|" \

< man/nginx.8 > objs/nginx.8

make[1]: Leaving directory `/root/tengine-1.5.1'    编译完成

[root@xuelinux tengine-1.5.1]# make install   执行编译安装

make -f objs/Makefile install

make[1]: Entering directory `/root/tengine-1.5.1'

cp objs/dso_tool '/usr/local/tengine-1.5.1/sbin/dso_tool'

chmod 0755 '/usr/local/tengine-1.5.1/sbin/dso_tool'

make[1]: Leaving directory `/root/tengine-1.5.1'    至此编译安装tengine完成

[root@xuelinux sbin]# nginx      执行该程序

-bash: nginx: command not found    提示没有找到命令因为环境变量未添加该执行程序路径

[root@xuelinux sbin]# vim /etc/profile  编辑环境变量配置文件把该路径添加进去


PATH=$PATH:/usr/local/tengine-1.5.1/sbin   添加该行

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

[root@xuelinux sbin]# source /etc/profile   重新读取该配置文件,使得修改生效

[root@xuelinux sbin]# nginx   执行后正常

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()  提示端口被占用

[root@xuelinux sbin]# fuser -n tcp 80   查看被占用端口的进程

80/tcp:              20340 20341

[root@xuelinux sbin]# kill -9 20340  终止占用端口的进程

[root@xuelinux sbin]# kill -9 20341  终止占用端口的进程

[root@xuelinux sbin]# nginx

[root@xuelinux sbin]# nginx

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

[root@xuelinux sbin]# netstat -tlnp  查看监听端口

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1235/rpcbind        

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      20340/nginx          已经取用了nginx

tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      1797/d

然后就可通过ip地址访问该地址了。













本文转自wang650108151CTO博客,原文链接: http://blog.51cto.com/woyaoxuelinux/1878174,如需转载请自行联系原作者


相关文章
|
6天前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
51 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
19天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
108 25
|
1月前
|
Ubuntu Java Linux
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
78 10
|
1月前
|
Linux
Linux安装svn并启动
Linux安装svn并启动
60 10
|
2月前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
103 20
|
2月前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
87 7
|
3月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
3月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
316 20
|
3月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
261 7
|
3月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
70 2