程序包编译

程序包编译安装:
Application-VERSION-release.src.rpm –> 安装后,使用rpmbuild命令制作 成二进制格式的rpm包,而后再安装
源代码–>预处理–>编译–>汇编–>链接–>执行
源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
C、C++:make 项目管理器
configure脚本 –> Makefile.in –> Makefile
java: maven
编译安装
C语言源代码编译安装三步骤:
1、./configure
(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的 指定以及Makefile.in文件生成Makefile
(2) 检查依赖到的外部环境,如依赖的软件包
2、make 根据Makefile文件,构建应用程序
3、make install 复制文件到相应路径
开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in
注意:安装前查看INSTALL,README
开源程序源代码的获取:
官方自建站点:
apache.org (ASF:Apache Software Foundation)
mariadb.org …
代码托管:
SourceForge.net
Github.com
code.google.com
c/c++编译器: gcc (GNU C Complier)

编译C源代码:
准备:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库
实现:通过“包组”提供开发组件
Development Tools
Server Platform Development

编译安装
解压缩后要进到解压后的文件夹里进行下面的
第一步:configure脚本
示例:
./configure \
–prefix=/app \ 把程序安装到/app下
–sysconfdir=/etc/http22 \ 配置文件单独放在/etc/http22下
–enable-ssl 启用服务(加密服务)
选项:指定安装位置、指定启用的特性
–help: 获取其支持使用的选项 (大部分都是带–help功能的)
选项分类:
安装路径设定:
–prefix=/PATH: 指定默认安装位置,默认为/usr/local/
–sysconfdir=/PATH:配置文件安装位置
System types:支持交叉编译

Optional Features: 可选特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可选包
–with-PACKAGE[=ARG],依赖包
–without-PACKAGE,禁用依赖关系
注意:通常被编译操作依赖的程序包,需要安装此程序包的“开发”组件,其包名 一般类似于name-devel-VERSION
第二步:make
示例:
make -j 4 && echo -e “\a” && sleep 1 && echo -e “\a” && sleep 1 && echo -e “\a”
成功后响几声 没一声中间听几秒
第三步:make install
apachectl start启动服务

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96860

赞 (0)
张陆禄张陆禄
上一篇 2018-04-22 19:50
下一篇 2018-04-22 19:55

相关推荐

  • Linux基础命令

    本文主要介绍:1、修改命令提示符 2、执行命令(内部,外部) 3、命令别名 4、命令history

    2018-04-01
  • 程序包管理工具及sed基本使用方法

    程序包管理工具及sed基本使用方法

    2018-04-01
  • 马哥学堂的第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp    将一份文件复制到其他目录之中 使用-r 可实现递归复制。递归复制,可将一个目录下的文件,复制到另一个目录下。 rm  用于删除文件,使用-f可强制删除。 mv 将一个文件移动到另一个目录下。若在同一个目录下使用mv,可实现更名。 cat 显示文件内容。 wc 显示文件的…

    2018-05-20
  • Linux的学习之旅

      Linux的文件系统层级结构标准FHS image.png /etc=====和主机相关的系统配置文件 edit the configure /home===== 用户家目录 /usr======二层分层的目录。默认是最大的。 /dev=====设备文件 /media======挂载点和可移动的设备, /mnt=====临时挂载点 /var==…

    Linux笔记 2018-04-01
  • docker学习记录系列(一)

    虚拟化与容器

    Linux笔记 2018-06-02
  • centos6启动流程

    这是第四次

    2018-05-13