程序包编译

C语言源代码编译安装三步骤:

1——./configure

(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成Makefile

(2) 检查依赖到的外部环境,如依赖的软件包

2——make  根据Makefile文件,构建应用程序

3——make install  复制文件到相应路径

QuickStart - Unix

$ ./configure --prefix=PREFIX

$ make

$ make install

$ PREFIX/bin/apachectlstart  指定路径 开启软件

1编译安装准备

(1)查看相同软件并卸载,下载源码(建议官网下载) ,rz传入 建议放在/usr/local/src里并解包 。以httpd-2.2.34.tar.bz2 为例

[[email protected]~]#cd /usr/local/src

[[email protected] src]#tar -xf httpd-2.2.34.tar.bz2  默认解压在当前目录

[[email protected]]#ls

httpd-2.2.34  httpd-2.2.34.tar.bz2

[[email protected] httpd-2.2.34]#ls  显示开发工具

ABOUT_APACHE  buildconf     emacs-style  INSTALL        LICENSE        os                srclib

acinclude.m4      CHANGES        httpd.dep    InstallBin.dsp  Makefile.in              README                     support

Apache.dsw        config.layout  httpd.dsp     LAYOUT            Makefile.win          README.platforms  test

build                     configure        httpd.mak    libhttpd.dep    modules                  README-win32.txt  VERSIONING

BuildAll.dsp         configure.in    httpd.spec   libhttpd.dsp     NOTICE                   ROADMAP

BuildBin.dsp        docs                 include          libhttpd.mak   NWGNUmakefile  server

(2)安装"开发包组"提供开发组件

[[email protected]]#yum grouplist "Developmet Tools"

2看说明

[[email protected]]#cat INSTALL

[[email protected]]#cat README

3生成Makefile

cd进入configure脚本所在目录

[[email protected]]#./configure --help

Installationdirectories:

--prefix=PREFIX         install architecture-independent filesin PREFIX

[/usr/local/apache2]     默认安装目录路径  建议指定目录方便管理

……

[[email protected] httpd-2.2.34]#./configure --prefix=/app/httpd22--enable-ssl 指定目录路径  启用功能加密

checkingfor OpenSSL version... checking openssl/opensslv.h usability... no

……

noOpenSSL headers found

checkingfor SSL-C version... checking sslc.h usability... no

checkingsslc.h presence... no

checkingfor sslc.h... no

no SSL-Cheaders found

configure: error: ...No recognized SSL/TLStoolkit detected    缺openssl-devel包

[[email protected]]#echo $?

1            外部环境出错

[[email protected] httpd-2.2.34]#yuminstall openssl-devel.x86_64   安装所缺少依赖的包

[[email protected]]#./configure --prefix=/app/httpd22 --enable-ssl         再次执行使其完成

[[email protected]]#echo $?

0                                                 完成

[[email protected]]#ll

……

-rw-r--r--.  1 root root   8954 Aug 5 10:59 Makefile          ./configure执行时参考用户的指定以及Makefile.in生成Makefile

-rw-r--r--.  1 1001 1001  8739 Nov 26  2008 Makefile.in

-rw-r--r--.  1 1001 1001 34759 Jan 20  2014 Makefile.win

……

[[email protected] httpd-2.2.34]#make &&  make install     开始编译 安装生成到指定目录 指定目录自动生成

[[email protected]]#ls /app/httpd22

bin  build cgi-bin  conf  error htdocs  icons  include lib  logs  man manual  modules

[[email protected]]#pwd

/usr/local/src/httpd-2.2.34      可删除当前目录

4软件配置 (PREFIX/bin/apachectl start 生效配置文件路径)

(1)二进制程序目录导入至PATH环境变量中

编辑文件/etc/profile.d/NAME.shexport PATH=/PATH/TO/BIN:$PATH

(2)导入库文件路径

编辑/etc/ld.so.conf.d/NAME.conf添加新的库文件所在目录至此文件中   让系统重新生成缓存: ldconfig

(3)导入帮助手册

编辑/etc/man.config |man_db.conf文件添加一个MANPATH

centos6    |    centos7

[[email protected]]#ss -ntl

State      Recv-Q Send-Q          Local Address:Port                         Peer Address:Port

LISTEN     0     5              192.168.122.1:53                                       *:*

LISTEN     0     128                        *:22                                                *:*

LISTEN    0     128                               127.0.0.1:631                                 *:*

LISTEN     0     32                            :::21                                             :::*

LISTEN     0     128                         :::22                                                :::*

LISTEN     0     128                         ::1:631                                            :::*

httpd提供web服务端口为80端口

[[email protected]]#echo ‘export PATH=/app/httpd22/bin:$PATH‘>/etc/profile.d/httpd22.sh

(单引号防止变量展开生效   自己路径放前面防止系统的配置文件先生效)

[[email protected]]#. /etc/profile.d/httpd22.sh

[[email protected]]#echo $PATH

/app/httpd22/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[[email protected]]#which apachectl

/app/httpd22/bin/apachectl

[[email protected] httpd22]#apachectl start 启动命令   配置文件/app/httpd22/bin

[[email protected]]#ss -ntl

State      Recv-Q Send-Q          Local Address:Port                         Peer Address:Port

LISTEN     0      5              192.168.122.1:53                                       *:*

LISTEN     0     128                         *:22                                                *:*

LISTEN     0     128                127.0.0.1:631                                        *:*

LISTEN    0        128                          :::80                                                    :::*

LISTEN     0     32                            :::21                                                :::*

LISTEN     0     128                          :::22                                                :::*

80端口打开

[[email protected] man]#vim /etc/man_db.conf 修改httpd的man帮助文档

MANDATORY_MANPATH                     /app/httpd22/man

时间: 2024-10-11 06:03:49

程序包编译的相关文章

CentOS程序包管理器rpm、yum以及程序包编译安装详解

一.程序包管理器RPM和Yum简介 程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,可以更方便地实现程序包的安装.升级.卸载和查询等管理操作. rpm软件包管理器(RPM Package Manager):rpm包存在依赖关系,依赖关系复杂,安装时间很长,虽然可以忽略依赖关系,但是可能会导致程序包安装后无法正常使用. yum程序包管理器( Yellow dog Updater, Modified):yum是基于RPM包管理,自动解决程序包间的依赖关系.根据配置文件的资源地

Linux程序包编译安装

一.源代码简介(文件中的代码之间,很可能存在跨文件依赖关系) 源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令. 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序.计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成. 二.源代码的编译过程 由于程序源代码到可被计算机识别并运行的指令是需要多步骤处理的:程序源

学习笔记之yum及程序包编译

Yum用法 背景:由于RPM包在实现程序包管理是会存在一些问题比如程序包会出现一些依赖关系等,这些都必须手动解决,虽然可以忽略一些关系,并且能使用--nodeps来安装,但是这会导致安装之后程序功能的不正常,因此为了能更好的解决这种关系,但手动解决这种关系又是一种很麻烦的事,所以就有高于rpm管理的工具yum来实现,下面我们就来仔细看看yum的用法. 学前须知: yum 和dnf是centos系列的好工具 Yum是什么?在安装程序时能实现在前端自动解决依赖关系.Yum其实是一个cs架构的工具,y

rpm和yum的使用,程序包编译安装以及编译apache过程中出现的问题

一.rpm包管理 用法: rpm [选项...] 查询/验证软件包选项: -a, --all                        查询/验证所有软件包 -f, --file                       查询/验证文件属于的软件包 -g, --group                      查询/验证组中的软件包 -p, --package                    查询/验证一个软件包 --pkgid                          

程序包编译安装

一.几个概念 1.开放源码 程序代码,人类可能读懂的程序语言,但是计算机不能识别和执行: 2.编译程序 将程序代码翻译成计算机可以识别的语言: 3.二进程程序 经过编译程序翻译后得到的可以被执行的程序文件. 二.编译源程序的步骤 1.configure 检测程序,并生成makefile文件,其检测的内容如下: 是否有适合的编译程序: 是否有本软件所需的函数库或其他需要的相关软件: 操作系统平台是否支持些软件: 内核的头定义文件是否存在. configure脚本的使用: 1)获取帮助 ./conf

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

程序包的编译安装

前言: 不管是rpm安装还是yum安装都是以二进制格式进行安装的,是别人编译好的程序包,我们无需再编译就能使用,但未必在所有情况下都适用,所以只能自己编译安装,通过自己编译安装可以根据自己的需求编译程序包的功能,rpm包分为编译好的rpm包,还有一种源码rpm包. 程序包编译安装:testapp-VERSION-release.src.rpm格式的rpm包安装后使用rpmbuild命令制作成二进制的rpm包,再安装.可以将此种rpm包编译制作成完全符合自己平台需要版本的程序包. 大致过程: 源代

十七、程序包管理之yum和编译安装

YUM Redhat二次发行版 Yellow Dog Linux,上使用的yum(Yellowdog Update Modifier),由yellow dog 研发 yum命令的工作原理 1.接收用户命令 2.yum扮演为客户端,请求启用的仓库(yum.repos.d/*.repo)中URL对应的文件服务器,下载元数据(repodata),保存至缓存中. 3.yum命令分析元数据,找出将要安装的程序包所依赖的程序包且在系统中没有安装的程序包列表,并向文件服务器请求下载程序包,保存至缓存中. 4.